WebGL과 three.js
<WebGL>
WebGL은 웹 기반의 그래픽 라이브러리입니다. HTML5의 <Canvas> 요소를 사용하여 플러그인의 설치 없이 3차원 컴퓨터 그래픽을 사용하기 위한 프로그램 인터페이스를 제공하며 Javascript 프로그래밍 언어를 통하여 사용할 수 있습니다. WebGL이 지원되는 브라우저는 Internet Explorer 11, Chrome, FireFox, Opera, Safari가 있습니다. WebGL은 비영리 컨소시엄 테크놀로지 크로노스 그룹에 의해서 관리되고 있으며, 애플, 구글, 모질라, 오페라가 WebGL 워킹 그룹에 포함되어 있습니다.
WebGL이 갖는 장점은 아래와 같습니다.
1. 별도의 비용 지불없이 모든이가 사용할 수 있는 오픈 표준입니다. 2. 게임 구현이 가능할 정도로 빠른 그래픽스 하드웨어 가속 렌더링을 지원합니다. 3. OpenGL ES 2.0을 기반으로 하므로 이에 대한 |
<WebGL Architecture>
개발이 익숙한 개발자라면 WebGL에서도 쉽고 빠르게 개발이 가능합니다. 4. 3D 그래픽 콘텐츠 표현에 있어 별도의 플러그인 설치가 필요 없습니다. 5. 특정 운영체제(OS)에 속박되지 않으므로 플랫폼/OS마다 따로 개발할 필요가 없습니다.
최근의 각 브라우저들은 기존에 사용되어왔던 플러그인과 ActiveX를 전면적으로 사용을 제한하기로 했으며, 기존의 플러그인을 통하여 표출됐던 기능들을 HTML5의 기능으로 대체하기로 했습니다. 특히, 그래픽 부분에 대해서는 어도비의 플래쉬와 같은 플러그인도 제한이 되면서 WebGL에 대해서 사람들이 관심을 가지게 됐습니다. |
WebGL은 2D뿐만 아니라 3D그래픽도 사용이 가능하며, 기존 OpenGL을 통해 개발했던 개발자들은 WebGL에 쉽게 접근이 가능하다는 장점으로 웹 기반 그래픽 부분은 WebGL을 통한 개발들이 많아지기 시작했습니다. 그 중에 소개시켜드리고 싶은 라이브러리는 three.js입니다. three.js는 WebGL 기반 javascript를 이용하여 구현하는 GPU가속 3D 애니메이션 엔진입니다. 2010년 4월에 처음 릴리즈 됐으며, Canvas, SVG, WebGL로 렌더링이 가능하며, 카메라 변경, 모델처리 등을 간단하게 사용할 수 있습니다. 간단하게 큐브가 회전하는 씬을 만들어 보겠습니다. 아래와 같은 코드를 입력할 시 큐브 3D 오브젝트를 만들 수 있습니다.
<three.js를 사용한 Cube 표출>
|
맨 처음 장면을 만들고 카메라를 등록합니다. Canvas에서는 카메라를 통해 장면을 그려주게 됩니다. 이후 큐브를 만들기 위하여 먼저 BoxGeometry를 생성하고 그것을 보여줄 Material를 등록하게 됩니다. Material은 GameObject의 표면을 보여주는 설정객체로, Web에서의 CSS와 비슷한 개념이 되겠습니다. 이렇게 만든 Geometry와 Material을 가지고 Cube라는 Mesh를 만들게 되며, 이것을 장면에 등록하게 되면 화면에 Cube가 나타나게 될 것입니다. 큐브까지 생성하게 되면 request Animation Frame 함수를 호출하여 렌더링용 루프(loop)를 호출해야 합니다. request Animation Frame 함수는 setInterval함수보다 CPU 사용률을 줄일 수 있으며, 윈도우에서 사용자가 다른 탭으로 이동하거나 창을 최소화 시켰을 경우에는 실행되지 않는 장점이 있는 메서드입니다. 이렇게 만들어진 렌더링용 함수에 큐브에 움직임을 주는 기능을 추가 시키면 되겠습니다. 스크립트 소스 20줄 미만으로 사용자는 큐브가 돌아가는 애니메이션을 볼 수 있습니다. 아래 이미지는 three.js를 사용하여 다양한 웹어플리케이션을 만든 예제입니다. WebGL과 three.js를 사용하면 웹에서 별도 플러그인 설치 없이 좋은 퀄리티의 3D 어플리케이션을 만들 수 있습니다. |
여러분들도 한번 WebGL과 three.js의 세계로 빠져보는 것은 어떨까요?
>>아래 이미지를 클릭하시면 해당 페이지로 이동합니다.
AR과 VR 그 사이의 MR 기술
증강현실(Augmented Reality)은 카메라로 찍은 실제 화면에, 3차원의 가상 이미지를 얹어서 하나의 영상으로 보여주는 기술입니다. 가장 쉬운 예로 ‘포켓몬GO’, ‘SNOW카메라’가 있습니다. ‘포켓몬GO’와 ‘SNOW카메라’는 증강현실을 이용한 앱으로, 현실에서 카메라를 비추면 해당하는 장소에 가상 3D이미지가 겹쳐져 보입니다. 실제 사용자는 이러한 이미지를 이용하여 원하는 모습을 |
보여준다거나, 자신이 소유할 수 있도록 해주어 현실적인 느낌이 더욱 잘 느껴질 수 있도록 해주는 앱입니다.
<포켓몬 GO>
가상현실(Virtual Reality)은 3차원 환경의 가상세계를 구현해내는 기술입니다. AR기술 이 현실세계에 3차원의 물체를 불러온다면, VR은 가상세계로 체험자가 들어가는 것이라고 볼 수 있습니다. 현재 360도 카메라가 상용화되면서 가상세계의 몰입도가 더욱 넓어졌습니다. 사용자는 VR기기를 착용하고 5분내에 지구 반대편에 있는 나라로 이동을 할 수 있게 되는 것입니다. 현재에도 게임업계는 VR기술을 도입하여 게임을 제작하고 있으며, ‘HTC Vive’, ‘삼성 기어 VR’, ‘SONY의 PS VR’등으로 VR을 체험해 볼 수 있습니다. 실제 VR에 대한 사람들의 관심이 많으며, |
PS VR의 경우 예약 이틀 만에 완판을 달성하고 현재까지 100만대 가량 판매가 된 것으로 집계되고 있습니다. 하지만 VR이라는 HW요소에 비해 SW요소는 사용자가 만족하는 수준에 미치지 못하고 있습니다. 이는 VR기술이 ‘초기단계’라는 것과 “컨텐츠가 일회성이기 때문에 한계가 있다.”고 분석되고 있습니다. 융합현실(Mixed Reality)은 VR과 AR을 특성을 동시에 가질 수 있는 기술입니다. 현실 세계와 가상의 정보를 결합하여, 실감나는 가상세계를 만들어 줍니다. MR은 사실감을 극대화한 3D영상을 현실 공간에 구현하며 이를 통해 사용자는 강한 몰입감을 느낄 수 있습니다.
‘매직 리프’사의 영상은 이미 MR기술로 유명해져 있습니다. MR기술은 AR이나 VR처럼 관람객이 별도의 기기를 착용하지 않아도 됩니다. 현실에서 가상 이미지를 직접 눈으로 확인할 수 있는 것입니다. |
MR기술을 적용한 사례로 ‘마이크로소프트’사에서 ‘홀로 렌즈’라는 기기를 공개합니다. 3D프린터와 스카이프 등의 기술이 내장되어 있으며, 현실 세상에 가상 이미지를 불러와 사용자가 직접 물체에 3D홀로그램을 입혀 완성되지 않은 제품의 완성도를 미리 확인 한다거나, 한정적인 TV 프레임을 시야각 제한 없이 실제 경기장에서 관람하는 것처럼 시청할 수 있습니다. 영상을 통해 간접적으로 체험할 수 있듯이, 만약 이대로 제품이 출시된다면 인류 IT기기 역사에 한 획을 다시 쓰는 것이라고 생각이 됩니다.
[강추기사모음] 이 기사 보셨나요?
이 코너에서는 함께 공유하면 좋을만한 기사들을 선정해 보았습니다. 기사 제목을 선택하시면 해당 페이지로 이동합니다. 잘 알려지지 않은 기사중에서 다른 직원들과 나누고 싶은 정보가 있다면 뉴스레터 편집실로 알려 주세요.
|
≫ [인터뷰]로봇에 미친 청년 CEO 오상훈 럭스로보 대표 (출처:한국경제/2017.2.25)
≫ 구글이 제시한 '관리자의 자격' (출처:ZDNet Korea/2017.2.27)
≫ IT프로젝트 성공률 높은 조직, 무엇이 어떻게 다른가 (출처:CIO Korea/2017.3.2.)
≫ 신중한 계약만으로는 역부족··· IT 아웃소싱 '관리' 원칙 7가지 (출처:CIO Korea/2017.3.8)
≫ 4차 산업혁명과 플랫폼 (출처:SW공학포털/2017.3.13.)
≫ 막 오르는 AR·VR 시대··· 업체간 전투도 '볼거리' (출처:CIO Korea/2017.3.10)
≫ IT전문가로 성공하는 데 필요한 10가지 역량 (출처:CIO Korea/2017.2.13)
≫ "IT 개발자?…부품과 다를 바 없어요" (출처:ZDNet Korea/2017.3.21)
|