Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var camera, scene, renderer;
- var mesh;
- var teeth;
- var clearColor = 0xFFFFFF;
- var composer;
- var shaderTime = 0;
- var badTVPass;
- var staticParams, staticPass;
- var rgbParams, rgbPass;
- var renderPass, copyPass;
- var loader = new THREE.OBJLoader();
- // load a resource
- loader.load(
- // resource URL
- 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/655010/teeth_set.obj',
- // Function when resource is loaded
- function ( object ) {
- object.scale.x = object.scale.y = object.scale.z = 100;
- object.traverse( function ( child ) {
- if ( child instanceof THREE.Mesh ) {
- child.material = new THREE.MeshNormalMaterial({wireframe: true});
- }
- } );
- teeth = object;
- init();
- animate();
- }
- );
- function init() {
- camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 5000 );
- camera.position.z = -400;
- scene = new THREE.Scene();
- var texture = new THREE.TextureLoader().load( 'textures/crate.gif' );
- var geometry = new THREE.BoxBufferGeometry( 200, 200, 200 );
- var material = new THREE.MeshBasicMaterial( { map: texture } );
- mesh = new THREE.Mesh( geometry, material );
- scene.add( mesh );
- // instantiate a loader
- for (var x = -1000; x < 1000; x+=400){
- for (var y = -1000; y < 1000; y+=400 ){
- var temp = teeth.clone();
- temp.position.x = x;
- temp.position.y = y;
- scene.add(temp);
- }
- }
- renderer = new THREE.WebGLRenderer();
- renderer.setPixelRatio( window.devicePixelRatio );
- renderer.setSize( window.innerWidth, window.innerHeight );
- document.body.appendChild( renderer.domElement );
- //Create Shader Passes
- renderPass = new THREE.RenderPass( scene, camera );
- rgbPass = new THREE.ShaderPass( THREE.RGBShiftShader );
- kaleidoPass = new THREE.ShaderPass(THREE.KaleidoShader);
- copyPass = new THREE.ShaderPass( THREE.CopyShader );
- composer = new THREE.EffectComposer( renderer);
- composer.addPass( renderPass );
- composer.addPass( rgbPass );
- composer.addPass( kaleidoPass );
- composer.addPass( copyPass );
- copyPass.renderToScreen = true;
- rgbPass.uniforms[ 'angle' ].value = 0.0;
- rgbPass.uniforms[ 'amount' ].value = 0.2;
- kaleidoPass.uniforms[ 'sides' ].value = 2;
- // controls
- var controls = new THREE.OrbitControls( camera, renderer.domElement );
- //controls.maxPolarAngle = Math.PI * 0.5;
- controls.minDistance = 1000;
- controls.maxDistance = 1000;
- //
- window.addEventListener( 'resize', onWindowResize, false );
- }
- function onWindowResize() {
- camera.aspect = window.innerWidth / window.innerHeight;
- camera.updateProjectionMatrix();
- renderer.setSize( window.innerWidth, window.innerHeight );
- }
- function animate() {
- requestAnimationFrame( animate );
- camera.rotation.z += 0.001;
- mesh.rotation.y += 1.009;
- mesh.rotation.x+=1.000;
- composer.render( 0.1);
- renderer.setClearColor(clearColor);
- if (Math.random() > 0.2){
- if (Math.random() > 0.5) clearColor -= 10000;
- else clearColor -= 0x000010;
- }
- else clearColor += 0x200001;
- }
Advertisement
Add Comment
Please, Sign In to add comment