gpt4 book ai didi

javascript - Three.js raycaster 仅与形状的指定部分相交

转载 作者:行者123 更新时间:2023-12-02 16:54:05 25 4
gpt4 key购买 nike

我需要使用光线转换器仅与几何体的顶点而不是与所有几何体形状获得交集。我编写了这段代码,但如果我单击设置的顶点,则不会发生任何事情。

         function onDocumentMouseClick(event) {

event.preventDefault();

mouse2D.x = (event.clientX / window.innerWidth) * 2 - 1;
mouse2D.y = -(event.clientY / window.innerHeight) * 2 + 1;

raycaster = projector.pickingRay(mouse2D.clone(), camera);

var intersects = raycaster.intersectObjects(objects[0].geometry.vertices[0]);// I want intersection only with vertices

if (intersects.length > 0) {

console.log("ok");}

最佳答案

首先,您需要将对象数组传递给 raycaster.intersectObjects,如 pixelmike 所建议:

var intersects = raycaster.intersectObjects([objects[0]])

您无法获取交叉点本身的顶点,但可以获取每个交叉点的:

for ( var i = 0; i < intersects.length; i++ ) {
if ( intersect.face == myTargetFace ) {
console.log( "ok" );
}
}

如果您确实希望特定对象仅检查与特定面子集的交集,则可以覆盖该对象的 raycast 方法(如 https://github.com/mrdoob/three.js/blob/master/src/objects/Mesh.js#L56-L340 )以仅搜索这些面.

三.js r68

关于javascript - Three.js raycaster 仅与形状的指定部分相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com