Javascript 使用UV映射在平面几何体上将纹理旋转45度
我正在尝试将旋转纹理映射到平面几何体上 基本上,我有一个44x44钻石纹理,看起来像这样: 我想使用UV将图像中的钻石映射到我的平面几何体上。使用Three.js可以做到这一点吗?本质上,将texel(0,22)映射到uv(0,0),将texel(22,0)映射到uv(1.0,0),等等 以下是我正在使用的代码:Javascript 使用UV映射在平面几何体上将纹理旋转45度,javascript,three.js,Javascript,Three.js,我正在尝试将旋转纹理映射到平面几何体上 基本上,我有一个44x44钻石纹理,看起来像这样: 我想使用UV将图像中的钻石映射到我的平面几何体上。使用Three.js可以做到这一点吗?本质上,将texel(0,22)映射到uv(0,0),将texel(22,0)映射到uv(1.0,0),等等 以下是我正在使用的代码: 可以修改几何体的UV,如下所示: geometry = new THREE.PlaneGeometry( 1, 1 ); geometry.faceVertexUvs[ 0 ][
可以修改几何体的UV,如下所示:
geometry = new THREE.PlaneGeometry( 1, 1 );
geometry.faceVertexUvs[ 0 ][ 0 ][ 0 ].set( 0.5, 1.0 );
geometry.faceVertexUvs[ 0 ][ 0 ][ 1 ].set( 0.0, 0.5 );
geometry.faceVertexUvs[ 0 ][ 0 ][ 2 ].set( 1.0, 0.5 );
geometry.faceVertexUvs[ 0 ][ 1 ][ 0 ].set( 0.0, 0.5 );
geometry.faceVertexUvs[ 0 ][ 1 ][ 1 ].set( 0.5, 0.0 );
geometry.faceVertexUvs[ 0 ][ 1 ][ 2 ].set( 1.0, 0.5 );
BufferGeometry
更有效。你不妨用它
geometry = new THREE.PlaneBufferGeometry( 1, 1 );
geometry.attributes.uv.setXY( 0, 0.5, 1.0 );
geometry.attributes.uv.setXY( 1, 1.0, 0.5 );
geometry.attributes.uv.setXY( 2, 0.0, 0.5 );
geometry.attributes.uv.setXY( 3, 0.5, 0.0 );
three.js r.83您可以修改几何体的UV,如下所示:
geometry = new THREE.PlaneGeometry( 1, 1 );
geometry.faceVertexUvs[ 0 ][ 0 ][ 0 ].set( 0.5, 1.0 );
geometry.faceVertexUvs[ 0 ][ 0 ][ 1 ].set( 0.0, 0.5 );
geometry.faceVertexUvs[ 0 ][ 0 ][ 2 ].set( 1.0, 0.5 );
geometry.faceVertexUvs[ 0 ][ 1 ][ 0 ].set( 0.0, 0.5 );
geometry.faceVertexUvs[ 0 ][ 1 ][ 1 ].set( 0.5, 0.0 );
geometry.faceVertexUvs[ 0 ][ 1 ][ 2 ].set( 1.0, 0.5 );
BufferGeometry
更有效。你不妨用它
geometry = new THREE.PlaneBufferGeometry( 1, 1 );
geometry.attributes.uv.setXY( 0, 0.5, 1.0 );
geometry.attributes.uv.setXY( 1, 1.0, 0.5 );
geometry.attributes.uv.setXY( 2, 0.0, 0.5 );
geometry.attributes.uv.setXY( 3, 0.5, 0.0 );
three.js r.83这就是你的意思吗?是的。你能回答这个问题吗?这就是你的意思吗?是的。你能把它写进一个答案吗?