シェーダー

シェーダーアセットの種類

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

参考:

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

マテリアル

参考:

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

使い方

参考:

Unity のマテリアルとシェーダー | ゲームの作り方!(dkrevel.com)

概要

参考:

Unity の Shader の種類 | NEAREAL

入門

参考:

1から始める Unity Shader 全6回 | Unity Shader 入門 (unityshader.hatenablog.com)

スタンダードシェーダー (Standard Shader)

一般的な用途で必要な機能を包括的に併せ持ったシェーダー。物理ベースのライティングに基づくレンダリングを行う。HDR 表現が可能。

参考:

Standard Shader | Unity マニュアル [公式]

Unity で HDR レンダリング | Unity マニュアル [公式]

Albedo カラーと Transparency (透明度) | Unity マニュアル [公式]

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

ビルトインシェーダー

参考:

内蔵シェーダのソースコード | nakamura001 @ウィキ (atwiki.jp)

TwoTailsGames/Unity-Built-in-Shaders: Unity Built in Shaders – GitHub

旧シェーダー (Legacy Shaders)

参考:

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

TwoTailsGames/Unity-Built-in-Shaders/DefaultResourcesExtra – GitHub

Unlit シェーダー

ライティングの影響を受けないシェーダー

  • Unlit/Alpha
  • Unlit/Color
  • Unlit/Texture
  • Unlit/Transparent:半透明 (テクスチャの RGB がベースカラーとなり、アルファチャンネルが透過率を表す。)
  • Unlit/Transparent Cutout:カットアウト (アルファチャンネルが閾値以下のピクセルが完全に透過となる。)

参考:

UnlitShader の要素を全て解説 | アマガミナブログ

Photogrammetory で使える Unlit だけど影を落とすシェーダー | STYLY

内蔵シェーダのコード解説 Unlit/Texture | 強火で進め

内蔵シェーダのコード解説 Unlit/Transparent | 強火で進め

内蔵シェーダのコード解説 Unlit/Transparent Cutout | 強火で進め

透過/アルファ

参考:

アルファとアルファテスト | Tsumiki Tech Times

Unlit/Transparent でアルファ値を外から設定したいシェーダー – Qiita

Unlit/Transparent シェーダーの全文解説 alpha 値を設定できるようにしてみた | miyakolog

ノーマルマップ

参考:

Unity でノーマルマップ (Normal) を作成する | Unity + UnrealEngine4 + Blog. (nabesi777.hatenablog.com)

Blender・Unity を用いたノーマルマップ (法線マップ) の作成、適用手順 | XR-Hub

法線マップ (Normal Map / Bump mapping) | Unity マニュアル [公式]

ハイトマップ (Height Map)

参考:

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

Emission

参考:

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

Fragment Shader に Emission を適用する – Qiita

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

How to add emission map to this shader – Unity Forum

シームレステクスチャ

参考:

Seamless texture shader unlit query | Unity Forum

Tiling of a material, independen of its size – Game Development Stack Exchange

フラットシェーディング

参考:

フラットシェーディングでローポリっぽく見せる | おもちゃラボ

How to Change Object Shading in Unity | LMHPOLY

Flat shading | Unity Forum

Flat shading | Unity Answers

RecalculateNormals

参考:

スムージング角を用いて法線の再計算を行う | NORIO BLOG

better RecalculateNormals | My note (ugcj.com)

A better method to recalculate normals in Unity Part 2 | The Scheming Developer  (archive)

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 チュートリアル (tutorials.shade3d.jp)

シェーダーチュートリアル 両面描画 | Tsumiki Tech Times

両面シェーダーを作ろう | 残念時代

Standerd Double Sided Shader for Unity – GitHub Gist

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

Double Sided | High Definition RP 10.4 Manual [Official]

double sided material – Unity Forum

Backface culling in Unity – Unity Forum

How make visible the back face of a Mesh – Unity Answers

how to make material double sided – Stack Overflow

Backface culling from blender to unity – Blender Stack Exchange

プレハブインスタンスのマテリアル (Prefab Instance)

参考:

インスタンスのマテリアルを変更する | naru design devlog

スクリプトから Material をオブジェクトごとに変更 | はらけんログ

prefab で生成した複数のオブジェクトの色を分ける方法 | teratail

丸影を描画する

参考:

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

アウトラインシェーダー

参考:

綺麗なアウトラインシェーダーを作る – Qiita

髪の毛のアウトラインを綺麗にする | esa-pages.io

Unity の UniversalRP でエッジ検出 | hadashiA

カメラからの深度情報を用いてアウトラインを描画する | LIGHT11

より低負荷なエッジ抽出方法 4点サンプリング法 | LIGHT11

Outline Shader | Alexander Ameye

Unity Outline Shader Tutorial | Roystan

2D Outlines in Shader Graph and URP | Daniel Ilett

LWRP Outline Shader | Unity Forum

SDF

参考:

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

GLSL で SDF をつくりたい – Qiita

MaterialPropertyBlock

参考:

続・スクリプトから Material をオブジェクトごとに変更 MaterialPropertyBlock 編 | はらけんログ

マテリアルや SetPass を増やさずテクスチャの UV を変える | テラシュールブログ

Embedded Materials

参考:

Blender からインポートしたモデルのマテリアル設定方式について | ゴマちゃんフロンティア

Unity でマテリアルが変更できない時 | Sirohood

Materials Tab | Unity Manual [Official]

複数のゲームオブジェクトにまとめてマテリアルを設定する

参考:

Unity の C# でまとめて Gameobject の Shader 変更・コライダー追加 | STYLY Developer’s Blog

ImmediateWindow で複数の Material の設定を一括更新してみる | テラシュールブログ

Assign material to multiple objects – Unity Answers

Setting multiple materials from script – Unity Forum

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

参考:

Creating Normal Maps for Unity in Blender – YouTube

PBR テクスチャ

参考:

PBR マテリアルのテクスチャは実際どのようなテクスチャなのか | tkmkrocket_tech

Autodesk Interactive シェーダー

旧 Standard 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 かどうか判定する | 生存日記 (spphire9.wordpress.com)

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

Procedural Stochastic Texturing

参考:

UnityLabs/procedural-stochastic-texturing: Modified Shader Graph package implementing Procedural Stochastic Texturing – GitHub

Unity の確率論的プロシージャル・テクスチャー生成 | Unity Technologies Blog [公式]

UTS_EdgeDetection

カメラに付与するポストプロセス型の輪郭抽出エフェクト。

参考:

Unity の UTS_EdgeDetection でアウトラインを表示する。- Qiita

unity3d-jp/UnityChanToonShaderVer2_Project/UTS2_Manual_ja.md – オブジェクト反転方式アウトラインを補う:UTS_EdgeDetection – GitHub

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

参考:

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

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

タグ:

コメントを残す

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