Three.js, A-frame 등의 라이브러리 학습에 앞서 WebGL과 OpenGL의 차이점에 궁금증이 생겼다.
둘 모두 2d, 3d 등의 벡터 그래픽을 표현할때에 사용된다.
OpenGL은 Open Graphics Library의 약자로 C언어를 기반으로 하고 있다.
GPU를 이용한 하드웨어 가속화를 통해 렌더링을 하며 주로 데스크탑 어플리케이션 등에 사용된다.
예제로는 가상현실, 시각화, 비디오 게임등이 있다.
WebGL은 Web Graphics Library의 약자로 OpenGL ES 2에서 파생되었다.
OpenGL ES는 OpenGL에서 파생된 subset이다.
WebGL은 자바스크립트를 사용하며 HTML Canvas에 2d, 3d를 표현해내는 역할을 한다.
OpenGL에 뿌리를 두고 있어 OpenGL의 기능들을 웹에서 표현해준다.
즉 OpenGL을 웹에서 표현하기 위해 나온 녀석이라고 생각하면 된다.
WebGL은 OpenGL의 모든 기능을 지원하지는 않는다.
geometry shaders, tessellation shaders, and compute shaders 등의 기능들은 OpenGL에서만 사용이 가능하다.
OpenGL이 2d, 3d를 표현하기 위해 사용되어지는 라이브러리이며 웹에서 2d, 3d를 표현하고 OpenGL이 제공하는 기능들을 사용하기 위해 자바스크립트 기반의 WebGL이 나온것을 알 수 있다.