2016-02-03 3 views
0

Я пытаюсь создать clone() a Mesh, созданный с помощью BABYLON.Mesh.CreateGroundFromHeightMap(), но он никогда не отображается.Невозможно скрыть сетку, созданную с помощью CreateGroundFromHeightMap

// Ground 
var groundMaterial = new BABYLON.StandardMaterial("ground", scene); 
groundMaterial.emissiveTexture = new BABYLON.Texture("textures/earth.jpg", scene); 

var ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "textures/worldHeightMap.jpg", 200, 200, 250, 0, 10, scene, false); 
ground.material = groundMaterial; 

// Cloned Ground 
var groundMaterial2 = new BABYLON.StandardMaterial("ground2", scene); 
groundMaterial2.emissiveColor = new BABYLON.Color3(1, 0, 0); 
groundMaterial2.alpha = 0.5; 

var ground2 = ground.clone("ground2"); 
ground2.position = new BABYLON.Vector3(0, 1, 0); 
ground2.material = groundMaterial2; 

http://babylonjs-playground.azurewebsites.net/#YA6VT#1

ответ

0

С CreateGroundFromHeightMap()loads its VertexData from an image, то Mesh не готов быть клонированы, пока он не был загружен. Используя параметр CreateGroundFromHeightMap 's необязательный параметр onReady, мы можем задержать clone(), пока все не будет готово.

// Ground 
var groundMaterial = new BABYLON.StandardMaterial("ground", scene); 
groundMaterial.emissiveTexture = new BABYLON.Texture("textures/earth.jpg", scene); 

var ground = BABYLON.Mesh.CreateGroundFromHeightMap("ground", "textures/worldHeightMap.jpg", 200, 200, 250, 0, 10, scene, false, 
    mesh => { 
     // Cloned Ground 
     var groundMaterial2 = new BABYLON.StandardMaterial("ground2", scene); 
     groundMaterial2.emissiveColor = new BABYLON.Color3(1, 0, 0); 
     groundMaterial2.alpha = 0.5; 

     var ground2 = mesh.clone("ground2"); 
     ground2.position = new BABYLON.Vector3(0, 1, 0); 
     ground2.material = groundMaterial2; 
    }); 
ground.material = groundMaterial; 

http://babylonjs-playground.azurewebsites.net/#YA6VT#2

Смежные вопросы