次の項目は別ページに分割しました。
アセットは次のページにまとめています。
シェーダー
シェーダーアセットの種類
- スタンダードシェーダー:基本的な物理ベースシェーディング (PBS) を行うシェーダー
- ビルトインシェーダー:Unity エディターに付属しているシェーダー
- シェーダースクリプト (ShaderLab):スクリプトを使用して作成するシェーダー
- サーフェスシェーダー
- 頂点シェーダー/フラグメントシェーダー
公式サイト:
マテリアル
ドキュメント:
マテリアルの作成と使用 | Unity マニュアル [公式]
使い方
参考:
概要
参考:
入門
参考:
1から始める Unity Shader 全6回 | Unity Shader 入門
スタンダードシェーダー (Standard Shader)
- 一般的な用途で必要な機能を包括的に併せ持ったシェーダー
- 物理ベースのライティングに基づくレンダリングを行う。
- HDR 表現が可能
ドキュメント:
Standard Shader | Unity マニュアル [公式]
HDR レンダリング | Unity 2018.4 マニュアル [公式]
ビルトインシェーダー
リポジトリ:
TwoTailsGames/Unity-Built-in-Shaders: Unity Built in Shaders – GitHub
参考:
旧シェーダー (Legacy Shaders)
ドキュメント:
コード:
TwoTailsGames/Unity-Built-in-Shaders/DefaultResourcesExtra – GitHub
Unlit シェーダー
ライティングの影響を受けないシェーダー
- Unlit/Alpha
- Unlit/Color
- Unlit/Texture
- Unlit/Transparent: 半透明 (テクスチャの RGB がベースカラーとなり、アルファチャンネルが透過率を表す。)
- Unlit/Transparent Cutout: カットアウト (アルファチャンネルが閾値以下のピクセルが完全に透過となる。)
参考:
Unlit Shader の要素を全て解説 | アマガミナブログ
Photogrammetory で使える Unlit だけど影を落とすシェーダー | STYLY
内蔵シェーダのコード解説 Unlit/Texture | 強火で進め
内蔵シェーダのコード解説 Unlit/Transparent | 強火で進め
内蔵シェーダのコード解説 Unlit/Transparent Cutout | 強火で進め
透過/アルファ
リンク:
Extending Unity 5 Rendering Pipeline: Command Buffers | Unity Blog [Official]
参考:
アルファとアルファテスト | Tsumiki Tech Times
Unlit/Transparent でアルファ値を外から設定したいシェーダー – Qiita
Unlit/Transparent シェーダーの全文解説/ アルファ値を設定できるようにしてみた | miyakolog
Decent Desktop Glass Shader? – Unity Forum
ノーマルマップ (Normal Map)
ドキュメント:
法線マップ (Normal Map / Bump mapping) | Unity マニュアル [公式]
参考:
Unity でノーマルマップを作成する | Unity + UnrealEngine4 + Blog.
Blender/Unity を用いたノーマルマップの作成、適用手順 | XR-Hub
金属反射/スペキュラー反射/拡散反射 (Metallic / Specular / Smoothness)
金属と非金属の違い
- 金属/導体/導電体 (Metal / Conductor)
- 鏡面反射が強く、反射色はアルベドの影響を受ける
- 非金属/絶縁体/誘電体 (Non-Metallic / Insulator / Dieletric)
- 反射はアルベドの上にコーティングされたように現れる
- 反射色はほぼ白色に近い
メタリックワークフロー
- メタリック (Metallic): 金属の場合に
1.0
を使用し、非金属の場合に0.0
を使用する//ほとんどの自然な物質は中間の値を取らない - スムーズネス (Smoothness): 完全に鏡面反射の場合に 1.0 を使用し、完全に拡散反射の場合に 0.0 を使用する
- ソース (Source): スムーズネスのチャンネルをどのテクスチャから取得するか指定する
Metallic Alpha
: メタリックテクスチャのアルファチャンネルを使用するAlbedo Alpha
: アルベドテクスチャのアルファチャンネルを使用する
- ソース (Source): スムーズネスのチャンネルをどのテクスチャから取得するか指定する
ドキュメント:
Metallic と Specular のワークフロー | Unity マニュアル [公式]
Metallic パラメータ | Unity マニュアル [公式]
Specular パラメータ | Unity マニュアル [公式]
参考:
Specular color based on light color? – Unity Forum
ハイトマップ (Height Map)
ドキュメント:
放出/エミッション (Emission)
ドキュメント:
参考:
Fragment Shader に Emission を適用する – Qiita
Standard の Emission をプログラムから切り替える方法 | kan のメモ帳
How to add emission map to this shader – Unity Forum
カスタムレンダーキュー (Custom Render Queue)
カスタムレンダーキューの順序として、0
~ 5000
の整数が指定できる。値の小さなキューから順に描画される。マテリアルでカスタムレンダーキューを指定しなかった場合、シェーダーにおけるキューの指定値が使用される。スタンダードシェーダーでは、レンダリングモードの指定に応じてレンダーキューが自動的に変更される。スクリプトからマテリアルのレンダーキューを変更する際に、-1
を指定するとシェーダーで定義された値が使用される。
定義済みレンダーキュー
Background
:最初に描画されるべきオブジェクト/背景用 (1000
)Geometry
:一般の不透明なオブジェクト/デフォルト (2000
)AlphaTest
:アルファテストを用いるシェーダー/カットアウト (2450
)Transparent
:透明/透過/半透明のオブジェクト (3000
)Overlay
:オーバーレイ/最後に描画されるべきオブジェクト/レンズフレアなど (4000
)
ドキュメント:
Material.renderQueue | Unity スクリプトリファレンス [公式]
Shader.renderQueue | Unity スクリプトリファレンス [公式]
RenderQueue | Unity スクリプトリファレンス [公式]
SubShader 内のタグ | Unity マニュアル [公式]
参考:
Custom Render Queue について | LIGHT11
マテリアルの描画がシェーダーの Queue 順に処理されない原因と対策 | 神様は有休消化中です。
Rendering Queues in Unity | Ahmed Schrute
Setting the render queue for Standard shader – Unity Forum
シームレステクスチャ
参考:
Seamless texture shader unlit query – Unity Forum
Tiling of a material, independen of its size – Game Development Stack Exchange
テクスチャの繰り返し感を避ける
参考:
Improved Terrain Texture Tiling – Unity Forum
フラットシェーディング
参考:
フラットシェーディングでローポリっぽく見せる | おもちゃラボ
How to Change Object Shading in Unity | LMHPOLY
法線の再計算する
ドキュメント:
Mesh.RecalculateNormals | Unity スクリプトリファレンス [公式]
参考:
スムージング角を用いて法線の再計算を行う | NORIO BLOG
better RecalculateNormals | My note
A better method to recalculate normals in Unity Part 2 | The Scheming Developer
Smooth shading for procedurally generated mesh – Unity Forum
ベルベット (Velvet)
参考:
Very Simple Velvet shader! – Unity Forum
窓の領域のみオブジェクトを描画する
参考:
HoloLens で向こう側が見える窓を動的に追加してみる | 凹みTips
両面描画/ポリゴン裏面の表示/非表示 (Backface Culling)
- 単純な葉っぱの裏側を描画するには、Unity 標準の「Nature/Tree Soft Occlusion Leaves」を使う。
- スタンダードシェーダーを複製して
Cull Off
の記述を追加したシェーダーを作成する。 - Free Double Sided Shaders
ドキュメント:
ShaderLab: Culling と Depth Testing | Unity 2018.4 マニュアル [公式]
Double Sided | High Definition RP 10.4 Manual [Official]
参考:
丸影を描画する
参考:
ちょっとしたシェーダーテクで丸影のドローコール削減してみた | ケットシーウェア
SDF
参考:
Compute Shader でランタイムに SDF マップを生成するエクスペリメント | KAYAC engineers’ blog
Embedded Materials
ドキュメント:
Materials Tab | Unity Manual [Official]
参考:
Blender からインポートしたモデルのマテリアル設定方式について | ゴマちゃんフロンティア
Unity でマテリアルが変更できない時 | Sirohood
複数のゲームオブジェクトにまとめてマテリアルを設定する
参考:
C# でまとめて GameObject の Shader 変更/コライダー追加 | STYLY Developer’s Blog
Immediate Window で複数の Material の設定を一括更新してみる | テラシュールブログ
Assign material to multiple objects – Unity Answers
Setting multiple materials from script – Unity Forum
複数のマテリアルを割り当てる
参考:
ノーマルマップを作成する
Creating Normal Maps for Unity in Blender
PBR テクスチャ
参考:
PBR マテリアルのテクスチャは実際どのようなテクスチャなのか | tkmkrocket_tech
Autodesk Interactive シェーダー
旧スタンダード Roughness Setup シェーダー
コード:
TwoTailsGames/Unity-Built-in-Shaders/AutodeskInteractive.shader – GitHub
参考:
Standard Roughness Setup を探しているあなたへ | Unity Connect
What happened to the ‘Standard (Roughness)’ shader? – Unity Forum
非均一なスケーリング
参考:
Handle Uniform Non-Uniform scale in a shader? – Unity Forum
比較
参考:
キャラクターのシェーダー比較 (Standard / Unlit / Mtoon / Cubed / UnitychanToon) | トマシープが学ぶ
パフォーマンス
参考:
シェーダーのパフォーマンス | Unity マニュアル [公式]
アセットバンドル (Asset Bundle)
参考:
Asset Bundle に格納した Scene や Prefab がピンクになる問題 | テラシュールブログ
shaders are pink when loaded from an Asset Bundle – Unity Support
RenderDoc
ドキュメント:
RenderDoc の統合 | Unity マニュアル [公式]
マテリアルがピンク色になって正常に表示されない
参考:
LWRP プロジェクトに取り込んだモデルがピンク一色になるときの対応メモ | ねぎたまらぼ
Materials are pink | Unity Forum
How to fix the pink materials in a Lightweight Render Pipeline project in Unity? | reddit
エラー
参考:
hidden/internal Error Shader – Unity Answers
不明になったマテリアルを検出する (Missing)
参考:
Renderer のマテリアルが Missing かどうか判定する | 生存日記
URP
- Lit
- Simple Lit
- Baked Lit
- Unlit
- Particles Lit
- Particles Simple Lit
- Particles Unlit
- SpeedTree
- Autodesk Interactive
- Autodesk Interactive Transparent
- Autodesk Interactive Masked
ドキュメント:
Shaders and Materials | Universal RP 7.1 Manual [Official]
まとめ
シェーダに関するオススメ記事まとめ 120個 | コガネブログ
視差オクルージョンマッピング (Pallax Occlusion Mapping)
リポジトリ:
coposuke/PallaxOcclusionMapping: 視差オクルージョンマッピング – GitHub
参考:
Surface Gradient Bump Mapping
動画:
ドキュメント:
Surface Gradient Bump Mapping | Unity Manual [Official]
入手:
Surface Gradient Bump Mapping Samples | Unity Asset Store [Official]