directional lightとlambertシェーディングを実装
カメラ位置を変えるのにも再コンパイルという
状況を鑑みて設定ファイルを導入。
ファイルフォーマットは、先日仕込んでおいたboost::spirit
のTinyJSONを活用してJSON形式とした。
こんな感じで。
{ "view":{ "eye":[0.0, 0.1, 0.8], "angle":30.0 }, "scene":{ "lights":[ {"type":"directional", "power":1.0, "direction":[-1.0, -1.0, -1.0]} ], "objects":[ {"file":"model/bun_zipper_res4.ply"}, ] } }
レンダラの方はDirectionalLightとLambertシェーディングをセットで実装。
三角形交差判定の写経ミスを修正した。
でもまだなんかおかしい。
シェーディングがおかしいのか?
三角形が裏返っているようにも見えるがそのうちわかるであろう。
シェーディングやマテリアルをもっと強化したいところだが、
ちょっとポリゴン数が増えたら急速に遅まるので
ここいらで空間分割を導入することにする。
sampling count: 22500 triangle intersection count: 6066252 rendered time: 0.27 sec
シェーディングがおかしい件は直った
リファクタリングしたら勝手に直っていた・・・。
最近点値変数tの初期化洩れくさい。
ToDo
Uniformed Gridの実装