์๋ ํ์ธ์, ์๋ฅผ ๋ค์ด ์ฐป์ฃผ์ ์์ ๊ฐ์ dae ๋ชจ๋ธ์ ๋ด ํ๋ก๊ทธ๋จ์ ๋ก๋ํ๊ณ ์ฅ๋ฉด์ 10๊ฐ์ ์ฐป์ฃผ์ ์๋ฅผ ๊ฐ๊ณ ์ถ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ๋ณต์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง๋ง ๊ฐ์ฒด๊ฐ ๋ถ๋ชจ๋ฅผ ์ฐธ์กฐํ ๋ค์ ์์ ์ ์ฐธ์กฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ๋ณต์ ํ ์ ์์ต๋๋ค. ์ด๋ป๊ฒ ๋ด ๊ฐ์ฒด์ ๋ณต์ฌ๋ณธ์ 10๊ฐ ๊ฐ์ง ์ ์์ต๋๊น?
var dae;
var dae = [];
var loader = new THREE.ColladaLoader();
loader.options.convertUpAxis = true;
loader.load( 'teapot.dae',function colladaReady( collada ) {
dae = collada.scene;
for(var i = 0;i < 10;++i){
daes[i] = clone(dae);
}
});
}
function clone(obj){
if(obj == null || typeof(obj) != 'object')
return obj;
var temp = new Object();//obj.constructor(); // changed
for(var key in obj)
temp[key] = clone(obj[key]);
return temp;
}
๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ด์ผ ํฉ๋๋ค.
var geometry = collada.scene.children[ 0 ].geometry;
var material = collada.scene.children[ 0 ].material;
for ( var i = 0; i < 10; i ++ ) {
var mesh = new THREE.Mesh( geometry, material );
mesh.position.set( i * 100, 0, 0 );
scene.add( mesh );
}
์๋ํ์ง ์์์ต๋๋ค. ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด๊ฒ์ ๋ด collada.scene ๊ฐ์ฒด์
๋๋ค
๋ช ๋
๋์ ๋ซํ ์ค๋ ๋์ ๊ฒ์ํ์ง ๋ง์ญ์์ค. ๋์ ์ ๋ฌธ์ ๋ฅผ ์ด๊ณ dae
ํ์ผ๊ณผ ํด๋น three.js
์ฝ๋๋ฅผ ์ ๊ณตํ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ช ๋ ๋์ ๋ซํ ์ค๋ ๋์ ๊ฒ์ํ์ง ๋ง์ญ์์ค. ๋์ ์ ๋ฌธ์ ๋ฅผ ์ด๊ณ
dae
ํ์ผ๊ณผ ํด๋นthree.js
์ฝ๋๋ฅผ ์ ๊ณตํ์ญ์์ค.