[javascript] Three.js를 사용하여 웹에서의 3D 쇼핑몰 개발

최근에는 웹 개발에서 3D 요소를 사용하는 것이 인기를 얻고 있습니다. 특히 3D 쇼핑몰은 사용자에게 상품을 더욱 생생하게 전달할 수 있는 장점이 있습니다. 이번에는 Three.js를 사용하여 웹에서의 3D 쇼핑몰을 개발하는 방법에 대해 알아보겠습니다.

Three.js란?

Three.js는 WebGL을 기반으로 동작하는 JavaScript 3D 라이브러리입니다. 이 라이브러리를 사용하면 브라우저에서 3D 그래픽을 렌더링하고, 모델을 생성하고, 애니메이션을 추가할 수 있습니다. Three.js는 웹 개발자들에게 쉽고 강력한 3D 기능을 제공하여 다양한 분야에서 사용될 수 있습니다.

3D 모델 생성

Three.js를 사용하여 3D 모델을 생성하는 것은 매우 간단합니다. 먼저 Three.js 라이브러리를 웹 페이지에 추가하고, 캔버스 요소를 생성합니다.

<canvas id="myCanvas"></canvas>

<script src="https://threejs.org/build/three.js"></script>

다음으로 Three.js의 기본 요소인 Scene, Camera, Renderer를 생성합니다.

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer({ canvas: document.getElementById('myCanvas') });
renderer.setSize(window.innerWidth, window.innerHeight);

이제 3D 모델을 생성하고 scene에 추가할 수 있습니다. 예를 들어, 상자 모양의 3D 객체를 생성하고 scene에 추가하는 코드는 다음과 같습니다.

var boxGeometry = new THREE.BoxGeometry(1, 1, 1);
var boxMaterial = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var boxMesh = new THREE.Mesh(boxGeometry, boxMaterial);
scene.add(boxMesh);

조명과 텍스처 추가

3D 모델에는 조명과 텍스처를 추가하여 더욱 생동감 있게 만들 수 있습니다. Three.js를 사용하면 다양한 종류의 조명과 텍스처를 쉽게 적용할 수 있습니다.

var light = new THREE.DirectionalLight(0xffffff, 1);
light.position.set(1, 1, 1);
scene.add(light);

var textureLoader = new THREE.TextureLoader();
var texture = textureLoader.load('texture.jpg');
var material = new THREE.MeshBasicMaterial({ map: texture });
var mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);

애니메이션 추가

Three.js는 애니메이션을 추가하고 제어하기 위한 기능도 제공합니다. 예를 들어, 3D 모델을 회전시키는 애니메이션을 추가하는 코드는 다음과 같습니다.

function animate() {
  requestAnimationFrame(animate);
  boxMesh.rotation.x += 0.01;
  boxMesh.rotation.y += 0.01;
  renderer.render(scene, camera);
}

animate();

결론

Three.js를 사용하면 웹에서 강력한 3D 쇼핑몰을 개발할 수 있습니다. 이 메시지에서는 Three.js의 기본 기능에 대해 간단히 살펴보았지만, Three.js는 더 많은 기능과 확장성을 제공합니다. Three.js를 사용해서 개인 프로젝트나 상업용 프로젝트를 개발해보세요. 오늘날 실시간 3D 그래픽이 필요한 다양한 분야에서 활용할 수 있습니다.

참고 자료