Three.js란 무엇인가?
Three.js는 웹페이지에서 3차원 그래픽을 표현할 수 있도록 도와주는 자바스크립트 라이브러리, API
Three.js는 특정 웹 브라우저나 플러그인에 의존하지 않고 자바스크립트 언어를 사용하여 웹 컨텐츠의 한 공간을 GPU에서 가속되는 3차원 컨텐츠를 만들 수 있도록 도와준다.
이를 가능하게 된 배경에는 WebGl 의 출현으로 가능하게 되었다.
Three.js에서 WebGL의 이해가 중요한 것 같다. 밑에서 WebGL에 대해서 알아보자.
WebGL이란 무엇인가?
WebGL은 Web Graphics Library의 약자로 웹상에서 2D 및 3D 그래픽을 렌더링하기 위한 로우 레벨 Javascript API이다. OpenGL ES 2.0을 기반으로 브라우저 엔진에 내장된 HTML5 Canvas 요소 위에 그려진다.
WebGL의 장점
-
로열티 없이 누구나 사용 가능하다.
-
렌더링 가속화를 지원하는 그래픽 하드웨어(그래픽 카드 등)을 활용한다.
-
별도의 플로그인이 필요 없으며, 웹 브라우저에 내장되어 실행된다.
-
OpenGL ES 2.0을 기반으로하므로, 이미 OpenGL API에 대한 경험이 있다면 다루기가 쉽다.
-
자바스크립트 프로그래밍이 가능하다. 자바스크립트는 자동 메모리 관리를 지원하기 때문에 메모리를 수동으로 할당할 필요도 없고 WebGL이 자바스크립트의 기능을 상속 받는다.
-
모바일 브라우저에서도 사용 가능하다(모든 모바일 브라우저를 의미하진 않습니다)
정리하자면, WebGL 을 지원하는 브라우저에서 사용가능하며, 자바스크립트로 프로그래밍이 가능한게 큰 매력인 것 같다. 스마트팩토리를 하는 나의 경우에는 실제 공장의 공간을 비슷하게 구현하여 웹에서 3D로 모니터링을 할 수 있도록 사용하면 좋을 것 같다.
렌더링(Rendering)
렌더링은 컴퓨터 프로그램을 사용하여 모델에서 이미지를 생성하는 프로세스이다. 렌더링 유형은 아래와 같다.
- 소프트웨어 렌더링
- 모든 그래픽 계산을 CPU의 도움으로 처리
- 하드웨어 렌더링
- 모든 그래픽 계산을 GPU에 의해 수행
이 말은, 서버 사이드 렌더링과 클라이언트 사이드 렌더링을 통해 수행할 수 있다.
즉, 서버 사이드 렌더링으로 GPU를 통해 렌더링을 하거나, 클라이언트 사이드 렌더링으로 CPU에서 로컬로 수행할 수 있다는 장점이 있다.
브라우저의 WebGL 지원 여부
브라우저 | 지원여부 |
---|---|
Mozilla Firefox | 버전 4.0 이상 |
Google Chrome | 버전 9 이상 |
Apple Safari | 사파리 5.1 이상, 활성화 여부 확인 |
MS Edge | 지원 |
internet explorer | 지원안함, 하지만 IE11부터 마이크로소프트도 WebGL을 지원을 시작 |
- Three.js는 구버전의 IE를 제외하고는 현재 모든 브라우저에서 제공된다고 보면 된다.
준비물
Three.js는 자바스크립트 라이브러리 이므로, 많은 준비물을 요구하지 않는다.
- TEXT 에디터
- 웹 브라우저
- HTML, JS, CSS
NEXT
다음 시간에는 웹서버를 구축하고, Three.js를 직접 구현해 보도록 해보자.
- 웹서버 : python - FastAPI
- 웹브라우저 : Chrome