【问题标题】:How to prevent getting background colored when using raycaster?使用raycaster时如何防止背景着色?
【发布时间】:2017-05-22 06:49:43
【问题描述】:

我正在用地面、天空和一些物体做简单的三个 js 场景。当鼠标悬停时,一些对象应该被涂成红色,但不是全部。我让它的工作方式是把我接触到的所有东西都染成红色,但我该如何防止这种情况,只画我想画的物体?例如,不是地面、天空或房屋,而是只有汽车。

我应该为这条线做些什么吗?

var intersects = raycaster.intersectObjects( scene.children );

剩下的就是:

for ( i = 0; i < intersects.length; i++ ) {
                intersects[ i ].object.material.color.set( 0xff0000 );
                }

我不会在此处添加更多代码,但它非常简单,我敢打赌你明白我在做什么。基于threejs.org 的示例制作的基本几何材料和光线投射器。

【问题讨论】:

    标签: javascript three.js raycasting


    【解决方案1】:

    如果您想针对场景对象的子集进行光线投射,请遵循以下模式:

    var objects = [];
    
    ...
    
    objects.push( mesh1 );
    objects.push( mesh2 );
    
    ...
    
    var intersects = raycaster.intersectObjects( objects, true );
    

    three.js r.83

    【讨论】:

      猜你喜欢
      • 2016-10-04
      • 2019-10-03
      • 2022-09-27
      • 1970-01-01
      • 2012-08-20
      • 2021-07-20
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      相关资源
      最近更新 更多