다음을 통해 공유


동적 연결

그래픽 개발자는 다양한 장면 항목에서 사용할 수 있는 대규모 범용 셰이더를 만드는 경우가 있습니다. 런타임 시 셰이더는 지정된 상황에 적합한 코드를 조건부로 실행합니다. 아쉽게도 이러한 대규모 범용 셰이더는 GPR(범용 레지스터)을 비효율적으로 사용하며, 더 작고 더 많은 대상 셰이더보다 훨씬 느려질 수 있습니다.

셰이더 모델 5는 동적 셰이더 연결을 도입하여 이 성능 문제를 해결합니다. 동적 연결은 인터페이스 및 가상 함수를 사용하여 셰이더 코드 조각을 구분하고 애플리케이션이 그리기 시 사용할 조각을 선택할 수 있도록 합니다. 필요한 셰이더 코드만 바인딩함으로써 큰 범용 셰이더 전체를 바인딩하지 않아 성능이 향상됩니다.

이 섹션에서

항목 묘사
셰이더가 공유할 변수 및 형식 저장
여러 셰이더가 공유할 수 있는 변수 및 형식을 저장하기 위한 클래스 링크 개체에 대해 설명합니다.
인터페이스 및 클래스
HLSL 인터페이스 및 클래스를 사용하여 동적 연결을 구현하는 방법을 설명합니다.
인터페이스 사용 제한
셰이더 코드에서 인터페이스 사용에 대한 제한 사항에 대해 설명합니다.

HLSL