Three.js는 웹에서 3D 그래픽을 생성하고 조작할 수 있는 JavaScript 라이브러리입니다. 이번 포스트에서는 Three.js를 사용하여 광택 및 반사 효과를 구현하는 방법에 대해 알아보겠습니다.
Three.js 설정
먼저 Three.js를 사용하기 위해 해당 라이브러리를 웹 페이지에 추가해야 합니다. HTML 파일의 <head>
태그 안에 다음 코드를 추가하여 Three.js를 가져옵니다.
<script src="https://threejs.org/build/three.js"></script>
재질(Material) 설정
광택 및 반사 효과를 구현하기 위해 Three.js의 재질(Material)을 설정해야 합니다. 재질은 물체의 표면을 나타내는 속성으로, 광택과 반사 효과를 조절할 수 있습니다. 다음은 재질을 생성하는 방법입니다.
const material = new THREE.MeshPhongMaterial({
color: 0x404040, // 재질의 색상
specular: 0xffffff, // 광택의 색상
shininess: 100, // 광택의 강도
});
MeshPhongMaterial
은 Three.js에서 기본으로 제공하는 재질 중 하나로, 광택과 반사 효과를 지원합니다.
광원 설정
Three.js에서 광택 효과를 구현하기 위해 광원(Light)을 추가해야 합니다. 광원은 재질에 반사되는 빛을 제공하는 역할을 합니다. 다음은 Directional Light(직사광)을 설정하는 예시입니다.
const light = new THREE.DirectionalLight(0xffffff, 1); // 빛의 색상, 강도
light.position.set(0, 1, 0); // 빛의 위치
scene.add(light);
위의 코드에서 0xffffff
은 흰색을 뜻하며, 1은 빛의 강도를 나타냅니다.
반사 효과 설정
광택과 반사 효과를 구현하기 위해 Three.js의 Reflective
속성을 이용합니다. Reflective
는 재질에 반사되는 객체를 생성하는 속성으로, 재질과 광원이 함께 사용됩니다. 다음은 반사 효과를 설정하는 예시입니다.
const reflectiveMaterial = new THREE.MeshStandardMaterial({
color: 0x404040, // 재질의 색상
envMap: reflectionCube, // 반사되는 이미지
});
envMap
은 반사되는 이미지를 설정하는 부분인데, 이 부분은 Cube Camera(큐브 카메라)를 사용하여 설정할 수 있습니다.
결론
Three.js를 사용하여 광택 및 반사 효과를 구현하는 방법에 대해 알아보았습니다. Three.js의 재질과 광원, 반사 효과를 설정하여 웹에서 뛰어난 3D 그래픽을 만들 수 있습니다. 이를 통해 웹 상에서 보다 흥미로운 사용자 경험을 제공할 수 있습니다.