topical media & game development

talk show tell print

mobile-query-three-plugins-buffergeometry-examples-example-test3jsbg.htm / htm



  <!doctype html><title>Minimal tQuery Page</title>
  <script src="../../../build/tquery-bundle.js"></script>
  
  <script src="../tquery.createbuffergeometry.js"></script>
  <script src="../tquery.createbuffergeometrydisjoint.js"></script>
  
  <script src="../tquery.geometryto3jsbg.js"></script>
  <script src="../tquery.loader3jsbg.js"></script>
  <script src="../tquery.hexdump.js"></script>
  
  <body><div id='info'>
          <a download='sample.3jsbg' href=''>Download .bin format</a>
  </div><script>
          var world        = tQuery.createWorld().boilerplate().pageTitle('#info').start();
  
          console.time('generate three.js object')
          // build the geometry
          var tGeometry        = new THREE.CircleGeometry(0.5, 100);
          
          console.time('Generate Original Geometry')
          //var tGeometry        = new THREE.PlaneGeometry(1,1);
          //var tGeometry        = new THREE.PlaneGeometry(1,1, 10, 10);
          //var tGeometry        = new THREE.PlaneGeometry(1,1, 256, 256);
          //var tGeometry        = new THREE.CubeGeometry(1,1,1, 200, 200);
          var tGeometry        = new THREE.CubeGeometry(1,1,1, 2, 2);
          //var tGeometry        = new THREE.TorusKnotGeometry(1-0.15, 0.15)
  
          // tGeometry.computeBoundingBox();
          // tGeometry.computeFaceNormals();
          // tGeometry.computeCentroids();
          // tGeometry.computeVertexNormals();
          // tGeometry.computeMorphNormals();
          // //geometry.computeTangents();
          // tGeometry.computeBoundingSphere();                
  
          // build a geometry manually
          if( false ){
                  var tGeometry        = new THREE.Geometry();
                  tGeometry.vertices.push( new THREE.Vector3( 0, 1, 0 ) );
                  tGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ) );
                  tGeometry.vertices.push( new THREE.Vector3( 1, 0, 0 ) );
                  tGeometry.faces.push( new THREE.Face3(0,1,2) );        
                  tGeometry.faceVertexUvs[0].push([
                          new THREE.UV(0, 1),
                          new THREE.UV(0, 0),
                          new THREE.UV(1, 0)
                  ]);
                  tGeometry.computeBoundingBox();
                  tGeometry.computeBoundingSphere();                
                  tGeometry.computeVertexNormals();
  
                  // tGeometry.computeFaceNormals();
                  // tGeometry.computeCentroids();
                  // tGeometry.computeMorphNormals();
                  // //tGeometry.computeTangents();
                  console.log('MANUAL GEOMETRY', tGeometry)
          }
          console.timeEnd('Generate Original Geometry')
          // build the mesh
          var url                = "../../assets/images/ash_uvgrid01.jpg";
          var tMaterial        = new THREE.MeshBasicMaterial({
                  map                : THREE.ImageUtils.loadTexture( url ),
                  //wireframe        : true,
          });
          //var tMaterial        = new THREE.MeshNormalMaterial();
          var mesh        = tQuery(tGeometry, tMaterial).translateX(-1).addTo(world);
          console.timeEnd('generate three.js object')
          
          //world.loop().hook(function(delta, now){ mesh.rotateX(0.01)        });
  
          console.log('original geometry vertices', tGeometry.vertices.length)
          console.log('original geometry vertices', tGeometry.faces.length)
  
          // // convert tGeometry to 3jsbg
          console.time('Create BufferGeometry')
          var tBgGeometry        = tQuery.createBufferGeometryDisjoint(tGeometry);
          console.timeEnd('Create BufferGeometry')
  
  if( true ){
          console.time('Generating 3jsbg from THREE.BufferGeometry')
          var dataView        = tQuery.geometryTo3jsbg(tBgGeometry);
          console.timeEnd('Generating 3jsbg from THREE.BufferGeometry')
  //        tQuery.hexDump(dataView)
  
          var blob        = new Blob([dataView], {
                  type        : 'application/octet-stream'
          });
          var objectURL        = webkitURL.createObjectURL( blob );
          document.querySelector('#info a').href        = objectURL;
  
          var url                = "../../assets/images/ash_uvgrid01.jpg";
          var tMaterial        = new THREE.MeshBasicMaterial({
                  map                : THREE.ImageUtils.loadTexture( url ),
                  wireframe        : true,
          });
  
          // convert 3jsbg to tGeometry
          var tGeometryTmp= tQuery.convert3jsbgToGeometry(dataView.buffer)
          var tMaterial        = new THREE.MeshNormalMaterial();
          var dMesh        = tQuery(tGeometryTmp, tMaterial).addTo(world).translateX(1);
  }
  </script></body>


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.