我想在管道几何图形的一部分(背面)中放置贴花。

我的方法是使用TubeGeometry作为贴花几何。

这就是我所拥有的:
javascript - three.js-管段上的TubeGeometry + DecalGeometry-LMLPHP

这就是我想要的:
javascript - three.js-管段上的TubeGeometry + DecalGeometry-LMLPHP
(画图不好)

样例代码:

//code
var tube = new THREE.TubeGeometry(pipelineSpline, 200, 20, 20, closed2);

tubeMesh = THREE.SceneUtils.createMultiMaterialObject(
       geometry, [
            material,       // a phong material
            materialInside // a material for the inside
       ]);

scene.add(tubeMesh);

var decalGeometry = new THREE.DecalGeometry(
      tubeMesh.children[0],
      new THREE.Vector3(0,0,0),      //position
      new THREE.Vector3(0,1,0),      //direction
      new THREE.Vector3(10,10,10),   //dimensions
      new THREE.Vector3(0,0,0)       //check
    );

但是,这似乎在所有背面几何路径上应用了贴花管。我只希望它在关键位置的电子管背面的一部分上。

如何使用THREE.DecalGeometry在TubeGeometry中制作局部贴花?是否可以?

最佳答案

您将需要为此使用ShaderMaterial,并在着色器代码以及THREE.js传递给它的各种uniform(例如,新纹理)和parameter(例如,UV)值中定义定位和不透明度规则。

09-07 12:32