0

我有一个使用挤压样条示例鼠标工具提示示例中的元素的页面。在继续之前尝试调试此项目的起始元素。鼠标工具提示正在处理各种对象,但拉伸样条线除外。

使用 webGL 渲染器,如果这很重要的话。

样条创建代码(不包括 Vector3 线或圆形拉伸):

function addGeometry( geometry, color, x, y, z, rx, ry, rz, s, name ) {
    var mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [
        new THREE.MeshLambertMaterial( { color: color } )
    ] );
    mesh.position.set( x, y, z );
    mesh.scale.set( s, s, s );
    mesh.name = name;
    scene.add( mesh );
}

update() 中的 intersect/Three.Ray 代码与上面链接的示例相同。我还尝试将样条线添加到父级,但鼠标悬停仍然没有变化。本周晚些时候,我可能会过渡到 ThreeX DOM 事件和 Tween :D

可能是单独问题的小问题:

  • 见证了飞机上与 Ray 相关的 OnMouseOver 事件的一些不准确性。这也可能是我使用大距离的事实?平面为 1000x1000,相机距离为 2000 像素。我知道这很荒谬,我也在解决这个问题。

谢谢收听!

4

1 回答 1

0

由于您只提供了代码片段,因此猜测如下:由于多材质对象是分层的,因此您需要将递归标志设置ray.intersectObjects()为 true,如下所示:

var intersects = ray.intersectObjects( scene.children, true );
于 2012-10-01T22:11:56.297 回答