JavaScript:
let object ; let object2 ;
کدی که دو تا مدل را کمی می کند. قسمتی از کد است ، کد کامل را از گیت هاب نگاه کنید.
شاید این روش درستی نباشد ، ولی اگر خواستید این طوری عمل کنید ، کدش این میشه.
JavaScript:
// manager
function loadModel() {
object.traverse( function ( child ) {
if ( child.isMesh ) child.material.map = texture;
} );
object.position.y =0.2;
object.position.z =-2;
object.position.x =-32;
object.scale.setScalar( 0.1 );
scene.add( object );
render();
}
const manager = new THREE.LoadingManager( loadModel );
// texture
const textureLoader = new THREE.TextureLoader( manager );
const texture = textureLoader.load( 'textures/brick_diffuse.jpg', render );
texture.colorSpace = THREE.SRGBColorSpace;
// model
function onProgress( xhr ) {}
function onError() {}
const loader = new OBJLoader( manager );
loader.load( 'model/model4.obj', function ( obj ) {
object = obj;
}, onProgress, onError );
function loadModel2() {
object2.traverse( function ( child ) {
if ( child.isMesh ) child.material.map = texture;
} );
object2.position.y =0.2;
object2.position.z =-2;
object2.position.x =-52;
object2.scale.setScalar( 0.1 );
scene.add( object2 );
render();
}
const manager2 = new THREE.LoadingManager( loadModel2 );
// texture
const textureLoader2 = new THREE.TextureLoader( manager2 );
const texture2 = textureLoader2.load( 'textures/brick_diffuse.jpg', render );
texture2.colorSpace = THREE.SRGBColorSpace;
// model
function onProgress( xhr ) {}
function onError() {}
const loader2 = new OBJLoader( manager2 );
loader2.load( 'model/model3.obj', function ( obj ) {
object2 = obj;
}, onProgress, onError );
حالا دو کلبه در زمین خود داریم:
اشیا را وقتی تمامش را از یک تکسچر استفاده کنیم جالب نمیشه.میشه موقع ساخت مدل ، تکسچر هر قسمت را هم بهش داد.
و می توانید از فرمت های مدل دیگر هم استفاده کنید. فرمت های قوی تری هم وجود دارد. Three.js انواع لودر دارد.
نکته کد بالا اینه که اگر دو متغیر همنام داشته باشیم برنامه هنگ می کنه ، و من تمام متغیرهایی که لازم بود را یک ۲ جلویش گذاشتم. بالای برنامه هم object2 را معرفی کردم.
برای شکل سوم ، تمام این ۲ ها را باید ۳ کرد و برای شکل چهارم ، همه را باید ۴ کرد.
شاید هم بشه آرایه ای از این متغیرها تعریف کرد. فکر کنم بشه این کارو کرد و روش منطقی تری از روش بالاست.
من کمی سرچ هم کردم. راه حلهایی گفته شده. خودتان می توانید سرچ کنید و بخوانید. سایتهای انگلیسی را بگردید.