Parcourir la source

Simplified and optimised kinect example.

Mr.doob il y a 11 ans
Parent
commit
ab85ef9849
1 fichiers modifiés avec 12 ajouts et 11 suppressions
  1. 12 11
      examples/webgl_kinect.html

+ 12 - 11
examples/webgl_kinect.html

@@ -92,7 +92,7 @@
 			void main() {
 
 				vec4 color = texture2D( map, vUv );
-				gl_FragColor = vec4( color.r, color.g, color.b, smoothstep( 8000.0, -8000.0, gl_FragCoord.z / gl_FragCoord.w ) );
+				gl_FragColor = vec4( color.r, color.g, color.b, 0.2 );
 
 			}
 
@@ -146,22 +146,24 @@
 				video.addEventListener( 'loadedmetadata', function ( event ) {
 
 					texture = new THREE.Texture( video );
-
+					texture.generateMipmaps = false;
+					
 					var width = 640, height = 480;
 					var nearClipping = 850, farClipping = 4000;
 
-					geometry = new THREE.Geometry();
+					geometry = new THREE.BufferGeometry();
 
-					for ( var i = 0, l = width * height; i < l; i ++ ) {
+					var vertices = new Float32Array( width * height * 3 );
 
-						var vertex = new THREE.Vector3();
-						vertex.x = ( i % width );
-						vertex.y = Math.floor( i / width );
+					for ( var i = 0, j = 0, l = vertices.length; i < l; i += 3, j ++ ) {
 
-						geometry.vertices.push( vertex );
+						vertices[ i ] = j % width;
+						vertices[ i + 1 ] = Math.floor( j / width );
 
 					}
 
+					geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+
 					material = new THREE.ShaderMaterial( {
 
 						uniforms: {
@@ -178,14 +180,13 @@
 						},
 						vertexShader: document.getElementById( 'vs' ).textContent,
 						fragmentShader: document.getElementById( 'fs' ).textContent,
+						blending: THREE.AdditiveBlending,
 						depthTest: false, depthWrite: false,
 						transparent: true
 
 					} );
 
-					mesh = new THREE.ParticleSystem( geometry, material );
-					mesh.position.x = 0;
-					mesh.position.y = 0;
+					mesh = new THREE.PointCloud( geometry, material );
 					scene.add( mesh );
 
 					setInterval( function () {