topical media & game development
mobile-query-three-plugins-montainarena-examples-demo.htm / htm
<!doctype html><title>Minimal tQuery Page</title>
<script src="../../../build/tquery-bundle-require.js"></script>
<body><script>
require(['tquery.grassground', 'tquery.skymap', 'tquery.statsplus', 'tquery.montainarena'], function(){
var world = tQuery.createWorld().boilerplate().start();
world.enableStatsPlus();
var arena = tQuery.MontainArena.createBasicArena().scale(10);
arena.addTo(world);
// try to merge the whole arena
var tGeometry = new THREE.Geometry();
//THREE.SceneUtils.traverseHierarchy(arena.get(0), function(object3D){
arena.get(0).traverse(function(object3D){
console.log('add', object3D, tGeometry);
if( object3D.geometry === undefined ) return;
if( object3D.material instanceof THREE.MeshFaceMaterial === false ){
console.log(object3D)
object3D = object3D.clone();
console.log(object3D)
object3D.geometry.materials.push(object3D.material);
object3D.geometry.materials.push(object3D.material);
object3D.geometry.materials.push(object3D.material);
object3D.geometry.materials.push(object3D.material);
object3D.geometry.faces.forEach(function(face){
face.materialIndex = 2;
console.log('face materialIndex', 'materialIndex' in face, face)
});
object3D.material = new THREE.MeshFaceMaterial();
}
THREE.GeometryUtils.merge( tGeometry, object3D );
});
var tMesh = new THREE.Mesh(tGeometry, new THREE.MeshFaceMaterial())
world.tScene().add(tMesh);
var tGeometry = new THREE.Geometry();
for(var i = 0; i < 10; i++){
var tMesh = new THREE.Mesh(new THREE.CubeGeometry(1,1,1), new THREE.MeshBasicMaterial())
tMesh.position.x= Math.random() * 4 - 2;
tMesh.position.y= Math.random() * 4 - 2;
tMesh.position.z= Math.random() * 4 - 2;
THREE.GeometryUtils.merge( tGeometry, tMesh );
}
var tMesh = new THREE.Mesh(tGeometry, new THREE.MeshFaceMaterial())
world.tScene().add(tMesh);
// var ground = tQuery.createGrassGround({
// textureRepeatX : 10,
// textureRepeatY : 10,
// segmentsW : 100,
// segmentsH : 100,
// }).addTo(world).scale(10)
// .setNormalMaterial()
// .back();
// var tGeometry = ground.get(0).geometry;
// for(var i = 0; i < tGeometry.vertices.length; i++){
// var vertice = tGeometry.vertices[i];
// vertice.z = 0.01 * Math.abs(Math.sin(vertice.y*40) + Math.sin(vertice.x*80));
// }
// tGeometry.computeBoundingSphere();
// tGeometry.computeFaceNormals();
// tQuery.createSkymap('skybox').addTo(world);
});
</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.