Как обновить "URL-адрес изображения карты высоты" из Me sh .CreateGroundFromHeightMap в babylonjs - PullRequest
0 голосов
/ 23 января 2020

Я новичок в Вавилоне. js и пытаюсь что-то построить с помощью функции CreateGroundFromHeightMap. Я хотел бы обновить параметр Высота карты URL в Babylon. js, но я не могу найти, как это сделать.

Вот мой код для его построения:

var ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "textures/heightMap3.png",1000, 1000, 100,-100, 100, scene, false);

Должен ли я полностью удалить свой наземный экземпляр и загрузить новый или есть другое решение? в случае его удаления я должен использовать только: ground.dispose ()?

Спасибо за ваши ответы

1 Ответ

0 голосов
/ 26 января 2020

Невозможно "обновить" изображение, использованное для создания me sh.

Геометрия me sh создается после загрузки изображения, и изображение затем удаляется, а не используется больше. Единственный способ создать своего рода механизм «обновления» - избавиться от старого me sh и создать новое me sh после загрузки нового изображения.

Обратите также внимание, что функция CreateGroundFromHeightMap имеет асин c. Вы можете добавить обратный вызов onSuccess, чтобы отключить старый me sh и показать новый:

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");
});

Это, конечно, очень наивный подход, который будет обновляться только один раз) с несколькими кадрами между, чтобы загрузить 2-е изображение). Требуются улучшения: -)

...