
Photo by
nano87saita
DirectX12_IBL勉強中_2023-12-07
DirectX12でIBLに挑戦しようとしております。
参考文献を色々とよんでいるのですが、なかなか難しいですね😇
とりあえず、いまのところわたくしが理解(というか認識?)しているIBL↓
周辺環境からのライティング情報を画像に閉じ込める。↓のようなキューブマップ画像になります。

計算上、この画像のRGBは即ち輝度として理解されます
この輝度情報から、シーン上の特定の地点の照度を計算します
照度からカメラに映る輝度を計算します。これが表示ピクセルとなります
↑のようなキューブマップ画像から照度を計算するには積分をする必要がありますが、この積分計算は解析的に解くことができず、数値積分を使って近似解を求めることになります。
数値積分を行う処理は計算量が多く、リアルタイムにレンダリングするためにはいくつかの工夫が必要です
事前計算できるように式変形・近似を行う
事前計算できる部分は計算結果をルックアップテーブル(テクスチャ)にしておく
など
で、数値積分の方法とか、処理時間低減のための工夫の部分が難しくて大変なことになっています😇
毎日何かしらの画像を進捗として出していたのですが、今は座学中心でなんの画像もだせないのも辛いです😇
が、毎日のnote投稿は続けたかったので無理やり今回の記事を書きました😇
参考文献
Direct3D 12 ゲームグラフィックス実践ガイド
Physically Based Rendering in Filament