본문 바로가기
Three.js

Three.js 개요-Overview

by ses jeon 2019. 9. 27.

Three.js는 Javascript로 웹페이지상에서 3d 엔진을 구현하게 해주는 Flatform입니다.

3d 엔진이 여러가지 이용분야가 있겠지만, 주로 궁긍적으로 3d게임을 많이 쓰므로,

게임 엔진이라고 부르겠습니다. 

 

Slant라는 이것저것 비교해주는 사이트에서 2019년 9월, Three.js 어느정도 수준의 엔진인지 알수가 있습니다.

다음 페이지를 보시죠.

https://www.slant.co/topics/3777/~best-open-source-javascript-3d-engines

 

Slant - 6 Best open source JavaScript 3D engines as of 2019

Babylon.js, Three.js, and PlayCanvas are probably your best bets out of the 6 options considered. "Actively developed" is the primary reason people pick Babylon.js over the competition. This page is powered by a knowledgeable community that helps you make

www.slant.co

 

저는 2014년쯤 three.js를 접하였고, 선택을 한 첫번째 이유는 "이름이 멋있어서" 였습니다ㅎ. 

 

1위를 하고 있는 바빌론은 기본만 살짝 봤기 때문에 자세히 알순없으나, 일단 three를 써본 장점과 단점을 간략히 적어보겠습니다.

 

장점-

1. 엄청난 업데이트 속도

6개월정도 이것저것 설정을 보고, 3d에 익숙해질려는 찰나에 다시 접속해보니, 과거 버전과 호환이 안될 정도로 업데이트가 되어있더군요. 당시에는 정말 짜증이 많이 났으나, 지금 생각해보면 three.js 운영자가 엄청 공을 들여 관리하고 있다는 것이 느껴집니다. 그래서 업데이트가 빨라서 장점은, 각종 3d게임 엔진의 최신 규격이 빼곡히 들어있다는 겁니다. 무료 엔진치고는 정말 기능이 많아요. 다 보지 못할만큼. 그게 Javascript의 고급 사용자에게는 많은 도움이 됩니다. 물론 이제는 기능이 많이 정착되고 예전만큼 많이 바뀌지는 않을겁니다.

 

2. Opengl과 비슷한 규격

예를 들어 column-major라고 매트릭스 규격이 Opengl를 따랐습니다. 바빌론 같은 경우는 반대더군요. 아마 무료엔진이고, 개인이 만드는 엔진이라 일반적인 오픈 소스의 규격을 따라가는것 같습니다. 그래서 Opengl류로 만들어진 여타 게임 엔진과 규격이 비슷해서 적응하기 좋았습니다.

 

단점-

1. 업데이트 속도

장점1과 같은 내용인데, 개인이 만드는거라 규격이 들쑥날쑥하고 많이 바뀌었습니다. 뭐 현재는 많이 안정되어있습니다.

그리고, Javascript에 미숙하면 바뀐 버전에 예전 소스가 적용이 안될때 당황할 겁니다. 그러나 어차피 3d 게임에 적응하는거는 어떤 플렛폼을 이용하더라도 고급 사용자가 되야할 것입니다. 엄청난 공부량과 시행착오가 필요하죠.

 

2. 바빌론(babylon)에 비해 대기업 서포트가 아니다

바빌론은 Microsoft에서 밀어준다고 합니다. 아무래도 코딩의 큰 목적이 돈벌이니까 구미가 당기실 겁니다. 그러나 저는 Three.js 도 매력적인것 같네요. 어차피 "고급 사용자가 되면 그 안의 내용은 통한다" 이게 정답이 아닐까요. Three.js에 적용이 된다면 다른 게임 엔진도 쉽게 접근 가능할 겁니다.

 

즉, Javascript 3d 게임 엔진을 배우고 싶다면 선택하셔도 됩니다. 

https://threejs.org/

 

three.js – JavaScript 3D library

 

threejs.org

 

'Three.js' 카테고리의 다른 글

Three.js - Animation system  (0) 2019.10.15
Three.js-key event  (0) 2019.10.10
Three.js-move page, loading  (0) 2019.10.01
Three.js-module system  (0) 2019.10.01
Three.js - Settings  (0) 2019.09.27

댓글