Javascript Three.js形状材质纹理显示错误
我在Three.js中是新手,在Shape对象上使用图像纹理时遇到了一个问题。以下是我的功能:Javascript Three.js形状材质纹理显示错误,javascript,three.js,textures,Javascript,Three.js,Textures,我在Three.js中是新手,在Shape对象上使用图像纹理时遇到了一个问题。以下是我的功能: function addShape( shape, extrudeSettings, color, x, y, z, rx, ry, rz, s ) { // 3d shape var geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings ); //var mesh = THREE.
function addShape( shape, extrudeSettings, color, x, y, z, rx, ry, rz, s ) {
// 3d shape
var geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
//var mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ new THREE.MeshLambertMaterial( { map: OBJECT3D.tableLegTexture, ambient: color, shading: THREE.FlatShading } ) ] );
var mesh_mat = new THREE.MeshLambertMaterial( { map: OBJECT3D.tableLegTexture,ambient: 0x999999 } );
mesh = new THREE.Mesh(geometry, mesh_mat);
mesh.position.set( x, y, z );
mesh.rotation.set( rx, ry, rz );
//mesh.scale.set( s, s, s );
group.add( mesh );
}
function createBein(position) {
group = new THREE.Object3D();
group.position.y = 50;
if (position == "right") {
var circleRadius = 400;
var circleShape = new THREE.Shape();
circleShape.moveTo( 0, circleRadius );
circleShape.quadraticCurveTo( 40, circleRadius, 40, 0 );
circleShape.quadraticCurveTo( 40, -circleRadius, 0, -circleRadius );
circleShape.quadraticCurveTo( -40, -circleRadius, -40, 0 );
circleShape.quadraticCurveTo( -40, circleRadius, 0, circleRadius );
var extrudeSettings = { amount: OBJECT3D.heightTable };
extrudeSettings.bevelEnabled = false;
extrudeSettings.bevelSegments = 2;
extrudeSettings.steps = 1;
x_pos = 0;
y_pos = OBJECT3D.heightTable;
z_pos = 40-Math.round(OBJECT3D.lengthTableTop/2)+300;
rot_x = Math.PI/2;
rot_y = 0;
rot_z = Math.PI/2;
var result = addShape( circleShape, extrudeSettings, 0x999999, x_pos, y_pos, z_pos, rot_x, rot_y, rot_z, 1 ); // addShape( shape, extrudeSettings, color, x, y, z, rx, ry, rz, s )
return result;
}
}
在这里你可以看到结果:
桌腿的纹理应该看起来像桌面的纹理。
有人知道我如何解决这个纹理问题吗 看看这些是否有帮助。谢谢韦斯特兰利的回答。是的,我已经看过这篇文章了,但我不确定这是否应该和如何与紫外线一起工作。你有一个基本的方法给我吗?你需要了解UV是如何工作的,如果你还不了解它们,然后适当地设置UV。另一种方法是使用Blender或Clara.io等建模工具,将模型导入three.js。js主要是一个渲染引擎,而不是一个建模工具。。。如果你想创建一个活生生的例子,我会看一看。非常感谢韦斯特兰利!我会用紫外线试一试!:)