2013-07-19 19 views
2

我有矩形几何形状(宽×高尺寸)和质地(2×宽×高),我需要显示只有一半的是:如何随时更改纹理UVMapping?

... 
    var pageGeometry = new THREE.PlaneGeometry(pageWidth, pageHeight, 1, 1); 
     var texture = someTexture; 
     pageGeometry.faceVertexUvs[0] = []; 
     pageGeometry.faceVertexUvs[0].push([ 
      new THREE.Vector2(0.5, 1), 
      new THREE.Vector2(0.5, 0), 
      new THREE.Vector2(1, 0), 
      new THREE.Vector2(1, 1)]); 

     var page = new THREE.Mesh(
      pageGeometry, 
      new THREE.MeshLambertMaterial({ 
       color: options.background, 
       map: texture 
      }) 
     ); 

它的工作原理,但亚特有的旋转(90度)我需要更改纹理偏移量:

page.geometry.faceVertexUvs[0] = []; 
    page.geometry.faceVertexUvs[0].push([ 
     new THREE.Vector2(0, 1), 
     new THREE.Vector2(0, 0), 
     new THREE.Vector2(0.5, 0), 
     new THREE.Vector2(0.5, 1)]); 
    page.material = new THREE.MeshLambertMaterial({ 
     color: options.background, 
     map: textureNext 
    }); 

但它不起作用,偏移量保持不变。

回答

4

你有没有尝试过这样的: https://github.com/mrdoob/three.js/wiki/Updates

即: geometry.uvsNeedUpdate = true;

希望这有助于但无论也许不是在源代码中的作品,你会肯定需要更换UV后设置此更新标志 - 我认为,下属。

+0

谢谢你,它的工作原理! –