MRが楽しい

MRやVRについて学習したことを書き残す

UnityのStandardシェーダーのソースコードを取得する

本日は Unity の調査枠です。
UnityのStandardシェーダーのソースコードを取得する方法を記事にします。

Standardシェーダ

Standardシェーダは3Dオブジェクトを生成したときにデフォルトで使用されるUnityの基本シェーダです。
基本シェーダですが、物理ベースシェーディングの様々な設定項目があり、色々な質感を表現できます。
f:id:bluebirdofoz:20190725093057j:plain
docs.unity3d.com

自作シェーダを作成するとき、Project フォルダ上で右クリックから Create -> Shader -> Standard Surface Shader でシェーダのコードを作成できます。
f:id:bluebirdofoz:20190725093107j:plain

しかし、このとき生成されるシェーダのコードは上記の Standard シェーダとは異なります。
f:id:bluebirdofoz:20190725093118j:plain

ビルトインシェーダーの取得

Standard シェーダのソースコードを利用する場合は以下のアーカイブから取得可能です。
unity3d.com

利用したい Unity バージョンのプルダウンを開き、[ビルトインシェーダー]をクリックします。
f:id:bluebirdofoz:20190725093217j:plain

builtin_shaders-XXXX.X.XXX.zip がダウンロードされるので、これを展開します。
f:id:bluebirdofoz:20190725093229j:plain

例えば Standard シェーダは Standard.shader という名前で builtin_shaders-XXXX.X.XXX/DefaultResourcesExtra 配下にあります。
f:id:bluebirdofoz:20190725093306j:plain

Unity プロジェクトに取り込む場合はシェーダの名前を変更します。
ファイル名とシェーダの名称を以下の通り StandardCopy に修正した .shader ファイルを作成しました。
f:id:bluebirdofoz:20190725093315j:plain
f:id:bluebirdofoz:20190725093324j:plain

これをプロジェクトにドラッグして取り込みます。
f:id:bluebirdofoz:20190725093354j:plain

Material のシェーダとして指定すると Standard シェーダと同様のマテリアルが作成できました。
f:id:bluebirdofoz:20190725093403j:plain