ShaderLab
- サーフェスシェーダー
- 頂点シェーダー/フラグメントシェーダー
- 固定関数シェーダー
参考:
書き方
参考:
ShaderLab シンタックス | Unity マニュアル [公式]
チュートリアル:ShaderLab と固定関数シェーダー | Unity マニュアル [公式]
サーフェスシェーダーの記述 | Unity マニュアル [公式]
使い方
参考:
Unity のシェーダの基礎を勉強してみたのでやる気出してまとめてみた | 凹み Tips
Unity で Shader の勉強 その1 – Qiita
シェーダーによる色の変更、発光、光沢を持たせない設定 | @IT
シェーダーを書いてみよう! ShaderLab の簡単な書き方! | 侍エンジニア塾ブログ
概要
参考:
Unity のシェーダーについて自分なりにまとめてみた | Speaker Deck
シェーダーバリアント (Shader Variant)
参考:
Unity の Shader Variant について調べてみた – Qiita
shader_feature や multi_compile でシェーダのバリアントを作る | LIGHT11
AssetBundle と 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
参考:
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 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 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
参考: