球面調和

以前からライブラリにぶち込もうって思ってた

SH関数によるライティングを実装して

ライブラリにぶち込んでみましたよ

 

588.jpg

 

KILLZONEの様に

キューブマップに戻すのではなく

BIO5の様に

計算した9つの係数からライティングをさせてますよぉぅ~

 

ついでにスカイスフィアの関数も入れました

 

解りやすい絵で表示すると

589.jpg

こんな感じ

sIBLもおんなじ感じでただ単に係数が多いだけだと思うので

結構なクオリティの絵が出せるんじゃないかと思ってますよぉぅ

 

ちなみに、

SH関数使うと何がいいの?ってのは

Impressさんの記事をそのままパクると

32×32の6面キューブマップを使うと

非圧縮で32kbの所

SH関数を使うことによって64bまで使用量を減らすことが出来るんですよ~

(ライブラリは27個だからもう少し多いかな?)

 

4万頂点の場合はキューブマップが938MBに対して

SH関数の場合は2.4MBで済むらしいです

1/400ですね

 

しかもその係数と、スケーリング係数を保持しておけば

大体、元のキューブマップが再現できるってなグフフ処理です

見栄えも良くなるしね!

 

KILLZONEはその係数を元に

8テクセルのキューブマップを作り

それでライティングさせてるらしいです

 

まだキューブマップを再現まで作ってないので

そこらへん作ったら

久方ぶりにライブラリを更新しますよぉぅ

コメント

タイトルとURLをコピーしました