以前からライブラリにぶち込もうって思ってた
SH関数によるライティングを実装して
ライブラリにぶち込んでみましたよ
KILLZONEの様に
キューブマップに戻すのではなく
BIO5の様に
計算した9つの係数からライティングをさせてますよぉぅ~
ついでにスカイスフィアの関数も入れました
解りやすい絵で表示すると
こんな感じ
sIBLもおんなじ感じでただ単に係数が多いだけだと思うので
結構なクオリティの絵が出せるんじゃないかと思ってますよぉぅ
ちなみに、
SH関数使うと何がいいの?ってのは
Impressさんの記事をそのままパクると
32×32の6面キューブマップを使うと
非圧縮で32kbの所
SH関数を使うことによって64bまで使用量を減らすことが出来るんですよ~
(ライブラリは27個だからもう少し多いかな?)
4万頂点の場合はキューブマップが938MBに対して
SH関数の場合は2.4MBで済むらしいです
1/400ですね
しかもその係数と、スケーリング係数を保持しておけば
大体、元のキューブマップが再現できるってなグフフ処理です
見栄えも良くなるしね!
KILLZONEはその係数を元に
8テクセルのキューブマップを作り
それでライティングさせてるらしいです
まだキューブマップを再現まで作ってないので
そこらへん作ったら
久方ぶりにライブラリを更新しますよぉぅ
コメント