[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Java3Dの混合処理





Numakuraです。

昨日、JavaHouseでのえんどうさん、徳屋さん、岸田さんのJava3Dの
半透明に関するやりとりを読んだのですが、その中のえんどうさんの
サンプルプログラムを実行して疑問を生じました。

OpenGL1.1では、半透明のポリゴン(これをAとする)を描画した
後で、その後ろに他のポリゴン(これをBとする)を描画すると、AとBの
重なった部分は、Aしか表示されません(つまり半透明を表現でき
ていない。半透明を表現するには、Bの後にAを描かなくてはならない)。

ところが、えんどうさんのサンプルでは、後ろにあるはずの青いポリゴ
ンが前に表示されます。原因として考えられるのは、Java3Dでは通
常のポリゴンは、そのZ値も書き込むのに対し、半透明なポリゴンは
Z値を書き込まないんではないか?と思っているのですが、そういう
仕様なのでしょうか?

#これが仕様だとするとおかしくない? OpenGLのもおかしいといえば
#おかしいけど... 透明を正確に表現しようとすると、レイトレしかないの
#かないのかな。 
#JavaHouseではちょっと敷居が高いので、こちらで質問させてもらいま
#した。

_/_/_/     E-Mail:numakura@aie-res.co.jp    _/_/_/