Javascript ThreeJS在挤出计量法的部分侧壁上应用纹理,无需重复包装
我想在拉伸几何体的曲面上使用纹理。实际上,我会在拉伸几何体的一面墙上放置一个图像 更精确地说,该几何体是右圆柱的1/8,顶面是一个圆段,侧面由两个矩形和1/8的圆柱弯曲形状外表面组成 现在,我遇到了两个问题: 1) 纹理将应用于几何体的所有曲面,如何仅在曲线形状曲面上应用纹理Javascript ThreeJS在挤出计量法的部分侧壁上应用纹理,无需重复包装,javascript,three.js,Javascript,Three.js,我想在拉伸几何体的曲面上使用纹理。实际上,我会在拉伸几何体的一面墙上放置一个图像 更精确地说,该几何体是右圆柱的1/8,顶面是一个圆段,侧面由两个矩形和1/8的圆柱弯曲形状外表面组成 现在,我遇到了两个问题: 1) 纹理将应用于几何体的所有曲面,如何仅在曲线形状曲面上应用纹理 // geometry var settings = { amount: 12, steps : 1, bevelEnabled: false, curveSeg
// 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 );
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的曲面
如有任何意见,将不胜感激
谢谢这就是你想要的吗?你必须添加一个单独的拉伸三角形来完成几何体。嗨,WestLangley,它非常封闭,但仍然不是我想要的。我只想在曲线区域的前表面上放置一个图像。现在,我再次更新代码,而不是使用画布,现在我从internet加载了一个图像,但我未能在表面上绘制此图像。我更新链接这是你想要的吗?你必须添加一个单独的拉伸三角形来完成几何体。嗨,WestLangley,它非常封闭,但仍然不是我想要的。我只想在曲线区域的前表面上放置一个图像。现在,我再次更新代码,而不是使用画布,现在我从internet加载了一个图像,但我未能在表面上绘制此图像。我更新链接