![Unityシェーダープログラミングの教科書2【反射モデル&テクスチャマップ編】](https://booth.pximg.net/a70b45c2-fd77-4f46-b29e-f6264887499f/i/1032141/70e27e98-bee6-4d30-8ad5-0c37277675e6_base_resized.jpg)
シェーダープログラミングにおいて自由な質感表現を実現するには、光源から放射された光が、物質の表面上にどのように反射して視点に到達するかを計算する必要があります。このような計算式を「反射モデル」と呼び、フォトリアル/トゥーンレンダリングにかかわらず、すべてのシェーダープログラミングの基礎となっています。 本書では、反射モデルについてもっとも基本となるランバート反射モデルからはじめて、徐々により高度な物に進み、近年のAAAタイトルなどで採用されている物理ベースレンダリング(PBR)について解説します。それぞれの反射モデルについて、Unity上で動作するサンプルコードを用いて説明しています。 また、より精細な描画をするためには、様々な種類のテクスチャマップについての理解が必要です。本書ではUnityにおけるテクスチャマップの仕組みについて解説しています。特に、プリミティブに凹凸表現を与える法線マップと、周囲の風景を映り込ませる環境マッピングについては、それぞれ章を分けて詳細に解説します。
構成
B5サイズ 表紙+本文82ページ
目次
はじめに 注意事項:ライティングモデル/用語について 第1部 反射モデル 第1章 反射モデルについて 第2章 ランバート反射モデル1(グーローシェーディング) 第3章 ランバート反射モデル2(フォンシェーディング) 第4章 フォンの反射モデル 第5章 ブリン・フォン反射モデル 第2部 物理ベースレンダリング(PBR) 第6章 物理ベースレンダリング(PBR)とはなにか 第7章 光の性質/双方向反射率分布関数(BRDF) 第8章 クック・トランス反射モデル 第9章 サンプルコード 第10章 シュリックのフレネル近似式 第3部 テクスチャマップ 第11章 テクスチャマップとは 第12章 UV座標系とUVマッピング 第13章 ミップマップとミップマップレベル 第14章 テクスチャ型変数宣言 第15章 テクスチャサンプリング関数 第16章 テクスチャマップの追加情報 第17章 法線マップ 第18章 環境マッピング 付録:参考書籍 あとがき/奥付
訂正
P24のサンプルコード中の記述説明が間違っていました。申し訳ありません。 正しくは以下になります。本文説明は適宜読み替えてください。 // フォンによるスペキュラ近似式① float3 R = -1 * lightDir + 2.0 * NdotL * normal; // フォンによるスペキュラ近似式② float VdotR = dot(viewDir, R); float3 specularPower = pow(max(0, VdotR), 10.0);