|
56 | 56 | <script src="js/shaders/ParallaxShader.js"></script> |
57 | 57 |
|
58 | 58 | <script> |
| 59 | + |
59 | 60 | if ( ! Detector.webgl ) Detector.addGetWebGLMessage(); |
60 | 61 |
|
61 | | - var stats; |
62 | | - var camera, scene, material, renderer; |
| 62 | + var camera, scene, material, renderer, stats; |
63 | 63 |
|
64 | 64 | var effectController = { |
65 | 65 | 'mode': 'relief', |
|
81 | 81 | camera.position.z = 2; |
82 | 82 | scene = new THREE.Scene(); |
83 | 83 |
|
84 | | - initScene(); |
| 84 | + // |
| 85 | + |
| 86 | + var shader = THREE.ParallaxShader; |
| 87 | + var uniforms = THREE.UniformsUtils.clone( shader.uniforms ); |
| 88 | + var parameters = { |
| 89 | + fragmentShader: shader.fragmentShader, |
| 90 | + vertexShader: shader.vertexShader, |
| 91 | + uniforms: uniforms |
| 92 | + }; |
| 93 | + |
| 94 | + // |
| 95 | + |
| 96 | + var textureLoader = new THREE.TextureLoader(); |
| 97 | + |
| 98 | + material = new THREE.ShaderMaterial( parameters ); |
| 99 | + material.map = textureLoader.load( 'textures/brick_diffuse.jpg' ); |
| 100 | + material.bumpMap = textureLoader.load( 'textures/brick_bump.jpg' ); |
| 101 | + material.map.anisotropy = 4; |
| 102 | + material.bumpMap.anisotropy = 4; |
| 103 | + uniforms[ 'map' ].value = material.map; |
| 104 | + uniforms[ 'bumpMap' ].value = material.bumpMap; |
| 105 | + |
| 106 | + // |
| 107 | + |
| 108 | + var geometry = new THREE.BoxBufferGeometry( 1.0, 1.0, 1.0 ); |
| 109 | + var mesh = new THREE.Mesh( geometry, material ); |
| 110 | + scene.add( mesh ); |
| 111 | + |
| 112 | + // |
85 | 113 |
|
86 | 114 | renderer = new THREE.WebGLRenderer( { antialias: true } ); |
87 | 115 | renderer.setPixelRatio( window.devicePixelRatio ); |
|
91 | 119 | renderer.gammaInput = true; |
92 | 120 | renderer.gammaOutput = true; |
93 | 121 |
|
| 122 | + // |
| 123 | + |
94 | 124 | var controls = new THREE.OrbitControls( camera, renderer.domElement ); |
95 | 125 |
|
| 126 | + // |
| 127 | + |
96 | 128 | stats = new Stats(); |
97 | 129 | container.appendChild( stats.dom ); |
98 | 130 |
|
| 131 | + // |
| 132 | + |
99 | 133 | window.addEventListener( 'resize', onWindowResize, false ); |
100 | 134 |
|
101 | 135 | } |
|
124 | 158 | gui.add( effectController, 'maxLayers', 1.0, 30, 1 ).onChange( guiChanged ); |
125 | 159 |
|
126 | 160 | guiChanged(); |
| 161 | + |
127 | 162 | } |
128 | 163 |
|
129 | 164 | function onWindowResize() { |
|
135 | 170 |
|
136 | 171 | } |
137 | 172 |
|
138 | | - function initScene() { |
139 | | - |
140 | | - var shader = THREE.ParallaxShader; |
141 | | - var uniforms = THREE.UniformsUtils.clone( shader.uniforms ); |
142 | | - var parameters = { |
143 | | - fragmentShader: shader.fragmentShader, |
144 | | - vertexShader: shader.vertexShader, |
145 | | - uniforms: uniforms |
146 | | - }; |
147 | | - |
148 | | - var textureLoader = new THREE.TextureLoader(); |
149 | | - |
150 | | - material = new THREE.ShaderMaterial( parameters ); |
151 | | - material.map = textureLoader.load( 'textures/brick_diffuse.jpg' ); |
152 | | - material.bumpMap = textureLoader.load( 'textures/brick_bump.jpg' ); |
153 | | - material.map.anisotropy = 4; |
154 | | - material.bumpMap.anisotropy = 4; |
155 | | - uniforms[ 'map' ].value = material.map; |
156 | | - uniforms[ 'bumpMap' ].value = material.bumpMap; |
157 | | - |
158 | | - var geometry = new THREE.BoxGeometry( 1.0, 1.0, 1.0 ); |
159 | | - var mesh = new THREE.Mesh( geometry, material ); |
160 | | - scene.add( mesh ); |
161 | | - |
162 | | - } |
163 | | - |
164 | 173 | function animate() { |
165 | 174 |
|
166 | 175 | requestAnimationFrame( animate ); |
|
175 | 184 | renderer.render( scene, camera ); |
176 | 185 |
|
177 | 186 | } |
| 187 | + |
178 | 188 | </script> |
179 | 189 |
|
180 | 190 | </body> |
|
0 commit comments