Created
May 15, 2014 00:57
-
-
Save miketahani/539c30b3c882a8a990bb to your computer and use it in GitHub Desktop.
assign UVs to a planar surface (three.js)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// via http://stackoverflow.com/questions/20774648/three-js-generate-uv-coordinate | |
var assignUVs = function( geometry ){ | |
geometry.computeBoundingBox(); | |
var max = geometry.boundingBox.max; | |
var min = geometry.boundingBox.min; | |
var offset = new THREE.Vector2(0 - min.x, 0 - min.y); | |
var range = new THREE.Vector2(max.x - min.x, max.y - min.y); | |
geometry.faceVertexUvs[0] = []; | |
var faces = geometry.faces; | |
for (i = 0; i < geometry.faces.length ; i++) { | |
var v1 = geometry.vertices[faces[i].a]; | |
var v2 = geometry.vertices[faces[i].b]; | |
var v3 = geometry.vertices[faces[i].c]; | |
geometry.faceVertexUvs[0].push([ | |
new THREE.Vector2( ( v1.x + offset.x ) / range.x , ( v1.y + offset.y ) / range.y ), | |
new THREE.Vector2( ( v2.x + offset.x ) / range.x , ( v2.y + offset.y ) / range.y ), | |
new THREE.Vector2( ( v3.x + offset.x ) / range.x , ( v3.y + offset.y ) / range.y ) | |
]); | |
} | |
geometry.uvsNeedUpdate = true; | |
return geometry; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment