WebGL-001: About WebGL
Post

WebGL-001: About WebGL

http://www.khronos.org/webgl/에서 WebGL에 대한 정보를 얻을 수 있다.

webgl

WebGL은, HTML5를 기반으로하는 OpenGL ES 2.0의 JavaScript바인딩이다. OpenGL ES 2.0 기반답게, Vertex Shader / Pixel Shader(or Fragment Shader)를 통한 GPU 가속이 가능하다는 것이 특징인데, 가장 중요한 것은 별도의 플러그인 없이도(Adobe Flash Player, Java Applet, MS ActiveX, 혹은 VRML 등과 같은 웹브라우저 플러그인) 웹페이지 상에서 3D 그래픽을 표현할 수 있다는 것이다. 이는 Ubiquitous computing environment 환경에서는 큰 장점으로 작용한다. 어느 컴퓨팅 환경이든, WebGL 표준을 지원하는 Web browser만 설치되어 있다면, 동일한 3D 결과물을 얻을 수 있기 때문이다.

이러한 큰 장점을 지는 WebGL도 아직까지 여러 문제점을 지니고 있다.

첫째, 현재 모든 Web browser가 WebGL를 지원하지 않는다는 점이다. 현재는 Mac OS의 Safari, FireFox, Google Chrome등의 Web browser에서만 WebGL을 공식적으로 지원하고 있다. ‘MS의 Internet Explorer를 제외하고는 거의 다 지원한다’라고 할 수도 있지만, 지원하는 Web browser라 할지라도 아직 베타 버전에서만 지원하는 browser도 많다.

둘째, 모두들 우려하고 있는 바, JavaScript에서의 Bottleneck현상이다. Graphics Library의 특성상 화면의 갱신 속도는 매우 중요한 사항중 하나인데, Binary code도 아닌, Script 기반으로 동작하는 code는 상대적으로 느린 속도로 동작할 것이다. 고려해야할 사항은 WebGL이 동작하는 컴퓨팅 환경인데, 요즘같은 High performance desktop 환경에서야 만족할 만한 속도를 얻을 수 있겠지만, Mobile Computing환경에서 과연 Desktop환경과 동일한 적어도 비슷한 결과를 낼 수 있는가하는 것이 의문이다.

셋째, Web 환경의 http protocol로 3D 그래픽스의 고용량 데이터를 전송할때 발생할 지연 현상이다. 고용량의 Mesh data(Vertex/Index data)와 Texture데이터를 웹상에서 읽어들이는 방식은 local disk에 저장되어 있는 데이터를 읽는 방식보다 빠르지 않을 것이며, 열악한 인터넷 환경에서라면 그 문제는 더 심각해진다. 더욱이 Web Page를 방문할 때마다 데이터를 전송 받아야 하므로(사용자가 cache를 지운다면, 혹은 web page에 대한 cache를 지원하지 않는 환경이라면) 보다 많은 트래픽이 발생할 것이다.

넷째, 장점으로 언급된 하드웨어 가속 관련 인데 http protocol로 접근하게 될 GPU에 대한 보안 문제를 들 수 있다. GPU가 의도하지 않는 작업에 열중하느라 전력을 낭비한다면 문제가 아닐 수 없다.

이상 WebGL에 대한 내용을 간략히 적어보았다. 이 글에서는 단점이 큰 비중을 차지하고 있으나, 이는 WebGL의 가능성이 충분한 상황에서 굳이 언급할 필요는 낮아 보인다. WebGL이 아닌 또 다른 공개 표준이 존재한다면 모르겠지만 현재로써는 WebGL이 Web 상에서 3D Graphic을 표현하는 최선으로 보인다.

아래는 SIGGRAPH2009에서 발표한 WebGL에 대한 PDF자료이다. WebGL: OpenGL ES in JavaScript

아래는 WebGL에 대한 자료들이다.