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

[Java3Djp:00548] Re: Text2Dの色が後ろにある物の色と混合する問題





今野です。

[Java3Djp:00544] つきやまさん
> Text2DからAppearanceをgetして、TransparencyAttributesのモードをNONE
> に変更すると、テキストのBoudingBox(?)領域の後ろ側にある物体が表示されなく
> なってしまいます。

よくよく見てみると ........

Text2Dは、四角形ポリゴンに指定文字列を描画したテキスチャをマッピングした
形で実装されていたのですね。こうゆう方式だとTransparencyAttributesモードを
NONEにする方法では問題は解決できませんでしたね (^ ^;)

ただText2Dの実装を見てみると、このテクスチャは文字領域以外のアルファ値は0.0で
クリアされ、文字がアルファ値1.0で描画されていて、TransparencyAttributesがBLENDED
ですから、本来アルファ値が1.0の文字領域が背景オブジェクトとブレンドされるはずはありません。

そんなはずは ...... と気になって、

こちらでもText2Dオブジェクトの背後にオブジェクトを描画させて試してみましたが、
Text2Dの描画には問題は見られませんでした。シーングラフも念のため何回か
変更してみましたが、トラーバース順序による影響も見受けられませんでした。

結果としては、この問題はつきやまさんのご利用されているOpenGLハードウェアに
依存している可能性があります。このメールに、こちらで動作確認をしたソースを
添付していますので、Text2Dオブジェクトが後ろにあるBoxとブレンドされるか
ちょっと試した見てください。


また、遠藤さんからの回答にもあるように、Text3Dを利用するのも良い方法だと思います。
こちらはJava3DコアAPIですし、私もVRMLのTextノードを実装する際に利用しましたが
現在のバージョンでは問題なく利用できています。

#ただText3DはText2Dに比べて圧倒的にジオメトリ量が多いので、その辺の兼ね合いは
#あるかもしれません。

以上簡単ですが、ご参考まで。

-----------------------------------------------
Satoshi Konno
http://www.cyber.koganei.tokyo.jp
skonno@xxxxxxxxxx

Text2DTest.java