|
@@ -101,64 +101,61 @@
|
|
center.z = - 1000;
|
|
center.z = - 1000;
|
|
|
|
|
|
var video = document.getElementById( 'video' );
|
|
var video = document.getElementById( 'video' );
|
|
- video.addEventListener( 'loadedmetadata', function () {
|
|
|
|
|
|
|
|
- var texture = new THREE.VideoTexture( video );
|
|
|
|
- texture.minFilter = THREE.NearestFilter;
|
|
|
|
|
|
+ var texture = new THREE.VideoTexture( video );
|
|
|
|
+ texture.minFilter = THREE.NearestFilter;
|
|
|
|
|
|
- var width = 640, height = 480;
|
|
|
|
- var nearClipping = 850, farClipping = 4000;
|
|
|
|
|
|
+ var width = 640, height = 480;
|
|
|
|
+ var nearClipping = 850, farClipping = 4000;
|
|
|
|
|
|
- geometry = new THREE.BufferGeometry();
|
|
|
|
|
|
+ geometry = new THREE.BufferGeometry();
|
|
|
|
|
|
- var vertices = new Float32Array( width * height * 3 );
|
|
|
|
|
|
+ var vertices = new Float32Array( width * height * 3 );
|
|
|
|
|
|
- for ( var i = 0, j = 0, l = vertices.length; i < l; i += 3, j ++ ) {
|
|
|
|
|
|
+ for ( var i = 0, j = 0, l = vertices.length; i < l; i += 3, j ++ ) {
|
|
|
|
|
|
- vertices[ i ] = j % width;
|
|
|
|
- vertices[ i + 1 ] = Math.floor( j / width );
|
|
|
|
|
|
+ vertices[ i ] = j % width;
|
|
|
|
+ vertices[ i + 1 ] = Math.floor( j / width );
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
|
|
|
|
|
|
+ geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
|
|
|
|
|
|
- material = new THREE.ShaderMaterial( {
|
|
|
|
|
|
+ material = new THREE.ShaderMaterial( {
|
|
|
|
|
|
- uniforms: {
|
|
|
|
|
|
+ uniforms: {
|
|
|
|
|
|
- "map": { value: texture },
|
|
|
|
- "width": { value: width },
|
|
|
|
- "height": { value: height },
|
|
|
|
- "nearClipping": { value: nearClipping },
|
|
|
|
- "farClipping": { value: farClipping },
|
|
|
|
|
|
+ "map": { value: texture },
|
|
|
|
+ "width": { value: width },
|
|
|
|
+ "height": { value: height },
|
|
|
|
+ "nearClipping": { value: nearClipping },
|
|
|
|
+ "farClipping": { value: farClipping },
|
|
|
|
|
|
- "pointSize": { value: 2 },
|
|
|
|
- "zOffset": { value: 1000 }
|
|
|
|
|
|
+ "pointSize": { value: 2 },
|
|
|
|
+ "zOffset": { value: 1000 }
|
|
|
|
|
|
- },
|
|
|
|
- vertexShader: document.getElementById( 'vs' ).textContent,
|
|
|
|
- fragmentShader: document.getElementById( 'fs' ).textContent,
|
|
|
|
- blending: THREE.AdditiveBlending,
|
|
|
|
- depthTest: false, depthWrite: false,
|
|
|
|
- transparent: true
|
|
|
|
|
|
+ },
|
|
|
|
+ vertexShader: document.getElementById( 'vs' ).textContent,
|
|
|
|
+ fragmentShader: document.getElementById( 'fs' ).textContent,
|
|
|
|
+ blending: THREE.AdditiveBlending,
|
|
|
|
+ depthTest: false, depthWrite: false,
|
|
|
|
+ transparent: true
|
|
|
|
|
|
- } );
|
|
|
|
|
|
+ } );
|
|
|
|
|
|
- mesh = new THREE.Points( geometry, material );
|
|
|
|
- scene.add( mesh );
|
|
|
|
|
|
+ mesh = new THREE.Points( geometry, material );
|
|
|
|
+ scene.add( mesh );
|
|
|
|
|
|
- var gui = new GUI();
|
|
|
|
- gui.add( material.uniforms.nearClipping, 'value', 1, 10000, 1.0 ).name( 'nearClipping' );
|
|
|
|
- gui.add( material.uniforms.farClipping, 'value', 1, 10000, 1.0 ).name( 'farClipping' );
|
|
|
|
- gui.add( material.uniforms.pointSize, 'value', 1, 10, 1.0 ).name( 'pointSize' );
|
|
|
|
- gui.add( material.uniforms.zOffset, 'value', 0, 4000, 1.0 ).name( 'zOffset' );
|
|
|
|
- gui.close();
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }, false );
|
|
|
|
|
|
+ var gui = new GUI();
|
|
|
|
+ gui.add( material.uniforms.nearClipping, 'value', 1, 10000, 1.0 ).name( 'nearClipping' );
|
|
|
|
+ gui.add( material.uniforms.farClipping, 'value', 1, 10000, 1.0 ).name( 'farClipping' );
|
|
|
|
+ gui.add( material.uniforms.pointSize, 'value', 1, 10, 1.0 ).name( 'pointSize' );
|
|
|
|
+ gui.add( material.uniforms.zOffset, 'value', 0, 4000, 1.0 ).name( 'zOffset' );
|
|
|
|
|
|
video.play();
|
|
video.play();
|
|
|
|
|
|
|
|
+ //
|
|
|
|
+
|
|
renderer = new THREE.WebGLRenderer();
|
|
renderer = new THREE.WebGLRenderer();
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
renderer.setSize( window.innerWidth, window.innerHeight );
|
|
renderer.setSize( window.innerWidth, window.innerHeight );
|