Three.js 如何缩放/调整网格轮廓?

Three.js 如何缩放/调整网格轮廓?,three.js,Three.js,在我当前的项目中,我需要一种方法来勾勒网格的轮廓。这个颜色轮廓将代表对象的当前状态,与我相关。 问题在于它是一个自定义网格,使用JSONLoader加载。 我尝试了不同的方法,主要是以下两个例子:和 三倍,三倍。在这两种情况下,我都将网格轮廓缩放到比原始轮廓大一点的大小。我的主要问题是,在所有轴上均匀缩放不会像我预期的那样覆盖我的对象 以下是我正在使用的代码: var outlineMaterial2 = new THREE.MeshBasicMaterial( { color: 0x00ff

在我当前的项目中,我需要一种方法来勾勒网格的轮廓。这个颜色轮廓将代表对象的当前状态,与我相关。 问题在于它是一个自定义网格,使用JSONLoader加载。 我尝试了不同的方法,主要是以下两个例子:和 三倍,三倍。在这两种情况下,我都将网格轮廓缩放到比原始轮廓大一点的大小。我的主要问题是,在所有轴上均匀缩放不会像我预期的那样覆盖我的对象

以下是我正在使用的代码:

 var outlineMaterial2 = new THREE.MeshBasicMaterial( { color: 0x00ff00, side: THREE.BackSide, transparent: true, opacity:0.5 } );
                    var outlineMesh2 = new THREE.Mesh( object.geometry, outlineMaterial2 );
                    outlineMesh2.position.copy(object.position);
                    outlineMesh2.scale.copy(object.scale);              
                    outlineMesh2.scale.multiplyScalar(1.1)
                    scene.add( outlineMesh2 );
`

使用简单的立方体网格,轮廓会很好。 但是,对于我的自定义网格,比例将无法正确匹配形状。 这是一张图片,展示了:

此外,使用Stemkoski方法,轮廓网格也将显示在对象的前面,而不仅仅是轮廓(如上图所示)

我的问题是:如何调整网格大小?据我所知,这可能与脸部法线有关


谢谢您的时间。

要在后面渲染,您必须设置
侧面:三。背面
。但问题在于你使用的几何体,这种轮廓方式永远不会起作用。多想想,这只是逻辑。解决问题的唯一方法是创建着色器。谢谢提示。同一个着色器可以在不同的网格上使用并产生良好的效果吗?不幸的是,我对着色器一无所知,除非你这样做,或者有人可以为你编写一个着色器,否则你必须找到除大纲绘制之外的另一种方法。目前,我找到的唯一解决方案是:用透明彩色层覆盖对象;用原始网格的宽度、长度和高度制作标准长方体的轮廓。第二种选择没有多大吸引力。