次の項目は別ページに分割しました。
アセットは次のページにまとめています。
シェーダー
シェーダーアセットの種類
- スタンダードシェーダー:基本的な物理ベースシェーディング (PBS) を行うシェーダー
- ビルトインシェーダー:Unity エディターに付属しているシェーダー
- シェーダースクリプト (ShaderLab):スクリプトを使用して作成するシェーダー
- サーフェスシェーダー
- 頂点シェーダー/フラグメントシェーダー
公式サイト:
目次
マテリアル
参考:
マテリアルの作成と使用 | Unity マニュアル [公式]
使い方
参考:
概要
参考:
入門
参考:
1から始める Unity Shader 全6回 | Unity Shader 入門
スタンダードシェーダー (Standard Shader)
一般的な用途で必要な機能を包括的に併せ持ったシェーダー。物理ベースのライティングに基づくレンダリングを行う。HDR 表現が可能。
参考:
Standard Shader | Unity マニュアル [公式]
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 | 強火で進め
透過/アルファ
参考:
アルファとアルファテスト | Tsumiki Tech Times
Unlit/Transparent でアルファ値を外から設定したいシェーダー – Qiita
Unlit/Transparent シェーダーの全文解説/ アルファ値を設定できるようにしてみた | miyakolog
Extending Unity 5 Rendering Pipeline: Command Buffers | Unity Blog [Official]
Decent Desktop Glass Shader? – Unity Forum
ノーマルマップ (Normal Map)
参考:
Unity でノーマルマップを作成する | Unity + UnrealEngine4 + Blog.
Blender/Unity を用いたノーマルマップの作成、適用手順 | XR-Hub
法線マップ (Normal Map / Bump mapping) | Unity マニュアル [公式]
金属反射/スペキュラー反射/拡散反射 (Metallic / Specular / Smoothness)
参考:
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
の整数が指定できる。値の小さなキューから順に描画される。マテリアルでカスタムレンダーキューを指定しなかった場合、シェーダーにおけるキューの指定値が使用される。スタンダードシェーダーでは、レンダリングモードの指定に応じてレンダーキューが自動的に変更される。
定義済みレンダーキュー
- Background:最初に描画されるべきオブジェクト/背景用 (1000)
- Geometry:一般の不透明なオブジェクト/デフォルト (2000)
- AlphaTest:アルファテストを用いるシェーダー/カットアウト (2450)
- Transparent:透明/透過/半透明のオブジェクト (3000)
- Overlay:オーバーレイ/最後に描画されるべきオブジェクト/レンズフレアなど (4000)
参考:
Custom Render Queue について | LIGHT11
マテリアルの描画がシェーダーの Queue 順に処理されない原因と対策 | 神様は有休消化中です。
Unity でマテリアルから描画順番を設定する | 生存日記
Material.renderQueue | Unity スクリプトリファレンス [公式]
Shader.renderQueue | Unity スクリプトリファレンス [公式]
RenderQueue | Unity スクリプトリファレンス [公式]
SubShader 内のタグ | Unity マニュアル [公式]
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
法線の再計算する
参考:
スムージング角を用いて法線の再計算を行う | NORIO BLOG
better RecalculateNormals | My note (ugcj.com)
A better method to recalculate normals in Unity Part 2 | The Scheming Developer
Mesh.RecalculateNormals | Unity スクリプトリファレンス [公式]
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」を使う。
- Standard シェーダーを複製して
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
参考:
Blender からインポートしたモデルのマテリアル設定方式について | ゴマちゃんフロンティア
Unity でマテリアルが変更できない時 | Sirohood
Materials Tab | Unity Manual [Official]
複数のゲームオブジェクトにまとめてマテリアルを設定する
参考:
Unity の 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 シェーダー
参考:
Standard Roughness Setup を探しているあなたへ | Unity Connect
What happened to the ‘Standard (Roughness)’ shader? – Unity Forum
TwoTailsGames/Unity-Built-in-Shaders/AutodeskInteractive.shader – GitHub
非均一なスケーリング
参考:
Handle Uniform Non-Uniform scale in a shader? – Unity Forum
比較
参考:
キャラクターのシェーダー比較 (Standard / Unlit / Mtoon / Cubed / UnitychanToon) | トマシープが学ぶ
パフォーマンス
参考:
Unity シェーダーのパフォーマンス | Unity マニュアル [公式]
アセットバンドル (AssetBundle)
参考:
AssetBundle に格納した Scene や Prefab がピンクになる問題 | テラシュールブログ
Shaders are pink when loaded from an AssetBundle – 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 になったマテリアルを検出する
参考:
Unity で 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]