2

OpenGLを使用して3Dオブジェクトをレンダリングしています。3Dワールドの各オブジェクトには、オブジェクトをパーツ座標系(PCS)からワールド(WCS)に変換するための境界ボックスと関連するモデルマトリックスがあります。バウンディングボックスもPCSにあります。各オブジェクトの重心はWCSで計算され、各オブジェクトに関連付けられます。

WCSでカメラの位置とターゲットの位置を指定します。->すべての不透明なオブジェクト(アルファ== 1)を前面から背面にレンダリングしたいと思います。->不透明なオブジェクトをレンダリングした後、すべての半透明のオブジェクトを後ろから前にレンダリングしたいと思います。

これがグラフィックエンジンを実装する最初の試みなので、シーングラフがここでどのように役立つかわかりません。カメラからの距離に基づいてオブジェクトを手動で並べ替えてから、不透明/半透明のオブジェクトに基づいて同じものをレンダリングする必要があると思います。本当にシーングラフが必要ですか?エンジンの実装はどのようにすればよいですか。利用可能な他のエンジンを使用することはできますが、使用したくないので、自分で実装したいと思います。

4

1 に答える 1

5

ここでは必ずしもシーングラフは必要ありませんが、レンダリングリストは必要です。つまり、レンダリングサイクルごとにリストをクリアします。レンダリングされるすべてのオブジェクトは、それ自体をレンダリングリストに追加します。完了したら、カメラからの距離に基づいてリストを並べ替えます。

あなたの場合、2つのレンダリングリストを使用することをお勧めします。1つは半透明のオブジェクト用で、もう1つは不透明のオブジェクト用です。

リストが並べ替えられたら、リストをリッピングしてオブジェクトを順番にレンダリングします。

ほとんどすべてのシーングラフの実装でもリストがレンダリングされるため、シーングラフの必要性を混乱させている可能性があります。

于 2012-09-17T05:59:21.087 に答える