3Dモデルの表示について
OLIVEdes 2014/12/08(Mon) 16:28
Reputeless 2014/12/08(Mon) 16:59
OLIVEdes 2014/12/09(Tue) 16:45
詳細な解説ありがとうございます。
ライティングについてはForward レンダラーを使うことで解決したのですが、
別の問題が起こってしまう様なので再び質問させていただきます。
天球モデルは地形モデルの大きさを考慮しなくても常に遠くにあるように描画
されるように、
Graphics3D::SetDepthStateForward(DepthState::None)で深度バッファへの書き込みを無効にし、
skyMesh.drawForward(skyTexture)で最初に天球をForward レンダラーで描画してから、
terrainMesh.draw(terrainTexture)で後からDeferredレンダラーで地形を描画すると
描画順が入れ替わり、天球が後から描画されたような結果となってしまいます。
地形もForward レンダラーを使えば期待する結果が得られるのですが、複数のライティングを使いたいので
Deferredレンダラーしか使えない状況です。
解決策がございましたら、教えて頂ければ幸いです。
Reputeless 2014/12/11(Thu) 18:24
Graphics3D::SetDepthStateForward(DepthState::TestOnly); で
深度テストは有効にしつつ、深度の書き込みをオフにすれば順序の問題は発生しません。
Siv3D には farclip が存在しないので、skyMesh を非常に遠くに描画する方法でも OK です。
地形と空の描画についてサンプルを掲載しました。
http://play-siv3d.hateblo.jp/entry/jp/example/terrain