'Specification'에 해당되는 글 1건

  1. 2008/08/20 Hybrid OpenGL 3.0 Spec 공개
OpenGL 3.0 의 스펙이 8월 11일에 공개됐다. 드디어 나왔는데.. 아직까지의 느낌은 사실 잘 모르겠다.

일단 내가 눈여겨 보는 것은 Geometry Shader 와 DX 11 에 추가가 된 Compute Shader 같은 것들이다. 결론부터 말하면, 좀 실망이다. Geometry Shader 는 NVIDIA 그래픽 카드에서 프로그래밍 할때, 표준에서 지원이 되지 않아 NVIDIA extension 으로 프로그래밍 했는데, 이번에는 추가가 되지 않았다. 하지만 12개월 안에 추가가 될 공식 extension 에서 추가가 될 것이라고 언급하고 있다.

Compute Shader 는 NVIDIA 의 CUDA 마냥, DirectX 11 에서 (아마도 기존의 쉐이더들의 조합으로) GPGPU[1] 프로그래밍을 위한 것인데, 나름 획기적인 기술이라 생각한다. 이 부분은 그렇게 기대하진 않았지만 조금은 아쉽게도, OpenGL 에서는 관련된 소식이 없는것 같다.

Khronos 에서 언급하는 OpenGL 3.0 의 새로운 기능들은 다음과 같다[2]

  • Vertex Array Objects to encapsulate vertex array state for easier programming and increased throughput;
  • non-blocking access to Vertex Buffer Objects with the ability to update and flush a sub-range for enhanced performance;
  • full framebuffer object functionality including multi-sample buffers, blitting to and from framebuffer objects, rendering to one and two-channel data, and flexible mixing of buffer sizes and formats when rendering to a framebuffer object;
  • 32-bit floating-point textures and render buffers for increased precision and dynamic range in visual and computational operations;
  • conditional rendering based on occlusion queries for increased performance;
  • compact half-float vertex and pixel data to save memory and bandwidth;
  • transform feedback to capture geometry data after vertex transformations into a buffer object to drive additional compute and rendering passes;
  • four new texture compression schemes for one and two channel textures providing a factor of 2-to-1 storage savings over uncompressed data;
  • rendering and blending into sRGB framebuffers to enable faithful color reproduction for OpenGL applications without adjusting the monitor's gamma correction;
  • texture arrays to provide efficient indexed access into a set of textures;
  • 32-bit floating-point depth buffer support.
Transform Feedback 같이, extension 으로 존재하다가 표준에 추가가 된 것들이 많다. Vertex Array Objects, Render Buffer, Texture Array, Transform Feedback 등.. 괜찮은 기능들이 있긴 한데, 이미 extension 으로 이미 봐서 그런지 별다른 감흥은 없다. 그리고 GLSL 에서는 정수 연산이 지원될 것이라고 한다(integer 입력/출력, integer-based texturing, bit 연산 등..) 어쨌거나 여러모로 편해질 것 같다.

뭐, 꼼꼼하게 본건 아니라서 좋은 기술들이 있는데 넘어간 것들이 있을 수 있는거 같다. 특히, 일반 Windows 32 API 를 이용한(즉, GLUT 를 쓰지 않았을 때) Multisampling 의 경우에 기존에는 좀 복잡하고 이상한 방식으로 Anti-aliasing 을 구현해야 했었는데, 이번에 그것이 해결 되었을 것이라고 '기대'하는데, 정확하게는 잘 모르겠다. 그쪽 부분이 좀 추가가 된거 같긴 한데... 나중에 자세히 봐야 할듯 하다.

아, 마지막으로 참고 링크를 좀 남겨둔다.

Khronos OpenGL
OpenGL Overview at SIGGRAPH 2008 (Presentation)
그밖의 OpenGL 관련 슬라이드 at SIGGRAPH 2008
OpenGL 3.0 Spec
OpenGL Shading Language 1.30.08 Spec




  1. GPGPU 는 General Purpose GPU 의 약자로, GPU 에서 CPU 하는 것처럼 일반적인 계산을 하는 것을 뜻한다. CUDA 는 전형적인 GPGPU 를 위한 아키텍쳐고, 그 이전에도 Vertex/Fragment Shader 를 통해 여러가지 계산을 해왔지만, 여러 제약이라던가 불편한 사항들이 있었다. [본문으로]
  2. 출처 : OpenGL 3.0 Specifications to Support Latest Generations of Programmable Graphics Hardware [본문으로]
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/08/20 21:12 2008/08/20 21:12

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다

댓글을 달아 주세요