Three.js
[Three.js]WebGL
jeong_rice
2024. 9. 9. 13:01
WEBGL 이란?
WEB Graphics Libary의 약자인 WEBGL은 OpenGL ES를 웹에서 사용가능하도록 자바스트립트 언어 바인딩으로 만든 것입니다.
웹 상에서 2D나 3D 그래픽을 렌더링 하기 위해서 HTML5 Document에 Canvas를 만들고 Javasript에 랜더링을 위한 함 수를 나열합니다.
WEBGL은 three.js를 사용하여 3D그래픽을 만들어줍니다. 3차원이므로 x,y축 뿐만 아니라 깊이(depth)를 의미하는 z축도 이용을 하여 상하좌우앞뒤 모든곳으로 이동 이 가능합니다.
WEBGL에서 기본적으로 알아야 하는 용어
정점(vertex)
|
정점은 3차원 개체의 가장자리의 결합을 형성하는 점입니다. 자바스크 립트 배열을 사용하여 정점을 수동으로 저장하고 정점 버퍼를 사용하여 렌더링에 전달합니다.
|
인덱스(index)
|
정점을 식별하는 숫자값으로 메쉬를 그리는데 사용을 합니다.
|
버퍼(buffer)
|
데이터를 가지고 있는 WebGKL의 메모리 영역입니다
|
메쉬(mesh)
|
점,선,삼각형으로 하나이상의 다각형을 구성하고 이 다각형을 이용하여 메쉬를 형성합니다.
|
셰이더(shader)
|
정점,변형,재질,조명,카메라가 상호작용하여 특정 이미지를 만드는 방법 을 정의 합니다.
|
렌더링은 3차원 공간에 객체를 2차원 화면인 하나의 장면에 바꿔 표현합니다. 렌더링 과정은 변환과 색칠로 나눠집니다.

- CG 프로그램의 시야는 카메라에서 물체를 보는 것과 비슷합니다.
- 카메라는 만들어진 메쉬(물체)를 보고 시야 범위(각도)를 지정합니다. 기본값은 50 도이며 숫자가 작아질수록 카메라와 물체 사이가 가까워집니다.
- 너무 가까워지면 카메라가 보는 시야각 뒤로 물체가 이동하고 너무 멀어지면 물체가 시야에서 사라 지기 때문에 45~75도 사이의 값을 많이 지정합니다.
결과 보고서
과제를 수행하면서 컴퓨터 그래픽스를 THREE.JS로 이용하여 3차원 렌더링이 가능 하며 js를 이용하여 다각형을 만들고 다양한 각도로 장면을 이동하며 볼 수 있습니 다.
x축과 y축으로 이동 뿐만 아니라 z축으로 이동하여 모든 면으로 이동합니다. 물체 메쉬의 재질을 적용하고 색과 모형을 변경가능합니다. 또한 물체에 텍스쳐를 입힐 수 있습니다. 3D모델링을 적용하여 모델링을 360도로 돌려 볼 수 있게 제작할 수 있으며 게임 그래픽을 이용하여 간단한 게임을 만들 수 있습니다. 이외에도 화면에 서 부드럽게 움직이는 웹페이지를 제작할 수 있습니다.