我是babylon.js的新手,并尝试使用功能CreateGroundFromHeightMap构建某些内容。我想更新babylon.js中的Height Map url参数,但找不到方法。
这是我的代码来构建它:
var ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "textures/heightMap3.png",1000, 1000, 100,-100, 100, scene, false);
我应该完全删除地面实例并加载一个新实例,还是有其他解决方案?在删除它的情况下,我应该只使用:ground.dispose()?
感谢您的回复
无法“更新”用于创建网格的图像。
网格的几何形状在下载图像后创建,然后图像被处置并且不再使用。创建一种“更新”机制的唯一方法是在下载新映像后处理旧的网格并创建新的网格。
还请注意,函数CreateGroundFromHeightMap是异步的。您可以添加“ onSuccess”回调以禁用旧的网格并显示新的网格:
let groundMesh;
function updateGroundMesh(newUrl, onSuccess) {
if(groundMesh) groundMesh.dispose();
groundMesh = BABYLON.Mesh.CreateGroundFromHeightMap("ground", newUrl ,1000, 1000, 100,-100, 100, scene, false, onSuccess);
}
updateGroundMesh("image1.jpg", () => {
updateGroundMesh("image2,jpg");
});
这当然是一种非常幼稚的方法,并且只会更新一次),中间只有几帧以加载第二张图像。它需要改进:-)