Я использую THREE.OBJLoader для загрузки 3D-модели в мою сцену.Он работает нормально.
Однако после добавления его в сцену мне нужно увеличить его на 10, а затем восстановить его положение вершин.
Я знаю, что THREE.OBJLoader
дает мне BufferGeometry
и я знаю, как получить доступ к его вершинам с помощью атрибута position
.
Моя проблема: Float32Array
хранение этих вершин, похоже, не обновляется после масштабирования моего меша, независимо от того, делаю ли я это раньшеили после добавления его в сцену.
Я использую этот фрагмент для масштабирования меша сразу после того, как получил его из загрузчика:
myMesh = new THREE.Mesh(loadedMesh.geometry, new THREE.MeshBasicMaterial({color: 0xff0000}));
myMesh.scale.set(10, 10, 10);
Затем я получаю вершины, используя:
var myMeshVertices = myMesh.geometry.attributes.position.array;
При этом моя сетка добавляется в сцену с правильными (масштабированными) размерами, но ее BufferGeometry
не хочет обновлять значения вершин.
Я сделал многотесты, включающие myMesh.geometry.attributes.position.needsUpdate = true;
или myMesh.updateMatrix();
, и я видел много SO вопросов по этой теме ( здесь или здесь ), но я не смог найти решение...
Не могли бы вы сказать мне, если я что-то здесь неправильно понял?(имея в виду, что я только начал с Three.js и WebGL, поэтому мне наверняка не хватает знаний об этом).