Three.js:设置BoxGeometry的UV

Three.js:设置BoxGeometry的UV,three.js,uv-mapping,Three.js,Uv Mapping,我想知道是否可以将长方体几何体的UV贴图更改为“展开”,如下所示: 默认情况下,所有面上的投影都是相同的,这在我看来是非常有限的。或者,您可以推荐另一种方法来使用three.js几何体并在其面上使用不同的投影吗 谢谢我找到了一个有用的教程来回答我的问题: 以下是帮助我的代码: var face1 = [ new THREE.Vector2(0, .666), new THREE.Vector2(.5, .666), new THREE.Vector2(.5, 1), new THREE.Ve

我想知道是否可以将长方体几何体的UV贴图更改为“展开”,如下所示:

默认情况下,所有面上的投影都是相同的,这在我看来是非常有限的。或者,您可以推荐另一种方法来使用three.js几何体并在其面上使用不同的投影吗


谢谢

我找到了一个有用的教程来回答我的问题:

以下是帮助我的代码:

var face1 = [
new THREE.Vector2(0, .666),
new THREE.Vector2(.5, .666),
new THREE.Vector2(.5, 1),
new THREE.Vector2(0, 1)];

var face2 = [
new THREE.Vector2(.5, .666),
new THREE.Vector2(1, .666),
new THREE.Vector2(1, 1),
new THREE.Vector2(.5, 1)];

var face3 = [
new THREE.Vector2(0, .333),
new THREE.Vector2(.5, .333),
new THREE.Vector2(.5, .666),
new THREE.Vector2(0, .666)];

var face4 = [
new THREE.Vector2(.5, .333),
new THREE.Vector2(1, .333),
new THREE.Vector2(1, .666),
new THREE.Vector2(.5, .666)];

var face5 = [
new THREE.Vector2(0, 0),
new THREE.Vector2(.5, 0),
new THREE.Vector2(.5, .333),
new THREE.Vector2(0, .333)];

var face6 = [
new THREE.Vector2(.5, 0),
new THREE.Vector2(1, 0),
new THREE.Vector2(1, .333),
new THREE.Vector2(.5, .333)];
然后,我们将这些向量指定给我们创建的BoxGeometry中的faceVertex坐标

geometry.faceVertexUvs[0][0] = [ face1[0], face1[1], face1[3] ];
geometry.faceVertexUvs[0][1] = [ face1[1], face1[2], face1[3] ];

geometry.faceVertexUvs[0][2] = [ face2[0], face2[1], face2[3] ];
geometry.faceVertexUvs[0][3] = [ face2[1], face2[2], face2[3] ];

geometry.faceVertexUvs[0][4] = [ face3[0], face3[1], face3[3] ];
geometry.faceVertexUvs[0][5] = [ face3[1], face3[2], face3[3] ];

geometry.faceVertexUvs[0][6] = [ face4[0], face4[1], face4[3] ];
geometry.faceVertexUvs[0][7] = [ face4[1], face4[2], face4[3] ];

geometry.faceVertexUvs[0][8] = [ face5[0], face5[1], face5[3] ];
geometry.faceVertexUvs[0][9] = [ face5[1], face5[2], face5[3] ];

geometry.faceVertexUvs[0][10] = [ face6[0], face6[1], face6[3] ];
geometry.faceVertexUvs[0][11] = [ face6[1], face6[2], face6[3] ];

您是否尝试过编辑UV()的列表?你有什么错误吗?你能分享你的代码吗?