Uso una función para asignar UV con three.js y funcionó muy bien en la revisión r.103. Desafortunadamente, no puedo lograr que funcione en r.133
Aquí está mi función:
assignUVs(geometry) { geometry.faceVertexUvs[0] = []; geometry.faces.forEach(function(face) { var components = ['x', 'y', 'z'].sort(function(a, b) { return Math.abs(face.normal[a]) > Math.abs(face.normal[b]); }); var v1 = geometry.vertices[face.a]; var v2 = geometry.vertices[face.b]; var v3 = geometry.vertices[face.c]; geometry.faceVertexUvs[0].push([ new THREE.Vector2(v1[components[0]], v1[components[1]]), new THREE.Vector2(v2[components[0]], v2[components[1]]), new THREE.Vector2(v3[components[0]], v3[components[1]]) ]); }); geometry.uvsNeedUpdate = true; } Tengo el siguiente error Cannot set properties of undefined (setting '0') relacionadas con esta línea de código: geometry.faceVertexUvs[0] = []
Traté de convertir mi Geometría en una BufferGeometry (usando BufferGeometryUtils.mergeVertices ) pero no cambió nada. Es como si el atributo faceVertexUvs ya no existiera.
Aquí hay un codepen con mi código: https://codepen.io/michaelgrc/pen/ExvbMWP
¿Alguien sabe lo que me estoy perdiendo? Muchas gracias