【问题标题】:JAVA - JMonkeyEngine - getting scene infoJAVA - JMonkeyEngine - 获取场景信息
【发布时间】:2013-12-12 12:38:18
【问题描述】:
我正在开发 JMonkeyEngine 3.0
我在 Scene.j3o 中有我的地图
我想添加细节层次,但我不知道如何获取地形的几何形状。
我发现的代码很少,但都是基于高度图地形,并使用 TerrainQuad。
我还想使用简单的草系统创建 2 个四边形,旋转它们,设置材质并克隆它们并添加到地图,但我不知道如何获取地形高度,这是教程中的一行:
float y = myTerrainQuad.getHeight(new Vector2f(x, z));
【问题讨论】:
标签:
java
java-me
spatial
terrain
jmonkeyengine
【解决方案1】:
我遇到了和你一样的问题,按照 JME 3.0 的官方初学者指南中的地形教程进行操作。它开始帮助您使用 Scene.j3o 上的 IDE 上下文菜单创建地形,但是当他们开始查看地形上的高度以放置树木时,他们会切换到使用 TerrainQuad 对象来描述它,就像您说的那样。
我很高兴地说我刚刚通过从 .j3o 中提取 TerrainQuad 解决了这个问题,如下所示:
Spatial terrainGeo = assetManager.loadModel("Scenes/bumpyScene.j3o");
TerrainQuad terrainQuad = ((TerrainQuad)((Node)terrainGeo).getChild("terrain-bumpyScene"));
Geometry someObject = new Geometry("SomeObject", new Box(.1f, .1f, .1f));
terrainQuad.getHeight(
new Vector2f(someObject.getLocalTranslation().x, someObject.getLocalTranslation().y) );
在 SceneExplorer 中,您可以看到场景的结构和名称。如您所见,编辑器向导创建了一个 TerrainQuad,在示例中,我的 TerrainQuad 位于名为“terrain-bumpyScene”的节点下。
最后一点,通过代码使用遍历节点来调试某些问题可能会有所帮助,此链接对我解决任务非常有帮助:JME advanced docs, node traversal