2009-08-17 18 views
6

私は、ユーザの視聴位置が一部に設定されたJava 3Dで書かれたシーンを、持っているが、次のコードを使用して座標:今、私は常に表示されているシーンの上にオーバーレイを配置する必要がありJavaの3Dシーンに2dオーバーレイを描画する方法は?

ViewingPlatform vp = simpleUniverse.getViewingPlatform(); 
TransformGroup steerTG = vp.getViewPlatformTransform(); 

Transform3D t3d = new Transform3D(); 
steerTG.getTransform(t3d); 

t3d.lookAt(
     new Point3d(-5, 10, 25), new Point3d(0, 0, 0), new Vector3d(0, 1, 0)); 
t3d.invert(); 

steerTG.setTransform(t3d); 

を、いくつかのテキストなど。私は以下を試したが役に立たなかった:

私は上記のコードを実行すると、全くテキストが表示されない。誰でも助けてくれますか?

+0

すぐにこの質問を理解できることを願っています。ここにJava 3Dが来ます。 –

答えて

4

問題は、近いクリッピング平面内のカメラの上にテキストを直接表示していることです。 z軸に沿って-1を変換するには、このようなものが必要です。

PlatformGeometry pg = new PlatformGeometry(); 

    TransformGroup objScale = new TransformGroup(); 
    Transform3D t3d = new Transform3D(); 
    t3d.setTranslation(new Vector3f(0f, 0f, -1f)); 
    objScale.setTransform(t3d); 

    Text2D text = new Text2D("Text to display", Cell.BLACK, "Verdana", 18, 1); 

    objScale.addChild(text); 
    pg.addChild(objScale); 

    simpleUniverse.getViewingPlatform().setPlatformGeometry(pg); 

希望します。

+0

絶対に素晴らしいです!本当にありがとう! – Cuga

関連する問題