まとめ/Tips

シェーダチートシート | LIGHT11

Unity Shader まとめ | ゆにてく備忘録

Unity Shader 入門した頃の自分に教えたい事 – Qiita

シェーダースニペット集 | 黒鳥のメモ

UTS を読んでいた際の雑記 | ツクロウヤ

Unity の UI/Default シェーダーを見てみる | heppoko

Unity でのシェーダー開発に関するメモ – lilxyzw/Shader-MEMO – GitHub

Unity Shaders and Effects Cookbook – mebusy/notes – GitHub

Shader Code | Unify Community Wiki

ソースコード

ビルトインシェーダー/Standard Shader のソースコードを取得するには、「アーカイブ 」にアクセスして、該当するバージョンの「ダウンロード」ボタンをクリックして「ビルトインシェーダー」を選択する。

Download Archive

参考:

Unity の Standard シェーダーのソースコードを取得する | MR が楽しい

ビルトインのシェーダー include ファイル | Unity マニュアル [公式]

資料

Unity でシェーダを学ぶ時に参考した本とか – Qiita

シェーダー本を書いて得た知見まとめ – Qiita

カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを! (Unite Tokyo 2018) – SlideShare

なぜなにリアルタイムレンダリング – SlideShare

リンク

シェーダに関するオススメ記事まとめ 120個 | コガネブログ

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

テキスト/解説

入手:

Unity シェーダープログラミングの教科書 ShaderLab 言語解説編 | 染井吉野ゲームズ

ライティング

参考:

Cg でのライティングについてメモ – Qiita

デフォルトの Diffuse ライティングをカスタムシェーダで実装する – Qiita

Forward Rendering についてまとめてみた | しゅみぷろ

Forward Rendering で複数のライトを取り扱う | LIGHT11

Unity で Forward のライトに対応した Lambert 反射モデルのシェーダを作成する | 測度ゼロの抹茶チョコ

Diffuse/拡散反射 | KENTO

Directional Light、環境光を反映する | KENTO

頂点シェーダー内でライト方向を取得する方法 | 渋谷ほととぎす通信

理想的な陰影をつけるトゥーンシェーダ – Qiita

ディレクショナルライトの回転値 xyz をそれぞれ取得したい – teratail

Writing Multi-Light Pixel Shaders in Unity | Kyle Halladay

CGIncludes/Lighting.cginc – TwoTailsGames/Unity-Built-in-Shaders – GitHub

仕組み

参考:

Forward – Unity で Standard Surface Shader の変換後のコードを追ってみた | 凹みTips

Deferred – Unity で Standard Surface Shader の変換後のコードを追ってみた | 凹みTips

フレネル反射

参考:

フレネル & セルによるアニメ調シェーダー – Qiita

海洋シェーダ/海の色 | 空の缶詰

アンビエントオクルージョン (Ambient Occlusion)

参考:

ライトマップを再利用して遮蔽箇所の反射を抑える | Tsumiki Tech Times

ベベルシェーダー

参考:

Mobile-Friendly Bevel Shader | Iurii Selinnyi

雪シェーダー

参考:

禍つヴァールハイトで実装された雪シェーダーを紹介します – Qiita

CGIncludes

リポジトリ:

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

DXC

ShaderGraphってdxc.exe対応しているのかしら
よく読んだら出来ないとありましたわね

—— @pCYSl5EDgo

なんか見つけた
UnityのComputeShaderは何もおまじないを書かない状態だとShaderModel 5.0(DX11)でFXCシェーダーコンパイラーを使っている。でもFP16計算やレイトレ計算ができないという問題がありDXCコンパイラーを使えるオプションを用意した、とかいてある。

この感じだとUnityをdx12で起動してCompute Shaderに
#pragma use_dxc
#pragma require Native16Bit
のおまじないをすれば半精度浮動小数点数型(float16_t型)が使えそうなもんだけど、今やったらできないな~

—— @Red_Black_GPGPU

リポジトリ:

microsoft/DirectXShaderCompiler: This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang – GitHub

ドキュメント:

microsoft/DirectXShaderCompiler Wiki – GitHub

リンク:

DXC Shader Compiler Integration (Lukas Taparauskas) | Google ドキュメント

参考:

ShaderGraphってdxc.exe対応しているのかしら (@pCYSl5EDgo) – Twitter

FP16計算やレイトレ計算ができないという問題がありDXCコンパイラーを使えるオプションを用意した、とかいてある (@Red_Black_GPGPU) – Twitter

Shader Model 6.0 or Vendor Intrinsics – Unity Forum

undeclared identifier sampler_CameraDepthTexture エラー

対処法:

_CameraDepthTexture のサンプラーをマクロを使って定義する。

sampler2D _CameraDepthTexture;

と書かれた行を次のように修正する。

UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture);

参考:

サンプルプロジェクトを Oculus Go 向けにビルドするときのエラーに関して · Issue #3 · unity3d-jp/UnityChanToonShaderVer2_Project – GitHub

[XR][Android] Image effects are not rendering properly with single-pass – Unity Issue Tracker

OpenGLES3 fails to compile shaders Hidden Post FX for Android in Unity 2018.2 – Unity Answers

vertex and fragment programs must be present エラー

現象:

頂点シェーダー及びフラグメントシェーダーが含まれていない旨のエラーが発生する。

Both vertex and fragment programs must be present in a shader snippet.

対処法:

頂点シェーダー及びフラグメントシェーダーの宣言を追加する。

#pragma vertex vert
#pragma fragment fragCode language: Arduino (arduino)

参考:

cannot solve this error : “Both vertex and fragment programs must be present in a CGPROGRAM” – Unity Forum

unexpected TOK_GPUPROGRAMID エラー

現象:

構文エラーが発生して正常にコンパイルできない。

Parse error: syntax error, unexpected TOK_GPUPROGRAMID, expecting TOK_SETTEXTURE or '}

原因:

CGPROGRAM あるいは HLSLPROGRAM を挿入する位置が間違っている。

対処法:

CGPROGRAM あるいは HLSLPROGRAM で記述するコードを正しい位置に移動させる。

参考:

シェーダーエラー Parse error: syntax error, unexpected TOK_PASS, expecting TOK_SETTEXTURE or ‘}’ – Qiita

What does this mean ? Unexpected TOK_PASS, expecting TOK_SETTEXTURE – Unity Forum

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

コメントを残す

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

Protected by reCAPTCHA