[英]How to draw a 2d overlay on a Java 3d scene?
我有一個用Java 3d編寫的場景,其中用戶的查看位置使用以下代碼設置為某個坐標:
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);
現在我需要在總是可見的場景頂部放置一個疊加層,例如一些文本。 我試過以下,但無濟於事:
PlatformGeometry pg = new PlatformGeometry();
Text2D text = new Text2D("Text to display", Cell.BLACK, "Verdana", 18, 1);
pg.addChild(text);
simpleUniverse.getViewingPlatform().setPlatformGeometry(pg);
當我運行上面的代碼時,我根本看不到任何文本。 有人可以幫忙嗎?
問題是您在近剪裁平面內直接在相機頂部顯示文本。 你需要這樣的東西來沿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);
希望有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.