그래픽 개발자는 다양한 장면 항목에서 사용할 수 있는 대규모 범용 셰이더를 만드는 경우가 있습니다. 런타임 시 셰이더는 지정된 상황에 적합한 코드를 조건부로 실행합니다. 아쉽게도 이러한 대규모 범용 셰이더는 GPR(범용 레지스터)을 비효율적으로 사용하며, 더 작고 더 많은 대상 셰이더보다 훨씬 느려질 수 있습니다.
셰이더 모델 5는 동적 셰이더 연결을 도입하여 이 성능 문제를 해결합니다. 동적 연결은 인터페이스 및 가상 함수를 사용하여 셰이더 코드 조각을 구분하고 애플리케이션이 그리기 시 사용할 조각을 선택할 수 있도록 합니다. 필요한 셰이더 코드만 바인딩함으로써 큰 범용 셰이더 전체를 바인딩하지 않아 성능이 향상됩니다.
이 섹션에서
항목 | 묘사 |
---|---|
셰이더가 공유할 변수 및 형식 저장 |
여러 셰이더가 공유할 수 있는 변수 및 형식을 저장하기 위한 클래스 링크 개체에 대해 설명합니다. |
인터페이스 및 클래스 |
HLSL 인터페이스 및 클래스를 사용하여 동적 연결을 구현하는 방법을 설명합니다. |
인터페이스 사용 제한 |
셰이더 코드에서 인터페이스 사용에 대한 제한 사항에 대해 설명합니다. |