简体   繁体   中英

What does object traverse mean in Three.js?

I am trying to upload obj files into a WebGL scene using Three.js. I saw some sample codes like the one below which works great, but I want to know what does the command

object.traverse();

do? What will happen if we don't do traversing? Thank you.

// prepare loader and load the model
var oLoader = new THREE.OBJLoader();
oLoader.load('models/chair.obj', function(object, materials) {

// var material = new THREE.MeshFaceMaterial(materials);
var material2 = new THREE.MeshLambertMaterial({ color: 0xa65e00 });

object.traverse( function(child) {
if (child instanceof THREE.Mesh) {

  // apply custom material
  child.material = material2;

  // enable casting shadows
  child.castShadow = true;
  child.receiveShadow = true;
  }
  });

  object.position.x = 0;
 object.position.y = 0;
 object.position.z = 0;
 object.scale.set(1, 1, 1);
 lesson6.scene.add(object);
});

It is basically the iterator through your loaded object. You can pass the function to the traverse() function which will be called for every child of the object being traversed. If you call traverse() on scene. you traverse through the complete scene graph.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM