如何在三个js中在子网格上添加轮廓

1 javascript 3d three.js

我想为网格添加轮廓。我遵循了使用相同几何体创建新网格的示例,并缩放了网格。

    var outlineMaterial = new THREE.MeshBasicMaterial({color: 0x00ffff, side: THREE.BackSide});
    this.outlineMesh = new THREE.Mesh(target.geometry, outlineMaterial);
    this.outlineMesh.quaternion = target.quaternion;
    this.outlineMesh.position = target.position;
    this.outlineMesh.scale.copy(target.scale);
    this.outlineMesh.scale.multiplyScalar(1.05);
    this.scene.add(this.outlineMesh);
Run Code Online (Sandbox Code Playgroud)

它工作正常,outlineMesh 的位置始终与目标网格相同。但是,当我将目标网格作为子网格添加到其他网格时,outlineMesh 的位置与目标网格不同。我以为是因为目标位置和parent的坐标有关,但是outlineMesh还是在世界坐标中。

知道如何为子网格制作轮廓吗?非常感谢!

Wes*_*ley 5

只需添加outlineMesh作为目标的孩子mesh,像这样:

var outlineMaterial = new THREE.MeshBasicMaterial( { color: 0x00ffff, side: THREE.BackSide } );
outlineMesh = new THREE.Mesh( geometry, outlineMaterial );
outlineMesh.scale.multiplyScalar( 1.05 );
mesh.add( outlineMesh );
Run Code Online (Sandbox Code Playgroud)

三.js r.67