UNPKG

wwobjloader2

Version:

New OBJLoader utilizing web worker for three.js

92 lines (75 loc) 2.84 kB
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - Parallels Demo</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <link href="../common/Common.css" type="text/css" rel="stylesheet"/> <link href="./main.css" type="text/css" rel="stylesheet"/> </head> <body> <div id="glFullscreen"> <canvas id="example"></canvas> </div> <div id="dat"> </div> <div id="info"> <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - Web Worker LoaderDirector Parallels Demo </div> <div id="feedback"> </div> <script src="../../node_modules/three/examples/js/Detector.js"></script> <script src="../../node_modules/three/build/three.js"></script> <script src="../../node_modules/three/examples/js/controls/TrackballControls.js"></script> <script src="../../node_modules/three/examples/js/loaders/MTLLoader.js"></script> <script src="../../node_modules/three/examples/js/libs/dat.gui.min.js"></script> <script src="../../build/LoaderSupport.js"></script> <script src="../../build/OBJLoader2.js"></script> <script src="./WWParallels.js"></script> <script> var app = new WWParallels( document.getElementById( 'example' ) ); var wwParallelsControl = { queueLength: 128, workerCount: 4, streamMeshes: true, run: function () { app.enqueueAllAssests( this.queueLength, this.workerCount, this.streamMeshes ); }, terminate: function () { app.terminateManager(); }, clearAllAssests: function () { app.terminateManager(); app.clearAllAssests(); } }; var gui = new dat.GUI( { autoPlace: false, width: 320 } ); var menuDiv = document.getElementById( 'dat' ); menuDiv.appendChild(gui.domElement); var folderQueue = gui.addFolder( 'Web Worker Director Queue Control' ); folderQueue.add( wwParallelsControl, 'queueLength' ).min( 1 ).max( 1024 ).step( 1 ); folderQueue.add( wwParallelsControl, 'workerCount' ).min( 1 ).max( 16 ).step( 1 ); folderQueue.add( wwParallelsControl, 'streamMeshes' ); folderQueue.add( wwParallelsControl, 'run' ).name( 'Run Queue' ); folderQueue.open(); var folderWWControl = gui.addFolder( 'Resource Management' ); folderWWControl.add( wwParallelsControl, 'terminate' ).name( 'Terminate WWManager' ); folderWWControl.add( wwParallelsControl, 'clearAllAssests' ).name( 'Clear Scene' ); var resizeWindow = function () { app.resizeDisplayGL(); }; var render = function () { requestAnimationFrame( render ); app.render(); }; window.addEventListener( 'resize', resizeWindow, false ); console.log( 'Starting initialisation phase...' ); app.initGL(); app.resizeDisplayGL(); render(); </script> </body> </html>