[英]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.