1

というわけで、カードゲームを作っています。何を試しても、java3d がオブジェクトを間違ってレンダリングするという一貫した問題があります。これが私が話していることです: ここに画像の説明を入力

カメラがそれらを後ろから見ているとき、それらはすべて正しい順序で並んでいます。

でも反対側に回ると…

s

ここに画像の説明を入力

実際には後ろにあるはずのカードが一番上に表示されます。

ここに画像の説明を入力

Blender(x3dsとして作成した場所)でそれらをチェックしたため、法線の問題ではないことはわかっていますが、それらはすべて外側を向いています。さらに、カードを裏返すと (最初の写真では前面がカメラに面するように)、同じ問題が発生しますが、逆になります。カードは、表側から見ると正しくレンダリングされ、互いに覆い隠され、裏側から見るとめちゃくちゃになります。

これは私のゲーム (Egyptian Ratscrew) にとって絶対に壊滅的な問題です。なぜなら、カードを山にして表向きにし、正しい順序で表示する必要があるからです。

com.interactivemesh.j3d.interchange.ext3d.XModelLoader を使用してインポートします。テーブルや一対の手など、シーンに他のオブジェクトがありますが、この問題はありません。カードが薄いからだと思います。

それで... 誰かが以前にこのようなことを見たことがありますか、またはこれの原因について何か考えがありますか?

4

2 に答える 2

2

深度バッファがないか、深度バッファ情報が無視されているようです。RenderingAttributesを見てください。

于 2013-05-09T11:31:14.077 に答える
0

透明度を計算するための順序付けを行うものがありTransparencySortControllerます-おそらくあなたの場合はうまくいくでしょうか? うまくいったとしても、問題が元に戻るので、そうは思いません。しかし、あなたは試すことができます。

問題は、両側からレンダリングされた単一のサーフェスを使用している可能性があると推測します.両側が同じ法線を共有しており、無効な順序が発生する可能性があると思います. これにはいくつか問題がありました。

I would suggest using two opposite surfaces for each single card -- each transparent from one side. Then their normals would point in correct directions.

Also: post your nodes creation code. There may be a mistake there.

于 2013-05-09T10:20:26.057 に答える