Browse Source

updated tonemapping example

Lewy Blue 5 years ago
parent
commit
fec279c67e
1 changed files with 28 additions and 25 deletions
  1. 28 25
      examples/webgl_tonemapping.html

+ 28 - 25
examples/webgl_tonemapping.html

@@ -44,10 +44,14 @@
 				ACESFilmic: THREE.ACESFilmicToneMapping
 			};
 
-			init();
-			render();
+			init()
+				.catch( function ( err ) {
 
-			function init() {
+					console.error( err );
+
+				} );
+
+			async function init() {
 
 				renderer = new THREE.WebGLRenderer( { antialias: true } );
 				renderer.setPixelRatio( window.devicePixelRatio );
@@ -75,42 +79,41 @@
 				var pmremGenerator = new THREE.PMREMGenerator( renderer );
 				pmremGenerator.compileEquirectangularShader();
 
-				new RGBELoader()
+				var rgbeLoader = new RGBELoader()
 					.setDataType( THREE.UnsignedByteType )
-					.setPath( 'textures/equirectangular/' )
-					.load( 'venice_sunset_1k.hdr', function ( texture ) {
+					.setPath( 'textures/equirectangular/' );
 
-						var envMap = pmremGenerator.fromEquirectangular( texture ).texture;
+				var gltfLoader = new GLTFLoader().setPath( 'models/gltf/DamagedHelmet/glTF/' );
 
-						scene.background = envMap;
-						scene.environment = envMap;
+				var [ texture, gltf ] = await Promise.all( [
+					rgbeLoader.loadAsync( 'venice_sunset_1k.hdr' ),
+					gltfLoader.loadAsync( 'DamagedHelmet.gltf' ),
+				] );
 
-						texture.dispose();
-						pmremGenerator.dispose();
-
-						render();
+				// environment
 
-						// model
+				var envMap = pmremGenerator.fromEquirectangular( texture ).texture;
 
-						var loader = new GLTFLoader().setPath( 'models/gltf/DamagedHelmet/glTF/' );
-						loader.load( 'DamagedHelmet.gltf', function ( gltf ) {
+				scene.background = envMap;
+				scene.environment = envMap;
 
-							gltf.scene.traverse( function ( child ) {
+				texture.dispose();
+				pmremGenerator.dispose();
 
-								if ( child.isMesh ) {
+				// model
 
-									mesh = child;
-									scene.add( mesh );
+				gltf.scene.traverse( function ( child ) {
 
-								}
+					if ( child.isMesh ) {
 
-							} );
+						mesh = child;
+						scene.add( mesh );
 
-							render();
+					}
 
-						} );
+				} );
 
-					} );
+				render();
 
 				window.addEventListener( 'resize', onWindowResize, false );