0

我有一个工作正常的代码,但是当我启用 WebGL 时它停止工作。一般来说,我有一个函数可以在每帧速率调整我的对象大小。

function animate(){

     window.requestAnimationFrame(animate);
     s.setPosition(s.x - 1, s.y - 1, 0);
}

s.prototype.setPosition = function(x, y, z) {

this.x = x; 
this.y = y; 
this.z = z; 

this.squareMesh.geometry.vertices[0].set( x,  y, z);
this.squareMesh.geometry.vertices[1].set( x + this.w - 1, y, z);
this.squareMesh.geometry.vertices[2].set( x + this.w - 1, y - this.h + 1, z);
this.squareMesh.geometry.vertices[3].set( x,  y -  this.h + 1, z);
 }

这工作正常,直到我启用 WebGl。启用后,对象没有任何反应,似乎值没有更新。

当我使用内置功能时

obj.position.x = s.x +1有用。

但这会导致其他问题,例如每个对象的 0 0 0 位置。我在这里指的是那个问题:Three.js, WebGl Object position

4

1 回答 1

0

https://github.com/mrdoob/three.js/wiki/Updates

这应该告诉 Three.js 顶点已更改并且需要刷新:

this.squareMesh.geometry.verticesNeedUpdate = true;

于 2013-07-05T00:18:31.763 回答