Saya baru mengenal Three.js dan saya punya masalah. Saya telah mengimpor objek 3D eksternal (ekstensi .obj) dan saya menambahkannya ke adegan saya. Saya ingin mengatur objek yang baru diimpor pada posisi (0, 0, 0), jadi saya menggunakan:

obj.position.set(0, 0, 0);

Saya berharap objek itu akan ditempatkan pada 0 titik setiap sumbu dari pembantu sumbu. Namun itu tidak terjadi. Objek ditempatkan pada posisinya sendiri:

enter image description here

Mengapa itu terjadi dan bagaimana saya bisa mengatur posisi objek ke (0, 0, 0) dan membuatnya tampak tepat di 0 titik setiap sumbu?

0
Furman 30 Maret 2020, 01:49

1 menjawab

Jawaban Terbaik

Anda dapat mencoba memusatkan objek yang diimpor di Origin seperti:

const aabb = new THREE.Box3().setFromObject( obj );
const center = aabb.getCenter( new THREE.Vector3() );

obj.position.x += ( obj.position.x - center.x );
obj.position.y += ( obj.position.y - center.y );
obj.position.z += ( obj.position.z - center.z );    

Idenya adalah untuk menghitung kotak pembatas yang disejajarkan dengan sumbu dari objek dan menggunakan properti pusatnya untuk pemusatan yang sebenarnya.

1
Mugen87 30 Maret 2020, 09:51