曇りガラスで学ぶインタラクティブシェーダ入門
- サンプル0 JPY
- 完全版500 JPY
*本書はVRC技術市に出展したものです* https://vrc-tech.work/ 本書は曇りガラスシェーダであるVRCSmokeGlassの実装を通し、カメラを利用した他オブジェクトが干渉できるインタラクティブなシェーダを実装する方法を紹介するというものです。 レベルとしてはシェーダ初心者向けですが、他のプログラミング言語を触ったことがある体で解説を進めていくため、そこはご了承ください(無償のサンプル本も置いてあります)。
この資料により得られる知識
この資料を読むことで以下の事柄が学べます。 * RenderTexture及びCustomRenderTextureの使い方 * フラグメントシェーダの書き方 * サーフェスシェーダの書き方 * エディタスクリプトによるシェーダのユーザビリティ向上法 曇りガラスと同等の機能を持ったシェーダを作れるほか、他オブジェクトが干渉する応用の効いたインタラクティブなギミックを実装できるようになります。 また、ここで実装する内容はUnityの基本的な機能のみを利用しているため、VRChat外の環境においても動作します。 基礎の基礎は省いて解説していくため、シェーダの文法のような基本的な事柄はUnityのリファレンスを参照しながら読んでいくことをお勧めします。対象者としてはUnityの扱いになれてきたVRChat中級者ぐらいを想定しています(シェーダ、マテリアルが何を指すのかなどがある程度理解出来る程度)。 本書は査読を行っておらず、表記揺れや抜けがある場合があります。同人誌ということでご了承ください。
目次
この資料により得られる知識 … p3 曇りガラスシェーダについて … p4 全体の構成 … p5 §1 深度情報を取る … p6 §2 当たり判定を取るシェーダを書く … p8 §3 曇り情報を描画する … p10 §3.1 曇り状態を扱う … p10 §3.2 ブラーもどき … p13 §3.3 線形補間以外の方法 … p15 --- サンプルはここまで §4 ガラスを描画する … p16 §4.1 サーフェスシェーダ … p17 §4.2 マスク … p18 §4.3 単純な描画 … p19 §4.4 リフレクションプローブ(簡易) … p20 §5 エディタスクリプト … p22 §5.1 エディタスクリプトの構造 … p23 §5.2 装飾する … p24 おわりに … p25 参考文献 … p26