我想在挤压几何体的表面上使用纹理。实际上,我会将图像放在挤压几何体的墙面的一个表面上。
更确切地说,这个几何形状是右圆柱的1/8,顶面是圆形段,侧面是两个矩形的复合体和1/8圆柱形曲面形状的外表面。
现在,我遇到了两个问题:
1)纹理将应用于几何体的所有表面,如何仅在曲面形状表面上应用纹理。
2)因为我将使用画布上的图像在其上绘制图像,然后将其用作此网格的纹理,我不希望图像重复,也许只是有点拉伸就好了。当然,我需要确保图像大小与曲面形状的大小非常相似。
// geometry
var settings = {
amount: 12,
steps : 1,
bevelEnabled: false,
curveSegments: 24
};
var shape = new THREE.Shape();
shape.moveTo( 0, 0 );
shape.absarc( 0, 0, 5, 0, Math.PI / 4, false );
shape.moveTo( 0, 0 );
var geometry = new THREE.ExtrudeGeometry( shape, settings );
var texture = new THREE.Texture(canvas);
//texture.wrapS = texture.wrapT = THREE.RepeatWrapping; // CHANGED
texture.needsUpdate = true;
var material = new THREE.MeshBasicMaterial({
color: 0x5588ff,
map: texture
});
mesh = THREE.SceneUtils.createMultiMaterialObject(geometry, [material,new THREE.MeshBasicMaterial({
color: 0x000000,
wireframe: true,
transparent: true
})]);
scene.add( mesh );
从演示链接中,您可以看到纹理已应用于所有曲面,实际上我只希望将该纹理应用于圆柱的1/8曲面上。
任何意见都将受到赞赏。
由于