2016-06-15 21 views
1

私はOSGを使って小さなGISアプリケーションを開発していますが、私はかなり初心者です。OpenSceneGraphのデプスバッファと描画順序の制御

ビューが大きく変化しないので、私はまともなfps比を維持するのに苦労していません。

同じビューで複数のレイヤーを描画する必要があります。レイヤーは重なることがありますが、必ずしもそうではありません。

現在、他のレイヤーの上にあるレイヤーを選択できるように、私はPolygonOffetプロパティーを使用していますが、私はそれが気に入らないのです。ここで

は、私が試してみたいものです:私のルート上の明確なノード-put のみデプスバッファ をクリアするために、各階層ノードの上に明確なノード-putすべてのバッファ をクリアするために道を-find OSGが特定の順序でそれらのレイヤーを描画するように強制します。

私の質問は ですか? - レイヤのノードのレンダリング順序を選択するにはどうすればよいですか?

答えて

1

カメラでバッファをクリアすることができます。例えば。主カメラがすべてを描画していて1つのバッファをクリアしたい場合は、同じrenderTargetImplementationを持つ以外の何もしない第2のカメラを追加し、それにDepthBufferを付加し、GL_DEPTH_BUFFER_BITクリアマスクを持ち、メインカメラの後ろにレンダリングさせます。

カメラでは、setRenderOrderでレンダリング順序を選択できます。ノードでは、setRenderBinを使用して作業できます。

複数のカメラソリューションを使用すると、マルチパスレンダリングが行われますが、コストがかかる可能性があります。その場合、各レイヤーを独自のカメラで描画することになります。

脇の下に、あなたが望むのは、z戦闘を避けることです。そうするにはいくつかの方法があります。たぶんこのキーワードを使って答えを見つけることができます。

関連する問題