Quellcode durchsuchen

Removed animation loop; reset expoure

WestLangley vor 5 Jahren
Ursprung
Commit
41589ee311
1 geänderte Dateien mit 16 neuen und 14 gelöschten Zeilen
  1. 16 14
      examples/webgl_loader_gltf.html

+ 16 - 14
examples/webgl_loader_gltf.html

@@ -19,18 +19,16 @@
 
 			import * as THREE from '../build/three.module.js';
 
-			import Stats from './jsm/libs/stats.module.js';
-
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { GLTFLoader } from './jsm/loaders/GLTFLoader.js';
 			import { RGBELoader } from './jsm/loaders/RGBELoader.js';
 			import { RoughnessMipmapper } from './jsm/utils/RoughnessMipmapper.js';
 
-			var container, stats, controls;
+			var container, controls;
 			var camera, scene, renderer;
 
 			init();
-			animate();
+			render();
 
 			function init() {
 
@@ -48,11 +46,15 @@
 					.load( 'royal_esplanade_1k.hdr', function ( texture ) {
 
 						var envMap = pmremGenerator.fromEquirectangular( texture ).texture;
-						pmremGenerator.dispose();
 
 						scene.background = envMap;
 						scene.environment = envMap;
 
+						texture.dispose();
+						pmremGenerator.dispose();
+
+						render();
+
 						// model
 
 						var roughnessMipmapper = new RoughnessMipmapper( renderer );
@@ -74,6 +76,8 @@
 
 							roughnessMipmapper.dispose();
 
+							render();
+
 						} );
 
 					} );
@@ -82,6 +86,7 @@
 				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
 				renderer.toneMapping = THREE.ACESFilmicToneMapping;
+				renderer.toneMappingExposure = 0.8;
 				renderer.outputEncoding = THREE.sRGBEncoding;
 				container.appendChild( renderer.domElement );
 
@@ -89,15 +94,14 @@
 				pmremGenerator.compileEquirectangularShader();
 
 				controls = new OrbitControls( camera, renderer.domElement );
+				controls.addEventListener( 'change', render ); // use if there is no animation loop
+				controls.minDistance = 2;
+				controls.maxDistance = 10
 				controls.target.set( 0, 0, - 0.2 );
 				controls.update();
 
 				window.addEventListener( 'resize', onWindowResize, false );
 
-				// stats
-				stats = new Stats();
-				container.appendChild( stats.dom );
-
 			}
 
 			function onWindowResize() {
@@ -107,18 +111,16 @@
 
 				renderer.setSize( window.innerWidth, window.innerHeight );
 
+				render();
+
 			}
 
 			//
 
-			function animate() {
-
-				requestAnimationFrame( animate );
+			function render() {
 
 				renderer.render( scene, camera );
 
-				stats.update();
-
 			}
 
 		</script>