提交 de4abeab 编写于 作者: W WestLangley

Convert to BufferGeometry

上级 e371fe25
......@@ -243,19 +243,23 @@ function simulate( time ) {
if ( wind ) {
var face, faces = clothGeometry.faces, normal;
var indx;
var normal = new THREE.Vector3();
var indices = clothGeometry.index;
var normals = clothGeometry.attributes.normal;
particles = cloth.particles;
for ( i = 0, il = faces.length; i < il; i ++ ) {
for ( i = 0, il = indices.count; i < il; i += 3 ) {
face = faces[ i ];
normal = face.normal;
for ( j = 0; j < 3; j ++ ) {
tmpForce.copy( normal ).normalize().multiplyScalar( normal.dot( windForce ) );
particles[ face.a ].addForce( tmpForce );
particles[ face.b ].addForce( tmpForce );
particles[ face.c ].addForce( tmpForce );
indx = indices.getX( i + j );
normal.fromBufferAttribute( normals, indx )
tmpForce.copy( normal ).normalize().multiplyScalar( normal.dot( windForce ) );
particles[ indx ].addForce( tmpForce );
}
}
......
......@@ -144,7 +144,7 @@
// cloth geometry
clothGeometry = new THREE.ParametricGeometry( clothFunction, cloth.w, cloth.h );
clothGeometry = new THREE.ParametricBufferGeometry( clothFunction, cloth.w, cloth.h );
// cloth mesh
......@@ -296,13 +296,14 @@
for ( var i = 0, il = p.length; i < il; i ++ ) {
clothGeometry.vertices[ i ].copy( p[ i ].position );
var v = p[ i ].position;
clothGeometry.attributes.position.setXYZ( i, v.x, v.y, v.z );
}
clothGeometry.verticesNeedUpdate = true;
clothGeometry.attributes.position.needsUpdate = true;
clothGeometry.computeFaceNormals();
clothGeometry.computeVertexNormals();
sphere.position.copy( ballPosition );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册