everyone!我正在研究一個項目,我採用「基礎」模型/網格,並將其形成看起來像更加確定的地形。不過,當我嘗試編輯網格時,我遇到了一個問題。這基本上是我如何做到這一點:(assets
是AssetManager
)LibGDX從模板編輯模型網格
Model terrain = assets.get("terrain.g3db", Model.class);
Mesh template = null;
for (float x = 0; x <= maxX; x += 1f) {
for (float z = 0; z <= maxZ; z += 1f) {
Mesh m = template.copy(false);
// get proper vertices here
mesh.setVertices(vertices);
terrain.calculateTransforms();
terrain.meshes.set(0, mesh);
ModelInstance terrainInstance = new ModelInstance(terrain);
terrainInstance.transform.setToTranslation(x, 0, z);
instances.add(terrainInstance);
}
}
唯一的問題是,當我這樣做,我只是得到一個平坦的地形。當我刪除這條線:
terrain.meshes.set(0, mesh);
我得到的地形,但每個模型實例具有相同的東西。爲了解決這個問題,我已經刪除了這一行,並添加以下之一:
terrain.meshes.get(0).setVertices(vertices);
什麼,我認爲與引起的平面地圖是當我設置它的行發生的事情,它消除任何可能會說, 「嘿,這個網格關係到模型的這個部分」。
屏幕截圖:
與導致平面地圖行:Picture
如果沒有這條線:Picture
UPDATE:由於Xoppa的評論暗示我打開一個新的模型的每個點,但在這樣做的時候,我必須使用G3dModelLoader
。我想使用AssetManager
如果這是可能的,但我不認爲它是...
那麼,這有什麼問題? – Xoppa
我該如何解決這個問題,以便我沒有將這些模型堆疊到一個數組中。我希望模型具有彼此獨立的網格。 – mttprvst13
如果你想創建多個模型,然後創建多個模型。在你的代碼中你只有一個模型。 – Xoppa