シェーダー

シェーダーアセットの種類
  • スタンダードシェーダー基本的な物理ベースシェーディング (PBS) を行うシェーダー
  • ビルトインシェーダーUnity エディターに付属しているシェーダー
  • シェーダースクリプト (ShaderLab)スクリプトを使用して作成するシェーダー
    • サーフェスシェーダー
    • 頂点シェーダー/フラグメントシェーダー

公式サイト:

シェーダーアセット | Unity マニュアル [公式]

マテリアル

参考:

マテリアルの作成と使用 | Unity マニュアル [公式]

使い方

参考:

Unity のマテリアルとシェーダー | ゲームの作り方!

概要

参考:

Unity の Shader の種類 | NEAREAL

入門

参考:

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

参考:

内蔵シェーダのソースコード | nakamura001

旧シェーダー (Legacy Shaders)

参考:

旧シェーダーコード | Unity マニュアル [公式]

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 for Unity? – 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 マニュアル [公式]

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

Specular color based on light color? – Unity Forum

ハイトマップ (Height Map)

参考:

ハイトマップ | Unity マニュアル [公式]

放出/エミッション (Emission)

参考:

目やパーツの一部を光らせる | テラシュールブログ

Fragment Shader に Emission を適用する – Qiita

Standard の Emission をプログラムから切り替える方法 | kan のメモ帳

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

How to add emission map to this shader – Unity Forum

カスタムレンダーキュー (Custom Render Queue)

カスタムレンダーキューの順序として、05000 の整数が指定できる。値の小さなキューから順に描画される。マテリアルでカスタムレンダーキューを指定しなかった場合、シェーダーにおけるキューの指定値が使用される。スタンダードシェーダーでは、レンダリングモードの指定に応じてレンダーキューが自動的に変更される。

定義済みレンダーキュー
  • 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

Flat shading – Unity Forum

Flat shading – Unity Answers

法線の再計算する

参考:

スムージング角を用いて法線の再計算を行う | 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)

参考:

Velvet | Unify Community Wiki

Very Simple Velvet shader! – Unity Forum

Velvet shader ? – Unity Forum

窓の領域のみオブジェクトを描画する

参考:

窓シェーダーを使った仕掛けの作り方 | STYLY

HoloLens で向こう側が見える窓を動的に追加してみる | 凹みTips

両面描画/ポリゴン裏面の表示/非表示 (Backface Culling)

  • 単純な葉っぱの裏側を描画するには、Unity 標準の「Nature/Tree Soft Occlusion Leaves」を使う。
  • Standard シェーダーを複製して Cull Off の記述を追加したシェーダーを作成する。
  • Free Double Sided Shaders
こちらのページを参照

参考:

裏面も表示する | Shade3D チュートリアル

両面描画 | Tsumiki Tech Times

ShaderLab: Culling と Depth Testing | Unity 2018.4 マニュアル [公式]

Double Sided | High Definition RP 10.4 Manual [Official]

丸影を描画する

参考:

ちょっとしたシェーダーテクで丸影のドローコール削減してみた | ケットシーウェア

SDF

参考:

Compute Shader でランタイムに SDF マップを生成するエクスペリメント | KAYAC engineers’ blog

GLSL で SDF をつくりたい – Qiita

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

複数のマテリアルを割り当てる

参考:

2つのテクスチャを合成するシェーダー – Qiita

ノーマルマップを作成する

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

比較

参考:

Unity の Shader の種類 | NEAREAL

キャラクターのシェーダー比較 (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

Textures and Materials turn pink after installing and activating lightweight render pipeline | Unity Answers

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個 | コガネブログ

無料のオススメシェーダまとめ 110個 | コガネブログ

視差オクルージョンマッピング (Pallax Occlusion Mapping)

リポジトリ:

coposuke/PallaxOcclusionMapping: 視差オクルージョンマッピング – GitHub

参考:

視差オクルージョンマッピング | コポうぇぶろぐ

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA