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

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




                ━ For the all People ━

                 http://www.perso.co.jp 
                 

今野です。

> Text2Dを使用しているのですが、Text2Dの後ろ(視点より遠い位置)に
> 物体(例えば直方体)などがありまして、
> 視点から見て重なっている場合にText2Dの色が変わってしまいます
> (後ろの物体の色の影響を受けているように思います)。
> Text2Dの方が後ろの物体よりもどんなに視点に近くても起ります。

ちょっと気になったのでソースを見てみたのですが、Text2Dは背景との
混合を前提にした仕様のようで、そのようにインプリメントされていますね。

具体的には、以下の抜粋したインプリメント部分の中で、混合指定
(TransparencyAttributes.BLENDED)を行ったAppearanceが
Text2Dに設定されているのが原因のようです。

    TransparencyAttributes transp = new TransparencyAttributes();
    transp.setTransparencyMode(TransparencyAttributes.BLENDED);
    transp.setTransparency(0f);
    Appearance appearance = new Appearance();
    appearance.setTransparencyAttributes(transp);

混合したくないのであれば、シーングラフに追加する前にText2Dに
以下のように明示的に混合しないAppearanceを再設定すれば問題
ないでしょう。

    Text2D tex2d = new Text2D( ....... );
    TransparencyAttributes transp = new TransparencyAttributes();
    transp.setTransparencyMode(TransparencyAttributes.NONE);
    Appearance app = new Appearance();
    app.setTransparencyAttributes(transp);
    tex2d.setAppearance(app);

上記の設定は確実ですが、ちょっと冗長です。単に以下のような
コードでもOKかもしれません。
    
    Text2D tex2d = new Text2D( ....... );
    tex2d.setAppearance(new Appearance());

以上簡単ですが、ご参考まで (^ ^)

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