나는 여전히 OpenGL ES 3.0을 가르친다

2 hours ago 3

컴퓨터 그래픽스 입문 수업의 목표는 범용 렌더러가 아니라 3D 장면 구현이며, OpenGL ES 3.0은 이 목표에 필요한 그래픽스 API와 추상화를 배우는 데 여전히 유용함 WebGL2 호환성 덕분에 학생들이 C++ 예제를 웹으로 옮겨 자신의 사이트에 공개할 수 있고, 여러 플랫폼에서 같은 코드와 셰이더를 활용할 수 있음 드라이버가 동기화를 처리해 초기 설정 부담을 줄여주지만, 드라이버 오버헤드와 오래된 API의 혼란스러운 자원 관리 방식을 감수해야 함 SSBO, 컴퓨트 셰이더와 GPU 주도 렌더링 등은 ES 3.0에서 구현할 수 없어 개념 위주로 가르치며, 하드웨어 레이 트레이싱과 다중 스레드 명령 생성도 수업의 구현 범위 밖에 있음 최신 API나 프레임워크로 전환하려면 전체 수업을 재작성할 만큼의 이점이 필요하며, API를 직접 배우고 그 위에 추상화를 만드는 교육 목표에서는 아직 ES 3.0의 장점이 남아 있음 입문 수업에서 API 전환을 고민하는 이유 SAE Institute Geneva의 한 학기 분량 컴퓨터 그래픽스 입문 모듈은 수년간 OpenGL ES 3.0을 사용해 왔으며, 최신 API로 언제 전환할지가 지속적인 고민이었음 11월 Graphics Programming Conference에서는 OpenGL에서 최신 API로 옮겨 더 나은 그래픽을 구현한 사례들이 나왔음 Teardown의 원래 게임은 OpenGL 3.3, X-Plane의 렌더링 엔진은 OpenGL 2.1을 사용했음 관련 자료는 컨퍼런스 후기와 발표 목록에서 확인할 수 있음 교육 측면에서는 Matthieu Delaere의 「Bridging Pixels and Code: Teaching Computer Graphics to Technical Artists」 와 Mike Shah의 발표가 전환 필요성을 다시 생각하게 했음 전자는 학생이 래스터라이저를 처음부터 만드는 데 초점을 맞춤 후자는 튜토리얼 이후의 학습 단계에 초점을 맞췄음 API를 바꾸려면 모든 수업 자료를 이식하고 새 개념에 맞춰 수정해야 하므로, 기존 API보다 충분히 가치 있는 전환이어야 함 수업 목표와 플랫폼 선택 최종 과제는 그래픽스 API로 특정 3D 장면을 구현하는 것이며, 데이터 기반으로 동작하는 범용 3D 렌더러를 만드는 것이 아님 카메라 시점에서 장면을 컬링한 뒤 각 오브젝트를 코드에서 직접 그리는 구현도 허용함 수업은 learnopengl.com의 구성을 따르...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵