Unity Shader Programming Vol.01 (v.3.0.0)【PDF】
- Unity Shader Programming Vol.01 (v.3.0.0)【PDF】1,000 JPY
- Unity Shader Programming Vol.01 (v.3.0.0 サンプル)【PDF】0 JPY
Unity でシェーダプログラミングを始めたいけど、公式の資料や散見する様々な資料では難しいという人に対し、小さく、簡単に、サンプル付きでまとめた資料です。 総ページ数:94 本文中のサンプルはオープンソースで管理しています。合わせて購入の検討に利用してください。 https://github.com/XJINE/UnityShaderProgramming_01_Sample
資料の内容
この資料では Unity におけるシェーダの基本的なあつかい方と、オブジェクトが描画される過程「レンダリングパイプライン」について、Unlit Shader を例に解説しています。 Unlit Shader とは「Un Lighting Shader」の略称で、陰影や輝きを描画する「ライティング」や「シェーディング」といった処理を含まないシェーダのことを指します。言い換えれば、オブジェクトに設定された色やテクスチャがそのまま描画される、もっともシンプルなシェーダです。 複雑な処理は含まれませんから、シェーダがどのように働いてオブジェクトを描画するのか、Unity ではどのように実装されているのかを学習しやすく、入門にあたって、もっとも適切な題材となっています。 この資料の目標は、異なる他の資料の解説やソースコードを読み進めるだけの最低限の知識を共有することです。
目次
はじめに 第 1 章 シェーダとレンダリングパイプライン ―― 1.1 レンダリングパイプライン ―― 1.2 VertexシェーダとFragmentシェーダ 第 2 章 シェーダの基本的な構造と役割 ―― 2.1 Shader構文 ―― 2.2 SubShader / Pass構文 ―― 2.3 CGPROGRAM / ENDCG構文 ―― 2.4 #pragma構文 ―― 2.5 #include構文 ―― 2.6 Vertexシェーダ ―― 2.7 Fragmentシェーダ ―― 2.8 オブジェクトの色を変える ―― 2.9 補足:座標変換の工程 ―― 2.10 補足:POSITIONとSV_POSITION ―― 2.11 補足:小数点数値を扱う型の違い 第 3 章 Inspectorからシェーダの値を変更する ―― 3.1 Properties構文 ―― 3.2 異なる型のProperties 第 4 章 テクスチャを設定して描画する ―― 4.1 Properties にテクスチャの項目を追加する ―― 4.2 UV座標 ―― 4.3 レンダリングパイプラインからUV座標を受け取る ―― 4.4 ラスタライズ ―― 4.5 TilingとOffset 第 5 章 Vertex, Fragmentシェーダの再確認 ―― 5.1 FragmentシェーダによるUV座標の可視化 ―― 5.2 Vertexシェーダによる頂点の移動 第 6 章 カリングの制御による背面の描画 ―― 6.1 Cull構文 第 7 章 Z TestとOffsetによる描画順の制御 ―― 7.1 ZTest 構文 ―― 7.2 Offset構文 第 8 章 Blendingと描画順の制御による透過表現 ―― 8.1 レンダーキューによる描画順の制御 ―― 8.2 ブレンディングによる色の合成 ―― 8.3 Tags構文 ―― 8.4 Queueタグ ―― 8.5 RenderTypeタグ ―― 8.6 Blend構文 ―― 8.7 BlendOp構文 ―― 8.8 補足:サンプルの注意点 第 9 章 Z Writeの制御による部分的な透過表現 ―― 9.1 ZWrite構文 ―― 9.2 Z Writeを無効にすることで起こる問題 第 10 章 Alpha Testによる部分的な透過表現 ―― 10.1 Alpha Test用のRenderQueue ―― 10.2 Fragmentシェーダの実行を破棄する ―― 10.3 AlphaToMaskによるジャギーの軽減 おわりに
想定する読者と方針
この資料は Unity の基本的な操作方法については知識があり、シェーダプログラミングを経験したことがない方を読者に想定しています。あるいは、シェーダプログラミングの学習を進める上での補助的な資料として役立てることを想定しています。 この資料のよい点として (1) もっとも小さいサンプルからステップバイステップ形式で内容が整理されていること、(2) それぞれのステップでサンプルが用意されていることが挙げられます。 ほとんどすべての技術的な解説については Unity 公式の資料やその他の資料から確認することができますが、多くの場合に、それらは学習の順序などを考慮していません。教材形式の資料を用いて学習する一番のメリットは、さまざまな資料を集め、それらを取捨選択しながら順序立てる負担を軽減できることにあるでしょう。 一方で、この資料では高度な技術やその詳細、応用の類は解説されていません。特に、シェーダプログラミング以外の CG に関する詳細な解説や数学的な内容は、その多くを割愛しています。これらは「シェーダプログラミングの入門」に当たっては不要であり、より詳細な情報については、それらを専門に扱う資料を参照した方がよいためです。したがって、数学的な内容からきちんと順序立てて CG を学習したい方、高度な技術や CG による表現技法について学習したい方には、この資料は不向きであるといえます。
感想・要望・その他のお問い合わせ
要望、感想、誤字脱字などのご指摘、その他のお問い合わせについては専用フォームでお伺いします。折り返しのご連絡等については必ずのお約束をしかねる体制であることご了承ください。 【問い合わせフォーム】 https://goo.gl/forms/mOiWo6JuPz848deh1
価格について
価格は (1) 学習のために順序立てて整理する (2) 最小限のサンプルを考えて用意する (3) 執筆して管理する、などの要因から決定しています。 価格は、特に新しい情報が追加されるときに改定されることがあります。あるいは、広く広報するなどの目的のために、一時的に改定することがあります。 新しいバージョンがリリースされるとき、既に同じものを購入されている方については、基本的には追加料金なしに入手できるようにしています。ただし電子的な管理が可能なもの、著しく内容が変更されないものに限ります。 上記について、予めご了承ください。
更新履歴
ver.0.9.9 (2018.07.11) ―― 初回リリース。 ver.1.0.0 (2018.07.17) ―― 価格改定 ―― 誤字脱字修正。 ―― 小数点数値の考慮について追記。 ver.1.1.1 (2018.08.19) ―― 価格改定 ―― 誤字脱字修正。 ―― 一部の難解な言い回しを修正。 ―― UV テクスチャを分かりやすいものに変更して修正(3章)。 ―― ラスタライズについての言及を追加(3章)。 ―― Vertex/Fragment シェーダを復習する章を追加(4章)。 ver.1.1.2 (2019.05.20) ―― 誤字脱字修正。 ver.2.0.0 (2019.09.21) ―― レンダリングパイプライン、アルファテストについて追加。 ―― その他の項目についても内容と図を更新し、掲載順を再設計。 ver.2.2.1 (2020.04.10) ―― 旧 11, 12 章を vol.02 へ移動。 ―― CGPROGRAM に関する解説を更新。 ―― サンプルやキーワードの表記を更新ほか。 ver.2.2.2 (2020.09.24) ―― 全体で言い回し調整。 ―― 2 章内容を一部補足に移動 ―― 2 章に座標空間の変換について追記。 ver.3.0.0 (2021.01.04) ―― フォーマットを変更