相关疑难解决方法(0)

three.js - 检查对象是否仍然在相机视野中

使用2D画布时,如果要检查某些内容是否不再"在屏幕上",您只需执行以下操作:

if( pos.x > window.innerWidth || pos.x < 0 ||
    pos.y > window.innerHeight || pos.y < 0 ) {
    // has left the screen
}
Run Code Online (Sandbox Code Playgroud)

我如何在three.js场景中检查某些内容是否仍在"屏幕上"(在相机视图中)?

javascript camera fieldofview three.js

6
推荐指数
2
解决办法
2468
查看次数

ThreeJS:如何检测对象是否呈现/可见

如何尽可能快地检测到相机的眼睛是否可以看到 Threejs 对象?该obj.visible属性是二传,所以没有用的。此外frustumCullum还不够,因为它仅指示对象是否在相机视口之外。我需要知道一个物体是否隐藏在另一个更大的物体后面。

有人有想法吗?

干杯

马库斯

three.js

4
推荐指数
1
解决办法
5079
查看次数

Three.js - 如何检查对象是否在球体后面(不可见)

我有一个球体(球体),表面上有物体(针脚),DOM元素(标签)是从针位置到2d世界的计算结果.

我的问题是,当引脚位于地球后面时(使用鼠标拖动或动画),我需要隐藏DOM中的标签,以便在没有引脚的情况下看不到文本标签.

我的逻辑是,如果我能得到3D世界中的引脚告诉我它是否在地球后面,那么我可以隐藏与引脚相关的标签.

Codepen与整个代码.

我一起研究的功能:

function checkPinVisibility() {

    var startPoint = camera.position.clone();

    for (var i = 0; i < pins.length; i++) {

        var direction = pins[i].position.clone();
        var directionVector = direction.sub(startPoint);

        raycaster.set(startPoint, directionVector.clone().normalize());

        var intersects = raycaster.intersectObject(pins[i]);

        if (intersects.length > 0) {
            // ?
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我已经通过很多帖子进行了研究,但无法真正得到所需的结果:

我已经通过鼠标XY位置作为光线工作,但是无法真正获得所有引脚的恒定渲染的工作解决方案.

javascript three.js

2
推荐指数
1
解决办法
1680
查看次数

标签 统计

three.js ×3

javascript ×2

camera ×1

fieldofview ×1