Я пытаюсь сглаживает сетку я загруженную с помощью THREE.OBJLoaderthree.js - Сглаживание нормалей с использованием mergeVertices();
Как вы можете видеть в этом исходном изображении всех полигоны граненые. Я пробовал другие загрузчики/форматы, но получал тот же результат. После укоренения я вижу, что возможным решением является слияние вершин перед вычислением нормалей. Когда я пытаюсь это сделать, я получаю «TypeError: geometry.mergeVertices не является функцией» в моей консоли. Вот код, выделяющий, где я вставил функцию mergeVertices().
var loader = new THREE.OBJLoader();
loader.load('../assets/models/nos2.obj', function (nos) {
var material = new THREE.MeshLambertMaterial({color: 0xffffff, side:THREE.DoubleSide});
nos.children.forEach(function (child) {
child.material = material;
child.geometry.mergeVertices(); /* ADDED MERGE WHICH GIVES ERROR */
child.geometry.computeFaceNormals();
child.geometry.computeVertexNormals();
});
nos.scale.set(300, 300, 300);
nos.rotation.x = -0.3;
scene.add(nos);}
Что я делаю неправильно?