1. 개요
인터넷 브라우저 환경에서 OpenGL을 플러그인 도움 없이 공식적으로 사용할 수 있도록 Khronos Group에서 제정한 웹 그래픽스 API.정확히는 OpenGL ES를 기반으로 정의하고 있다. 자세한 설명은 여기
2. 버전 일람
- WebGL 1.0 - 2011년 3월 (OpenGL ES 2.0 기반)
- WebGL 2.0 - 2017년 2월 (OpenGL ES 3.0 기반)
3. 지원 중인 웹 브라우저
- Microsoft Edge[1]
- Safari
- Chrome - 모바일 포함. 자세한 정보는 Chrome Experiments 참조.
- Firefox
- Opera
4. 현황, 그리고 전망
도입된 이후 급 부상하여 오페라 미니를 제외한 모든 브라우저에서 지원하기 시작했으며, 2017년 이후로 하나둘씩 WebGL 2.0을 적용하기 시작했다. 웹 표준[2]은 아니지만, 거의 표준처럼 인식되어 가고 있다.WebGL 로 개발 시 브라우저(IE, 파이어폭스(웹 브라우저), 크롬(웹 브라우저). Safari)가 지원만 한다면 모든 플랫폼에서 동작이 가능하기에 스마트폰 이후의 주요 컨텐츠로 기대할 수 있다.
WebGL은 디버깅을 위한 extension으로 그래픽카드 하드웨어의 벤더와 렌더러 정보를 얻어내는 익스텐션을 가지고 있어서,[3] 이를 활용하여 하드웨어 정보수집이 가능하고, 여기서 좀 더 나아가면 개별 인터넷 단말에 대한 핑거프린팅도 가능하다. 예컨대 KT의 가정용 인터넷 서비스는 회선당 PC 단말 대수가 일정 이하로 제한되어 있는데, 자사 서비스 회선을 통해 인터넷에 접속하는 어떤 단말이 pc인지 여부를 확인하기 위해 WebGL을 사용해서 그래픽카드 정보를 획득[4]하고, 핑거프린팅 기법을 활용해서 몇 대의 서로 다른 단말이 하나의 회선으로 웹페이지를 불러들이고 있는지, 그리고 그 중에서 PC 하드웨어를 가진 것은 몇대인지(궁극적으로는 통신사의 추가 단말 서비스의 대상이 되는 단말인지 여부)도 알 수 있다.
5. 예시
6. 관련 문서
- OpenGL
- OpenCL
- 크로노스 그룹
- WebGPU - WebGL이 웹 브라우저에서 OpenGL을 사용하는것과 달리 플랫폼에 따라 Metal, Vulkan, DirectX 12와 같은 로우레벨 그래픽 API에 접근 할 수 있게 해 준다. 이 때문에 사실상 Compute Shader를 간신히 흉내만 내는 WebGL과는 다르게 적극적으로 웹 환경에서 GPGPU를 할 수 있게 된다.
[1] Internet Explorer의 경우 IE11이 부분적으로 지원하기는 하지만 완전하지는 않다.[2] 웹 표준이라 한다면 흔히들 W3C의 HTML5를 떠올린다. WebGL은 HTML5 표준 스펙에 정의되지 않은 완전히 별개의 스펙이므로 잘 구분하자.[3] https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug_renderer_info[4] https://kimtruth.github.io/2020/02/29/Big-K-is-watching-you/