답변:
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를 구현하는 방식을 근본적으로 변경하지 않습니다.