挤压样条曲线(THREE.SceneUtils.createMultiMaterialObject)不响应Three.Ray

时间:2012-10-01 14:13:13

标签: three.js

我有一个页面使用extruded spline examplemouse tooltip example中的元素。在继续之前尝试调试此项目的起始元素。鼠标工具提示正在处理除挤出样条线之外的各种对象。

使用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代码与上面链接的示例相同。我也尝试将样条曲线添加到父级,但仍然没有更改onMouseOver。本周晚些时候,我可能会转换到ThreeX DOM事件和Tween:D

迷你问题可能是单独的问题:

  • 在飞机上目睹Ray链接的OnMouseOver事件中的一些不准确之处。也可能是我使用了很长的距离?飞机是1000x1000,相机是2000px。我知道这很荒谬,而且我正在修理它。

感谢收听!

1 个答案:

答案 0 :(得分:0)

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

var intersects = ray.intersectObjects( scene.children, true );