OpenGL ES 3.0, 14년 된 API를 여전히 가르치는 이유

I still teach OpenGL ES 3.0

SAE Institute Geneva에서 컴퓨터 그래픽스 입문을 가르치는 저자는 OpenGL ES 3.0을 계속 사용한다. Windows, Linux, Android, Nintendo Switch, WebGL2까지 동일한 C++ 코드와 셰이더로 실행되는 뛰어난 이식성 덕분이다. 최신 API로의 전환은 모든 강의 자료를 다시 만들어야 하므로, 그만한 가치가 있는지 신중히 따져야 한다고 말한다.

OpenGL ES 3.0을 사용하는 내가 가장 좋아하는 이유는 emscripten과 함께 WebGL2와 호환된다는 점이다.
  1. socalgal2

    개인적으로 나는 OpenGL ES 3.0이나 어떤 OpenGL도 가르치지 않을 것이다. 왜냐하면 그 상태 머신(https://webgl2fundamentals.org/webgl/lessons/resources/webgl...)과 끔찍한 에러 시스템 때문에 버그를 추적하기가 어렵기 때문이다. 대신 나는 WebGPU를 가르칠 것이다. 이식성이 좋고 에러 메시지가 훌륭하기 때문이다.

    사람들이 반대하겠지만 나는 WebGPU가 이해하기 더 쉽고, 에러가 더 낫고, 상태 머신이 없고, C++, Rust, JS/TS 및 다른 언어에서 작동하며, 나중에 Metal이나 D3D12, Vulkan으로 옮기고 싶을 때 현대 GPU 프로그래밍에 더 가깝다고 주장하겠다.

    게다가 OpenGL(그리고 ES)은 학생들이 마주칠 수 있는 버그와 비호환성의 악몽인데, WebGPU는 이를 해결한다.

    그렇긴 하지만, 그 글은 Apple 플랫폼을 언급하는데, 학생들이 거기에 갇혀 있다면 ANGLE을 사용할 수 있다.

  2. hollowonepl

    Adam Sawicki가 이제 그렇게 관련성이 없다는 데 동의하지만, 또한 기술 학생들에게 현대성이 어디서 오는지 가르쳐 주는 값진 교훈이라고 믿는다.

    개인적으로는 1개월짜리 입문, 튜토리얼, 간단한 예제 하나 해보기, 한계 보여주기, 그리고 DX12와 Metal도 비슷한 원리를 따른다는 배경 이야기와 함께 Vulkan/WGPU로 넘어가는 것 이상으로 거기에 집중할 의미를 못 느끼겠다.

  3. proc0

    좋은 분석이다. 나는 왜 CPU에 비해 GPU에서 프로그래밍하기가 이렇게 복잡한지 궁금해해 왔다. 언어 패러다임의 문제일까, 아니면 하드웨어 설계의 한계일까? 나는 그래픽 API를 볼 때마다, 특히 Vulkan을 볼 때마다 항상 이 생각을 한다.

  4. yunnpp

    나는 어떤 API를 쓰는 것보다 소프트웨어 래스터라이저와 레이 트레이서를 작성하면서 그래픽스를 더 많이 배웠다. 목표가 특별히 GPU 렌더링을 가르치는 것이라면, OpenGL은 실제로 다른 것들보다 가르치기에 더 적합하다. 하지만 목표가 그래픽스와 렌더링 개념을 가르치는 것이라면, OpenGL 같은 것들은 그저 비참하고 역효과만 난다.

  5. avaer

    GLES는 그래픽스를 가르치는 나쁜 방법은 아니지만, 그것과 VK 사이에 중간 지대가 있었으면 좋겠다.

    GL의 최악의 부분은 스펙을 공부하지 않고는 절대 이해할 수 없는 신비로운 전역 상태다. 세상에는 기본적으로 GL이지만 뒤에서 전역 숨겨진 싱글턴(스레드별!) 헛소리가 없는 API가 필요하다.

이 날의 다른 글

2026-10-27