function ScreenToWorld(point, camera)
{
var viewport = camera.viewport.toGlobal(engine.getRenderWidth(), engine.getRenderHeight());
return BABYLON.Vector3.Unproject(new BABYLON.Vector3(point.x, point.y, 0), viewport.width, viewport.height, BABYLON.Matrix.Identity(), camera.getViewMatrix(), camera.getProjectionMatrix());
}
function worldToScreen(point, camera, scene,engine) {
return BABYLON.Vector3.Project(point,
BABYLON.Matrix.Identity(),
scene.getTransformMatrix(),
camera.viewport.toGlobal(engine.getRenderWidth(), engine.getRenderHeight()));
}
方法调用
//位置一定是模型的相对空间位置
carScene.registerBeforeRender(function () {
if(carScene.meshes[37]){
var pos = worldToScreen(carScene.meshes[37].absolutePosition,
carScene.activeCamera,carScene,carEngine);
$('#qundban').removeClass('hide').css({
'top': pos.y + 'px',
'left': pos.x + 'px'
});
}
})