Shaderの調査。2月9日

BRACKEYのYOUTUBEに間違いなくハマる。
ブラッキーがゲームジャムに参加したときに作成したゲームのレベルが高すぎて、楽しくなってしまった。

https://www.youtube.com/watch?v=AlCJc05nkwc
自分もいつかこうなるんじゃーって思って、楽しくなっちゃう人たくさんいそう。

私は、Shaderの勉強がしたくて、ブラッキー動画を漁っていたのだけど。
Shaderの基本を勉強したいとき、何を見ればよいのか。。
まず、みるべはUnity公式Learnてことで見つけたのはこれ。
https://learn.unity.com/tutorial/rendering-and-shading#5c7f8528edbc2a002053b539

画像2

<訳>
まだ長い道のりがあるのは、間違いなくシェーダコーディングです。謎に包まれていることが多いですが、シェーダとはGPU上で動作するように特別に作られたプログラムです。最終的には、3Dモデルの三角形を描画するものです。ゲームに特別な外観を与えたい場合は、シェーダのコーディング方法を学ぶことが不可欠です。Unity は後処理にもシェーダを使用しているので、2D ゲームでもシェーダは欠かせません。このチュートリアルでは、シェーダーのコーディングを優しく紹介します。このチュートリアルで得られた知識を拡張するためのチュートリアルは、Alan Zucconiのサイトで見ることができます。

画像2

<訳>
3Dモデルは、基本的には頂点と呼ばれる3D座標の集合体です。それらを連結して三角形を作ります。各頂点には、色、それが指す方向(法線と呼ばれる)、テクスチャをその上にマッピングするための座標(UVデータと呼ばれる)などの情報を含めることができます。
モデルはマテリアルなしではレンダリングできません。マテリアルは、シェーダとそのプロパティの値を含むラッパーです。したがって、異なるマテリアルが同じシェーダを共有し、異なるデータを供給することができます。

画像3

<訳>
シェーダの解剖学
Unityは2つの異なるタイプのシェーダをサポートしています:sufaceシェーダとfragmentシェーダとvertexシェーダです。3つ目のタイプである固定関数シェーダもありますが、現在は廃止されているのでここでは取り上げません。どのタイプがあなたのニーズに合っているかに関わらず、シェーダの解剖学的構造はすべて同じです。
複数のSubShaderセクションを次から次へと持つことができます。これらのセクションには、GPUのための実際の命令が含まれています。Unity は、グラフィックスカードと互換性のあるものが見つかるまで、それらを順番に実行しようとします。これは、異なるプラットフォーム向けにコーディングする場合に便利です。

画像4

<訳>
プロパティ
シェーダのプロパティは、C#スクリプトのパブリックフィールドに相当します。スクリプトとは異なり、マテリアルはアセットです。ゲームがエディタで実行されている間にマテリアルのプロパティに加えられた変更は永久的なものです。ゲームを停止した後でも、変更した内容はマテリアルに反映されます。
以下のスニペットでは、シェーダで使用できる基本的なプロパティの定義を説明しています。

画像5


<訳>
MyTextureや_MyNormalMapで使用される2D型は、パラメータがテクスチャであることを示します。これらのパラメータは、白、黒、グレーのいずれかに初期化することができます。また、テクスチャが法線マップとして使用されることを示すために bump を使用することもできます。この場合、自動的に色#808080に初期化され、バンプが全くないことを表します。ベクトルとカラーは常に4つの要素(それぞれXYZWとRGBA)を持っています。
下の画像は、シェーダがマテリアルにアタッチされると、これらのプロパティがインスペクタにどのように表示されるかを示しています。

この記事が気に入ったらサポートをしてみませんか?