[javascript] Three.js를 사용하여 웹에서의 3D 프로토타입 개발

웹 개발에서 3D 그래픽을 구현하기 위해 Three.js를 사용하는 것은 점점 더 일반적인 방법이 되어가고 있습니다. Three.js는 JavaScript 기반의 3D 라이브러리로, 브라우저에서 3D 객체를 만들고 조작할 수 있게 해줍니다. Three.js를 사용하면 애니메이션, 조명, 텍스처 등 다양한 3D 요소를 웹에서 구현할 수 있습니다.

Three.js 설치

Three.js를 사용하기 위해서는 먼저 Three.js를 다운로드하고 프로젝트에 포함해야 합니다. CDN을 통해 Three.js를 가져오거나 로컬에 패키지를 설치하여 사용할 수 있습니다.

CDN을 통한 설치:

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/110/three.min.js"></script>

로컬 설치:

npm install three

기본 구성 요소

Three.js를 사용하여 웹에서 3D 그래픽을 만들기 위해서는 몇 가지 기본 구성 요소를 알아야 합니다.

Scene (장면)

장면은 모든 3D 객체가 배치되는 곳입니다. Three.js에서는 THREE.Scene 클래스를 사용하여 장면을 생성할 수 있습니다.

const scene = new THREE.Scene();

Camera (카메라)

카메라는 장면을 보는 관점을 정의합니다. Three.js에서는 THREE.PerspectiveCamera 클래스를 사용하여 원근 카메라를 생성할 수 있습니다. 카메라는 위치, 시선, 초점 등의 속성을 가지고 있습니다.

const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

Renderer (렌더러)

렌더러는 장면을 그리는 역할을 합니다. Three.js에서는 THREE.WebGLRenderer 클래스를 사용하여 WebGL을 기반으로 한 렌더링을 수행할 수 있습니다. 렌더러는 화면 크기, 배경색, 그림자 등의 설정을 할 수 있습니다.

const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

Geometry (기하학적 모델)

기하학적 모델은 3D 객체의 형태를 정의합니다. Three.js에서는 다양한 기하학적 모델을 제공하며, 필요에 따라 사용할 수 있습니다.

const geometry = new THREE.BoxGeometry(1, 1, 1);

Material (재질)

재질은 객체의 색상, 질감, 광택 등을 정의합니다. Three.js에서는 다양한 종류의 재질을 제공하며, 필요에 따라 사용할 수 있습니다.

const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });

Mesh (메쉬)

메쉬는 기하학적 모델과 재질을 결합한 최종 객체입니다. Three.js에서는 THREE.Mesh 클래스를 사용하여 메쉬를 생성할 수 있습니다. 메쉬는 기하학적 모델과 재질을 인자로 받습니다.

const cube = new THREE.Mesh(geometry, material);
scene.add(cube);

애니메이션

Three.js를 사용하여 웹에서 3D 애니메이션을 만들 수도 있습니다. 애니메이션을 적용하기 위해서는 각 프레임마다 씬을 업데이트하는 render 함수를 작성해야 합니다.

function render() {
  requestAnimationFrame(render);

  // 애니메이션 로직 작성
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;

  // 장면을 그림
  renderer.render(scene, camera);
}

render();

결론

Three.js를 사용하여 웹에서의 3D 프로토타입을 개발하는 방법에 대해 알아보았습니다. Three.js는 간편한 API와 다양한 기능을 제공하여 웹 개발자들이 손쉽게 3D 그래픽을 구현할 수 있도록 도와줍니다. 자세한 사용법은 Three.js 공식 문서를 참조하시기 바랍니다.

참고 자료