Browse Source

Fixed ribbons example.

alteredq 14 năm trước cách đây
mục cha
commit
ab8b63f9e3
1 tập tin đã thay đổi với 28 bổ sung4 xóa
  1. 28 4
      examples/webgl_ribbons.html

+ 28 - 4
examples/webgl_ribbons.html

@@ -113,6 +113,9 @@
 
 				}
 
+				var tmpRot = new THREE.Matrix4();
+				tmpRot.setRotAxis( new THREE.Vector3( 1, 0, 0 ), 1.57 );
+				
 				var material_base = new THREE.MeshBasicMaterial( { color:0xffffff, vertex_colors:true } );
 
 				renderer.initMaterial( material_base, scene.lights, scene.fog );
@@ -130,9 +133,9 @@
 					materials[c].uniforms = Uniforms.clone( THREE.ShaderLib[ 'basic' ].uniforms );
 
 					ribbon = new THREE.Ribbon( i % 2 ? geometry : geometry2, materials[c] );
-					ribbon.rotation.x = 1.57;
+					ribbon.rotation.x = 0;
 					ribbon.rotation.y = 1.57;
-					ribbon.rotation.z = -3.14;
+					ribbon.rotation.z = 3.14;	
 
 					x = 40 * ( i - xgrid/2 );
 					y = 40 * ( j - ygrid/2 );
@@ -143,7 +146,28 @@
 
 					ribbon.doubleSided = true;
 					ribbon.matrixAutoUpdate = false;
-					ribbon.updateMatrix();
+
+					// manually create local matrix
+					
+					ribbon.localMatrix.setPosition( ribbon.position );
+					ribbon.matrixRotation.setRotationFromEuler( ribbon.rotation );
+
+					ribbon.localMatrix.n11 = ribbon.matrixRotation.n11;
+					ribbon.localMatrix.n12 = ribbon.matrixRotation.n12;
+					ribbon.localMatrix.n13 = ribbon.matrixRotation.n13;
+
+					ribbon.localMatrix.n21 = ribbon.matrixRotation.n21;
+					ribbon.localMatrix.n22 = ribbon.matrixRotation.n22;
+					ribbon.localMatrix.n23 = ribbon.matrixRotation.n23;
+
+					ribbon.localMatrix.n31 = ribbon.matrixRotation.n31;
+					ribbon.localMatrix.n32 = ribbon.matrixRotation.n32;
+					ribbon.localMatrix.n33 = ribbon.matrixRotation.n33;
+					
+					ribbon.localMatrix.multiplySelf( tmpRot );
+
+					ribbon.localMatrix.scale( ribbon.scale );
+					ribbon.boundRadiusScale = Math.max( ribbon.scale.x, Math.max( ribbon.scale.y, ribbon.scale.z ) );
 
 					ribbons.push( ribbon );
 					scene.addObject( ribbon );
@@ -224,7 +248,7 @@
 					uniforms: screen_uniforms,
 					vertex_shader: screen_shader.vertex_shader,
 					fragment_shader: screen_shader.fragment_shader,
-						blending: THREE.AdditiveBlending
+					blending: THREE.AdditiveBlending
 
 				} );