고정 기능

Fixed-function

고정기능은 셰이더 기반 3D 그래픽 API와 GPU 아키텍처의 출현 이전에 설계된 3D 그래픽 API와 이전GPU를 대조하기 위해 표준적으로 사용되는 용어다.

역사

역사적으로 고정 기능 API는 기능 진입 지점 세트로 구성되었으며, 이를 지원하도록 설계된 GPU에서 자신의 명명된 목적을 위한 전용 로직으로 대략 또는 직접 매핑할 수 있었다.셰이더 기반의 GPU와 API가 진화함에 따라, 고정 기능 API는 그래픽 드라이버 엔지니어들이 보다 범용적인 쉐이딩 아키텍처를 사용하여 구현하였다.이러한 접근방식은 대부분의 개발자들이 경험했던 고정 기능 API 추상화를 계속 제공하는 동시에 새로운 셰이더 기반 아키텍처의 추가 개발 및 개선을 가능하게 한다.

OpenGL, OpenGL ES, DirectX(Direct3D)는 모두 고정 기능 프로그래밍 모델에서 셰이더 기반 프로그래밍 모델로 전환을 거친 3D 그래픽 API이다.아래 표는 고정 기능에서 셰이더로 전환된 시점을 나타낸 것이다.

3D API 마지막 고정 기능 버전 퍼스트 셰이더 버전
오픈GL v1.5 v2.0
오픈GL ES v1.1 v2.0
다이렉트X v7.0 v8.0

고정 함수 대 셰이더

고정 함수 API는 일련의 잘 정의되고 구체적으로 명명된 그래픽 파이프라인 단계를 통해 보다 단순한 프로그래밍 추상화 경향이 있다.셰이더 기반 API는 그래픽 데이터(수직 및 픽셀/텍셀)를 일반적으로 처리하며 이 데이터를 변조하는 방법에 있어 많은 유연성을 허용한다.셰이더 기반 API를 사용하면 보다 정교한 렌더링 기법이 가능하다.