VRエンジン作成日記

ひたすらVRエンジンを作っていきます

視錐台カリングを実装してみた

今日は視錐台カリングを実装した。実装したけど、考え方をきちんと理解しているわけではない。次のサイトに書かれている内容を参考にさせて頂いて、なんとなくで書いた。

edom18.hateblo.jp

描画オブジェクトが多い場合は違いが分かりそうだけど、今のところ画面に出しているオブジェクトが少なすぎて、実感できるほどの効果は出ていない。ドローコールの数をカウントしてみたら、確かに描画回数は減っているようだ。オブジェクトの回転を考慮せずにAABBのサイズを計算しているので、回転で大幅に大きさが変わるオブジェクトについては、カリングされてはいけない時にカリングされる可能性がある。これについては後ほど修正したい。

あと、ようやくフォンシェーディングをまともにできたと思う。カメラを動かしても、環境光、拡散光、反射光ともにうまく当たっているように見える。こちらはわりと時間をかけて考えたので、間違えていないと思いたい。

ついでに、フォルダ構成を少し整理した。ファイル数が増えてきたので、目的のファイルが思ったフォルダに入っていなかったみたいなことで時間を費やしてしまうのを減らしたかった。

・関連するコミット

add frustum culling · hikipuro/tea.js@abfa628 · GitHub