ShaderLab

  • サーフェスシェーダー
  • 頂点シェーダー/フラグメントシェーダー
  • 固定関数シェーダー

参考:

シェーダーを書く | Unity マニュアル [公式]

ShaderLab | Unity マニュアル [公式]

書き方

参考:

ShaderLab シンタックス | Unity マニュアル [公式]

チュートリアル:ShaderLab と固定関数シェーダー | Unity マニュアル [公式]

サーフェスシェーダーの記述 | Unity マニュアル [公式]

使い方

参考:

シェーダ入門 | コガネブログ

Unity のシェーダースクリプトについて | かめくめ

Unity のシェーダの基礎を勉強してみたのでやる気出してまとめてみた | 凹み Tips

Unity で Shader の勉強 その1 – Qiita

シェーダーによる色の変更、発光、光沢を持たせない設定 | @IT

シェーダーを書いてみよう! ShaderLab の簡単な書き方! | 侍エンジニア塾ブログ

概要

参考:

Unity のシェーダーについて自分なりにまとめてみた | Speaker Deck

シェーダーバリアント (Shader Variant)

参考:

Unity の Shader Variant について調べてみた – Qiita

shader_feature や multi_compile でシェーダのバリアントを作る | LIGHT11

ShaderVariant とは? | 黒河優介

AssetBundle と ShaderVariant の関係 | 黒河優介

ShaderVariant と最適化周り | 黒河優介

Shader Variant について調べてみた | しゅみぷろ

複数のシェーダープログラムのバリアントを作る | Unity 2018.4 マニュアル [公式]

シェーダーのロード時間の最適化 | Unity 2018.4 マニュアル [公式]

シェーダーキーワードを使う

参考:

Shader の定義済みキーワードを動的に有効/無効化する (_EMISSION が効かなかった) | KAZUPON 研究室

Shader.EnableKeyword | Unity スクリプトリファレンス [公式]

Shader.DisableKeyword | Unity スクリプトリファレンス [公式]

SubShader タグ

参考:

SubShader 内のタグ | Unity マニュアル [公式]

デプスバッファ

参考:

オブジェクトが重なった部分をくり抜く | おもちゃラボ

MaterialPropertyDrawer

参考:

シェーダプロパティ用のアトリビュートを自作する MaterialPropertyDrawer | LIGHT11

TEXCOORD

参考:

使用する TEXCOORD をマテリアルから指定できるようにする | LIGHT11

Particle System の Custom Vertex Streams と Custom Data の使い方まとめ | LIGHT11

Blend

参考:

Blend を試してみる – Qiita

Texture Combiners

参考:

Texture Combiners | Unity マニュアル [公式]

サンプラー

参考:

サンプラー状態の利用 | Unity 2018.4 マニュアル [公式]

何も描画しないシェーダーを作る

Shader "Custom/VoidShader" {
  SubShader {
    Colormask 0 Zwrite Off
    Pass {}
  }
}

参考:

不要パーツを消す「何もしない透明な Unity シェーダー」| サークル獏の佐藤敏 Unity とか備忘録

スクリーンスペースブーリアン

参考:

Unity でスクリーンスペースのブーリアン演算をやってみた | 凹みTips

頂点アニメーションテクスチャ/VAT シェーダー

参考:

Unity のシェーダー開発方法のまとめと備忘録・頂点アニメーションテクスチャ (VAT) シェーダー – Qiita

互換性

参考:

プラットフォーム特有のレンダリングの違い | Unity 2018.4 マニュアル [公式]

レンダリングパス

参考:

ForwardRendering と DeferredShading | しゅみぷろ

global keywords exceeded エラー

シェーダーキーワードを制限以上に使用しているため一部のキーワードが無視される旨のエラーが発生する。

Maximum number (256) of shader global keywords exceeded, keyword _XXX will be ignored. You will have to delete some shaders or make them use less keywords.

対処法:

  • 使用していないシェーダーあるいはキーワードをプロジェクトから取り除く。
  • グローバルキーワードの代わりにローカルキーワードを使用する。
  • キーワードを固定化 (ベイク) する。
  • Shader Control アセットを使って対処する。

参考:

Maximum number (256) of shader global keywords exceeded, keyword will be ignored and black materials – Unity Forum

Maximum number (256) of shader keywords exceeded – Unity Forum

Maximum number (256) of shader global keywords exceeded – Unity Forum

Maximum number (256) of shader keywords exceeded and materials are pink – Unity Forum

The “Maximum number (256) of shaders” error – Unity Forum

Shader keyword limit – Unity Forum

Maximum number (256) of shader global keywords exceeded, keyword _DISTORTION_ON will be ignored. You will have to delete some shaders or make them use less keywords. – Unity Answers

Maximum number (256) of shader global keywords exceeded, keyword Unity – Stack Overflow

Shader Control

メニューから「Assets > Browse Shaders…」を開く。

  • Build View
  • Project View

参考:

Shader Control | Unity Asset Store [Official]

Shader Control – manages shader keywords and variants | Unity Forum

Shader Keywords Tool

参考:

ArtIsDarkGames/shader-keywords-tool-unity3d – Bitbucket

MaterilKeywordBaker

参考:

MaterilKeywordBaker (raitichan) | BOOTH

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です