簡體   English   中英

ThreeJs加載的頂點比obj文件中的頂點多

[英]ThreeJs Loads more vertices than there are in an obj file

我有以下代碼:

function render_obj(objPath){
  var loader = new THREE.OBJLoader();
  loader.load(
    objPath,
    function ( object ) {
      child = object.children[0];
      var geometry = new THREE.Geometry().fromBufferGeometry( child.geometry );      
      var material = new THREE.MeshBasicMaterial({wireframe: true});
      model = new THREE.Mesh(geometry, material);
      scene.add(model);
    },
    function ( xhr ) {
      console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
    },
    function ( error ) {
      console.log( 'An error happened' );
    }
  );
};

現在man.obj有214個頂點和332個面。 當我通過執行以下操作檢查臉部: model.geometry.faces.length我得到332是正確的。 當我執行model.geometry.vertices.length我得到996,我應該得到214 ...

這是為什么 ?

您正在使用的裝載程序正在創建稱為“三角湯”的東西。 這意味着您的N個三角形實際上是由N * 3個頂點定義的。 三角形本身並不真正存在,只是從頂點進行解釋。 前三個組成一個三角形,下三個組成,依此類推。 如果您擁有連續的平滑網格,則將復制許多頂點。

您可能感興趣的是“索引”幾何。 在這種類型的幾何圖形中,您有一個實際的三角形緩沖區,其中包含用於頂點的索引。 在連續的平滑網格中,一個頂點可以被許多三角形共享。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM