应用场景:用于标记显示物体属性,如将一个三维坐标动态赋予给div标签。
借鉴threejs原理https://blog.csdn.net/qq_4174...
api文档
https://doc.babylonjs.com/api...
借鉴案例
https://www.babylonjs-playgro...

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

陌然浅笑
25 声望3 粉丝

坚持自律


« 上一篇
babylonjs 相机
下一篇 »
4 babylonjs 动画