자바스크립트로 3D 지구본 애니메이션 구현하기

개요

이번 프로젝트에서는 자바스크립트를 사용하여 3D 지구본 애니메이션을 구현해보겠습니다. 이 애니메이션은 지구본이 회전하면서 동시에 표면에 있는 지점들이 움직이는 효과를 만들어줍니다. 이를 통해 실제 지구의 모양과 움직임을 시각적으로 표현할 수 있습니다.

구현 방법

이 프로젝트에서는 Three.js 라이브러리를 사용하여 3D 지구본을 구현합니다. Three.js는 웹에서 3D 그래픽을 생성하고 제어하기 위한 라이브러리로서 애니메이션, 조명, 재질 등을 지원해줍니다.

단계 1: Three.js 설치

먼저 프로젝트에 Three.js를 설치해야 합니다. Three.js는 npm(Node Package Manager)을 통해 설치할 수 있으며, 아래 명령어를 터미널에 입력하여 설치합니다.

npm install three

단계 2: HTML 파일 설정

HTML 파일을 생성하고 Three.js를 사용할 준비를 합니다. 아래 코드를 HTML 파일에 추가합니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>3D 지구본 애니메이션</title>
    <style>
      body {
        margin: 0;
        overflow: hidden;
      }
    </style>
  </head>
  <body>
    <script src="main.js"></script>
  </body>
</html>

단계 3: 자바스크립트 파일 작성

지구본을 생성하고 애니메이션을 구현할 자바스크립트 파일을 작성합니다. 이 파일을 main.js라는 이름으로 저장합니다.

import * as THREE from 'three';

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

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

const geometry = new THREE.SphereGeometry(5, 32, 32);
const material = new THREE.MeshBasicMaterial({ color: 0xffffff, wireframe: true });
const earth = new THREE.Mesh(geometry, material);
scene.add(earth);

camera.position.z = 15;

function animate() {
  requestAnimationFrame(animate);

  earth.rotation.y += 0.01;

  renderer.render(scene, camera);
}

animate();

단계 4: 웹 애플리케이션 실행

웹 애플리케이션을 실행하여 3D 지구본 애니메이션을 확인해봅니다. 브라우저에서 HTML 파일을 열고, 지구본이 회전하면서 움직이는 모습을 확인할 수 있습니다.

마무리

이제 자바스크립트와 Three.js를 사용하여 3D 지구본 애니메이션을 구현하는 방법을 알아보았습니다. 이것은 단순한 예제일 뿐이며, Three.js를 사용하면 더 다양한 3D 그래픽을 만들 수 있습니다. Three.js 공식 사이트에서 다양한 예제와 자세한 API 문서를 참고하면 더욱 풍부한 3D 그래픽을 구현할 수 있습니다.

참고 자료