ํ์์ ๋บ ์์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ฑด๋ฌผ์ ์ค๊ณฝ๊ณผ ์๋ฐ์ ์ค๊ณฝ์ด ์์ต๋๋ค. ๊ฑด๋ฌผ์ ์๋ฆฌ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๊ฑด๋ฌผ์ ์ธ๊ณฝ์ ์ ๋์ด๋งํผ ๋์ถ ์์ผฐ์ง๋ง ์ด์ ์ค์์์ ์๋ฐ์ ์ ๊ฑฐํด์ผํฉ๋๋ค.
๊ฐ์ฌ
๋๋ ๋ต์ ์ฐพ์์ต๋๋ค-๊ทธ๊ฒ์ด ์ต์ ์ ๋ฐฉ๋ฒ์ธ์ง ํ์คํ์ง๋ ์์ง๋ง ์๋ํฉ๋๋ค.
๋ฐ๊นฅ ์ชฝ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ์๊ณ ๋ฐฉํฅ์ผ๋ก ์ถ๊ฐ ํ ๋ค์ ๋นํธ๋ฅผ ์ถ๊ฐํ์ฌ ๋์ถ ํ ๋ชจ์์ผ๋ก ๋ณํํ๊ธฐ ์ ์ ํจ์ค์ ๋ฐ ์๊ณ ๋ฐฉํฅ์ผ๋ก ์ ๊ฑฐํฉ๋๋ค.
var path = new THREE.Path();
// outer clockwise
path.moveTo(-10, 10);
path.lineTo(10, 10);
path.lineTo(10, -10);
path.lineTo(-10, -10);
path.lineTo(-10, 10);
// inner anti-clockwise
path.moveTo(-5, 5);
path.lineTo(-5, -5);
path.lineTo(-2, -5);
path.lineTo(-2, 5);
path.lineTo(-5, 5);
// inner anti-clockwise
path.moveTo(2, 5);
path.lineTo(2, -5);
path.lineTo(5, -5);
path.lineTo(5, 5);
path.lineTo(2, 5);
var height = 20;
var shapes = path.toShapes();
var solid = new THREE.ExtrudeGeometry(shapes, { amount: height, bevelEnabled: false });
var mesh = new THREE.Mesh(solid, materials['building']);
mesh.position.y = height;
mesh.rotation.x = 90 * Math.PI * 2 / 360;
scene.add(mesh);
์ด๊ฒ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/