OpenGL? WebGL?? WebGPU???

2024. 3. 26. 21:37하고싶은거 하thㅔ요/3D

3D를 공부하기 시작하면서, WebGL과 OpenGL은 빠지지 않고 한 번쯤은 들어보는 단어이다.

그럼 대체 이것들이 무엇이고, 3D가 컴퓨터에서 돌아가기 위해서 어떻게 동작하는지는 기본으로 알아야한다고 생각한다.

 

OpenGL : Open Graphics Library의 줄임말로 무려 1992년 크로노스 그룹에 의해 발표된 2D, 3D API(규격서)이다. 라이브러리와는 기대와는 달리 구현없이 규격에 대한 정의만 있다.

 

OpenGL은 로우레벨 API라 거의 모든 것을 수동으로 설정해야하고, 그마저도 수학적인 지식이 갖춰져야 편하다고 한다.

Microsoft에서 개발한 DirectX와 Apple도 한때 애용했지만, 자체적인 Metal 을 만들면서 OpenGL은 점유율을 점점 잃었고, Vulkan을 개발하기에 이른다는 슬픈 역사도 있다. (DirectX와 Metal도 함께 알아보도록 하자)

 

최신버전은 2017년에 발표한 4.6버전이 마지막이고, Vulkan보다는 예전 기술이지만 오히려 OpenGL이 더 높은 사용량을 자랑한다.(응?)

OpenGL의 역사가 여간 길다보니 드라이버가 베베 꼬일대로 꼬여버려 복잡도가 어마어마 하다고, 그래서 Vulkan을 개발할 때는 스펙을 최소화하고 개발자에게 대부분의 일을 위임했더니 사용이 엄청 어려워졌다는 후문이 있다. 그래서 결국 최신에 개발된 Vulkan을 놔두고 OpenGL이 높은 사용량을 자랑하게 된 것이다.(ㅎ..)

 


 

그렇다면 웹에서 3D를 사용할 때, 빈번하게 접하는 WebGL은 무엇일까?

WebGL : 브라우저 환경에서 OpenGL을 플러그인 도움 없이 공식적으로 사용할 수 있도록 크로노스 그룹에서 제정한 웹 그래픽스 API!!!!!

(세상에, 별도 플러그인 없이 바로 OpenGL이 사용가능하다니 너무 좋은 세상이에요)

 

지원중인 브라우저는 크롬, 엣지, 사파리, 파이어폭스, 오페라 가 있다.

게다가, 디버깅 가능한 WebGL API를 통해 WebGL 콘텐츠를 최적화하거나 GPU 문제를 수집할 수 있다. (https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug_renderer_info)

 

 


 

 

WebGL은 뛰어넘는 다음 세대의 기술이 있다던데, 그것은 바로 WebGPU.

WebGPU : WebGL을 단점을 보완하고자, W3C GPU for the Web Community Group이 애플, 모질라, MS, 구글 등의 엔지니어들과 함께 개발한 API이다.

 

2024년 3월 기준으로 크롬, 엣지, 오페라는 지원 중이며, 다른 브라우저는 아직인 것 같다.

결국, 브라우저가 지원해줘야 web에서 작업을 할 수 있을 것 같긴 하다.

아직은, 멀고 먼 webGPU의 이야기지만, 미리 공부하고 비교해서 머리속에 꽉꽉 채워놔야겠다.

반응형