请解释three.js Raycaster方向参数

弗雷德里克·柏林

我试图从在Three.js场景中布置的网格中获取碰撞检测。我对Raycaster reallu的工作方式以及正确的方法感到困惑。

这是描述我有什么问题的小提琴

//Add cuba at 40/40
geometry = new THREE.CubeGeometry(20, 20, 20);
material = new THREE.MeshNormalMaterial();
mesh = new THREE.Mesh(geometry, material);
mesh.position.setY(40)
scene.add(mesh);


//Add Ray    
var origin = new THREE.Vector3(50, 0, 0),
    direction = new THREE.Vector3(-1,0,0),
    ray = new THREE.Raycaster(origin, direction),
    collisionResults = ray.intersectObjects([mesh]);
if(collisionResults.length!==0){
   alert('Ray collides with mesh. Distance :' + collisionResults[0].distance)
}

//Add Arrow to show ray
scene.add( new THREE.ArrowHelper(direction, origin, 50, 0x000000));

无法正常使用: http //jsfiddle.net/FredricBerling/LwfPL/1/

工作: http //jsfiddle.net/FredricBerling/LwfPL/3/

基本上,小提琴会摆出一个立方体,然后以50点的形式向“方向”发出光线。问题似乎在于,即使它不应该声明“命中”。

我布置了一个Arrowhelper,以显示我怀疑Raycaster会在哪里发射射线。

从其他测试看来,Raycaster中的方向似乎与Arrowhelper中的方向不同。Raycaster似乎将射线射入场景的0,0,0。我很迷惑

编辑!。罗布给出了答案。我需要确保已渲染网格,以便应用世界矩阵。Fiddle已更新为可正确测试Raycaster的正确代码。

罗布·琼脂

您看到的明显的误报是由于这样的事实,即使您已经设置了盒子的位置,也尚未更新其世界变换矩阵。这通常仅在渲染之前发生。

如果将光线投射测试移至第一个渲染之后(或updateWorld()手动调用),则不会受到打击。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在three.js中向raycaster方向绘制线

来自分类Dev

Three.js raycaster交集

来自分类Dev

Three.js不准确的Raycaster

来自分类Dev

容器中的three.js raycaster

来自分类Dev

php __construct() - 请解释参数的含义

来自分类Dev

请解释函数调用中的 javascript: 参数

来自分类Dev

请解释react js中给定代码片段的含义

来自分类Dev

Three.js invisible plane not working with raycaster.intersectObject

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

Three.js使用Raycaster更改网格面颜色

来自分类Dev

从对象移开后,Three.js raycaster不会击中对象

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

请解释我的汇编Shellcode缺少的行。什么是EXECVE参数?

来自分类Dev

请解释xset中的参数“ noexpose”和“ cycle”

来自分类Dev

WebStorm错误:无法安装Node.js模块:请指定默认的Node.js解释器

来自分类Dev

three.js中旋转或惯用的方向

来自分类Dev

Three.js raycaster相交对象返回奇怪的脸法线

来自分类Dev

Three.js不可见平面不适用于raycaster.intersectObject

来自分类Dev

Raycaster对象未定义的鼠标悬停Three.js

来自分类Dev

使用raycaster突出显示一行网格three.js

来自分类Dev

Three.js raycaster 在我移动鼠标之前选择所有内容

来自分类Dev

请解释:在检查runSaga时未捕获,saga参数必须是Generator函数

来自分类Dev

用js和three.js动态改变参数

来自分类Dev

如何从JavaScript源设置Node.js解释器参数

来自分类Dev

three.js通过轴方向旋转对象

来自分类Dev

Three.js-旋转不遵守局部方向

来自分类Dev

Three.JS:获取沿方向向量的位置

来自分类Dev

Three.js-使用深度和方向向量的ExtrudeGeometry

来自分类Dev

在Three.js中访问VR耳机方向

Related 相关文章

热门标签

归档