From ab8b63f9e32b8d69dd265114bc9539837316ab50 Mon Sep 17 00:00:00 2001 From: alteredq Date: Sat, 26 Feb 2011 06:48:42 +0100 Subject: [PATCH] Fixed ribbons example. --- examples/webgl_ribbons.html | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/examples/webgl_ribbons.html b/examples/webgl_ribbons.html index 7df0764f41..b86549457b 100644 --- a/examples/webgl_ribbons.html +++ b/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 } ); -- GitLab