我正在從obj文件中加載網格,然後嘗試對其進行歸一化。但是,我收到了奇怪的結果。下面是加載和中心網格代碼:在three.js中規格化網格
var manager = new THREE.LoadingManager();
var loader = new THREE.OBJLoader(manager);
loader.load('http://jamesdedge.com/threejs/bunny.obj', function(object) {
object.traverse(function(child) {
if(child instanceof THREE.Mesh)
{
var geometry = child.geometry;
var verts = geometry.vertices;
var ctr = new THREE.Vector3(0.0, 0.0, 0.0);
for(i = 0; i < verts.length; ++i)
ctr.add(verts[i]);
ctr.divideScalar(verts.length);
for(i = 0; i < verts.length; ++i)
verts[i].sub(ctr);
}
});
scene.add(object);
});
此代碼應該只集中在平均頂點位置的網格,但它似乎是造成了奇效。你可以在我的網站上看到它:http://jamesdedge.com/threejs/tjs_demo.html
我不明白是什麼原因造成的,ctr變量給了我一個有效的向量,並且從所有的頂點減去一個向量只會重新定位它。
請考慮使用'geometry.mergeVertices(); THREE.GeometryUtils.center(geometry);' – WestLangley
提交的錯誤報告:https://github.com/mrdoob/three.js/issues/3897 three.js r.61 – WestLangley