OpenGL 3과 OpenGL 4의 차이점


10

방금 게임 프로그래밍을 시작하고 opengl을 배우고 싶습니다. OpenGL 3을 시작하기 위해 처음부터 매우 훌륭한 튜토리얼을 찾았으며 openGL 3과 openGl 4 사이에 큰 차이가 있는지 궁금합니다. 또는 openGL 4가 openGL 3을 쓸모 없게 만들거나 시작할 수 있습니까? openGL 3 다음에 openGL 4로 이동할 수 있습니까?

답변:


12

OpenGL 버전의 작동 방식에 대한 설명연결 하여이 작업을 시작하겠습니다 . 간단히 말해 OpenGL (일반적으로)은 이전 버전과 호환되므로 모든 GL 3 코드는 GL 4 구현에서 잘 작동합니다.

4.x 시리즈의 OpenGL 버전은 "Direct3D 11"급 하드웨어라고 부르는 것을 나타냅니다. 해당 하드웨어의 기능을 공개합니다. D3D10 하드웨어는 3.x 버전의 OpenGL로 표시됩니다. 따라서 "openGL 4로 이동"은 더 낮은 하드웨어를 포기하거나 여러 렌더링 경로를 갖는 것을 의미합니다.

3.3과 4.2 사이의 실제 기능 변경에 대한 자세한 내용은 4.2 사양 에서 확인할 수 있습니다 . 많은 기능 (separate_shader_objects, shading_language_420pack, texture_storage)은 4.x 하드웨어로 제한되지 않습니다. 이는 API 변경 사항이며 확장을 통해 3.x 하드웨어에서 액세스 할 수 있습니다.

가장 두드러진 질문은 이것입니다 : GL 4.x는 3.x 하드웨어로는 할 수없는 것을 어떻게 할 수 있습니까?

테셀레이션은 아마도 가장 잘 알려진 기능 일 것입니다. 아마도 가장 일반적으로 유용하지 않을 것입니다. 그것이 쓸모 없다고 말하는 것은 아닙니다. 테셀레이션을 올바르게 사용하면 모델의 세부 묘사가 향상 될 수 있습니다. 그러나 적어도 나에게는 GL 4가 그것을 위해 최선을 다하는 것이 아닙니다.

셰이더 서브 루틴은 흥미로운 아이디어입니다. 기본적으로 서로 다른 셰이더 조각을 동적으로 조각 할 수 있습니다. 프로그램의 특정 바인드 포인트에 기능을 어느 정도 첨부 할 수 있습니다. 사양은 따르기가 약간 어렵지만 기능이 좋습니다.

이미지로드 / 저장은 아마도 가장 간과되었지만 가장 강력한 GL 4 기능이라고 할 수 있습니다. 이를 통해 OIT가 얻을 수있는 수준의 성능으로 주문 독립적 투명성을 구현할 수 있습니다. 이미지로드 / 저장에 대한 다른 많은 용도가있을 수 있지만, 영리한 사람들이 이미지를 알아 내야합니다.

GL 4에는 약간의 가능성과 결말이 있습니다. 배정 밀도 지원 및 간접 렌더링과 같은 것들. 이것들은 더 많은 GPGPU 스타일의 것들이므로 게임에서별로 유용하지 않을 것입니다.

그러나 일반적으로 GL 4는 GL 3의 기능 X를 구현하는 방식을 근본적으로 변경하지 않습니다.


나는 단지 간접 렌더링이 'GPGPU 스타일의 물건'이라고 말하는 것은 완전히 틀렸다. CPU에서 많은 호출을하는 렌더러에게는 성능이 크게 향상되며 게임에는 훌륭한 기능입니다.
CoffeeandCode
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.