使用下述代码之后meshss对象边缘没有发光,// 创建平面,并定义平面的尺寸 let planeGeometry2 = new THREE.PlaneGeometry(60, 20); //创建一个基本材质,并设置颜色 let planeMaterial = new THREE.MeshBasicMaterial({color: 0xcccccc}); //把两个对象合并到Mesh网格对象 let plane = new THREE.Mesh(planeGeometry2, planeMaterial); const meshss = new THREE.Mesh(planeGeometry2, planeMaterial); // 设置平面绕x轴旋转90度 meshss.rotation.x = -0.5 * Math.PI; // 设置平面的坐标位置 meshss.position.x = 0; meshss.position.y = 5; meshss.position.z = 0; // 将平面添加进场景 this.scene.add(meshss); composer = new EffectComposer(this.renderer); // 特效组件 renderPass = new RenderPass(this.scene, this.camera); composer.addPass(renderPass); // 特效渲染 outlinePass = new OutlinePass(new THREE.Vector2(window.innerWidth, window.innerHeight), this.scene, this.camera); composer.addPass(outlinePass); // 加入高光特效 outlinePass.pulsePeriod = 2; //数值越大,律动越慢 outlinePass.visibleEdgeColor.set(0xff0000); // 高光颜色 outlinePass.hiddenEdgeColor.set(0x000000);// 阴影颜色 outlinePass.usePatternTexture = false; // 使用纹理覆盖? outlinePass.edgeStrength = 5; // 高光边缘强度 outlinePass.edgeGlow = 1; // 边缘微光强度 outlinePass.edgeThickness = 1; // 高光厚度 console.log("outline!!!!!!!!!!!!") outlinePass.selectedObjects = meshss; // 需要高光的obj
时间: 2024-04-26 22:21:55 浏览: 164
在你的代码中,你创建了一个名为`meshss`的Mesh对象,并将其传递给了`OutlinePass`的`selectedObjects`属性,以指定需要添加轮廓线的对象。然而,你也创建了一个名为`plane`的另一个Mesh对象,但没有将其添加到`selectedObjects`列表中,因此它没有被轮廓线所包围,也就无法看到发光的效果。
如果你想让`plane`对象也发光,需要将其添加到`selectedObjects`列表中,像这样:
```javascript
outlinePass.selectedObjects = [meshss, plane]; // 需要高光的obj列表,可以添加多个
```
在这个示例中,我们将`meshss`和`plane`对象都添加到`selectedObjects`列表中,这样它们就都会被轮廓线所包围,并产生发光的效果。
阅读全文