Javascript 三柱面纹理畸变
将纹理应用于三个JS中的圆柱体几何体会导致纹理出现一些奇怪的变形,如下图所示: 形状是这样创建的:Javascript 三柱面纹理畸变,javascript,three.js,Javascript,Three.js,将纹理应用于三个JS中的圆柱体几何体会导致纹理出现一些奇怪的变形,如下图所示: 形状是这样创建的: var cylinderGeo = new THREE.CylinderGeometry(0.1, 1, 1, 4, 1, false, Math.PI / 4); cylinderGeo.computeFlatVertexNormals(); var mesh = new THREE.Mesh(cylinderGeo); mesh.position.x = 10; mesh.scale.set
var cylinderGeo = new THREE.CylinderGeometry(0.1, 1, 1, 4, 1, false, Math.PI / 4);
cylinderGeo.computeFlatVertexNormals();
var mesh = new THREE.Mesh(cylinderGeo);
mesh.position.x = 10;
mesh.scale.set(10, 5, 10);
mesh.material = new THREE.MeshLambertMaterial();
// LOAD TEXTURE:
textureLoader.load("/textures/" + src + ".png", function (texture) {
texture.wrapS = THREE.RepeatWrapping;
texture.wrapT = THREE.RepeatWrapping;
texture.repeat.set(2,2);
texture.needsUpdate = true;
mesh.material.map = texture;
mesh.material.needsUpdate = true;
});
纹理似乎应用于每个多边形,而不是每个面?我怎样才能使它在没有任何此类瑕疵的情况下环绕圆柱体
编辑:纹理为256x256棱锥体的每一侧由两个三角形组成。您可以在上的示例中非常清楚地看到这一点 每个三角形都有UV,这些UV是基于两个三角形具有相同比例的假设创建的,如示例中所示。通过缩小圆柱体的一端,可以更改三角形的比例,但UV保持不变 可以编辑UV以弥补差异,也可以(我建议)使用定义的正确UV创建自己的几何体