가변 속도 셰이딩(Variable Rate Shading)은 NVIDIA Turing GPU에 도입되고 GL_NV_shading_rate_image 확장을 통해 노출되는 하드웨어 기능입니다.
가변 속도 셰이딩을 사용하면 하드웨어가 래스터화 속도와 다른 빈도로 프리미티브를 셰이딩할 수 있습니다. 사용자는 음영 없음, 일반 해상도, 절반 해상도, 1/4 해상도 등 다양한 속도 중에서 선택할 수 있습니다. 렌더링에서 다중 샘플링을 사용하는 경우 동일한 기본 요소 내의 여러 샘플이 음영 처리되도록 음영 처리 속도를 높일 수 있습니다. 이렇게 하면 셰이더에서 생성된 앨리어싱을 줄일 수 있습니다. 음영 속도는 각 블록 내에서 일정한 속도로 픽셀 블록에 대해 정의됩니다.
이 샘플을 통해 사용자는 미리 정의된 음영 비율을 선택할 수 있습니다. "visualizeShadingRate"를 선택하면 픽셀당 음영 비율이 색상으로 구분된 이미지가 표시됩니다.
정점 셰이더에서 삼각형당 셰이딩 속도를 변경할 수 있습니다. 샘플에서는 전체 음영 처리 속도를 위해 모든 녹색 개체가 선택되었습니다. 이는 메뉴에서 비활성화할 수 있습니다.
음영 처리 속도의 감소는 미미할 수 있으므로 샘플에서는 "프레임 버퍼 스케일링" 설정을 통해 더 낮은 해상도로 렌더링하고 "확대"할 수 있습니다.
이상적으로는 이 저장소와 기타 흥미로운 nvpro-samples 저장소를 공통 하위 디렉터리에 복제합니다. 항상 nvpro_core가 필요합니다. nvpro_core는 샘플의 하위 디렉터리 또는 한 디렉터리 위로 검색됩니다.
여러 샘플에 관심이 있는 경우 build_all CMake를 진입점으로 사용할 수 있습니다. 또한 솔루션을 생성할 때 개별 샘플을 활성화/비활성화하는 옵션도 제공됩니다.