我想在管道几何图形的一部分(背面)中放置贴花。
我的方法是使用TubeGeometry作为贴花几何。
这就是我所拥有的:
这就是我想要的:
(画图不好)
样例代码:
//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)值中定义定位和不透明度规则。