다음을 통해 공유


효과(Direct3D 10)

DirectX 효과는 HLSL 로 작성된 식과 효과 프레임워크와 관련된 일부 구문에 의해 설정된 파이프라인 상태의 컬렉션입니다. 효과를 컴파일한 후 효과 프레임워크 API를 사용하여 렌더링합니다. 효과 기능은 기하 도형과 단색을 출력하는 픽셀 셰이더를 변환하는 꼭짓점 셰이더와 같은 간단한 것에서부터 여러 패스를 필요로 하고, 그래픽 파이프라인의 모든 단계를 사용하고, 프로그래밍 가능한 셰이더와 연결되지 않은 파이프라인 상태를 조작하는 렌더링 기술에 이르기까지 다양할 수 있습니다.

첫 번째 단계는 효과에서 제어하려는 상태를 구성하는 것입니다. 여기에는 셰이더 상태(꼭짓점, 기하 도형 및 픽셀 셰이더), 셰이더에서 사용하는 텍스처 및 샘플러 상태, 프로그래밍할 수 없는 기타 파이프라인 상태가 포함됩니다. 메모리에서 효과를 텍스트 문자열로 만들 수 있지만 일반적으로 크기는 효과 파일(.fx 확장으로 끝나는 텍스트 파일)에 효과 상태를 저장하는 데 유용할 정도로 커집니다. 효과를 사용하려면 HLSL 구문과 효과 프레임워크 구문을 검사, API 호출을 통해 효과 상태를 초기화하고, 렌더링 API를 호출하도록 렌더링 루프를 수정해야 합니다.

효과는 특정 효과에 필요한 모든 렌더링 상태를 기술이라는 단일 렌더링 함수로 캡슐화합니다. 패스는 렌더링 상태를 포함하는 기술의 하위 집합입니다. 여러 패스 렌더링 효과를 구현하려면 기술 내에서 하나 이상의 패스를 구현합니다. 예를 들어 깊이/스텐실 버퍼의 한 집합으로 일부 기하 도형을 렌더링한 다음 그 위에 스프라이트를 그립니다. 첫 번째 패스에서 기하 도형 렌더링을 구현하고 두 번째 패스에서 스프라이트 드로잉을 구현할 수 있습니다. 효과를 렌더링하려면 렌더링 루프에서 두 패스를 렌더링하기만 하면 됩니다. 효과에 다양한 기술을 구현할 수 있습니다. 물론 기술 수가 많을수록 효과에 대한 컴파일 시간이 커지게 됩니다. 이 기능을 활용하는 한 가지 방법은 다른 하드웨어에서 실행되도록 설계된 기술로 효과를 만드는 것입니다. 이를 통해 애플리케이션은 검색된 하드웨어 기능에 따라 성능을 정상적으로 다운그레이드할 수 있습니다.

Direct3D 10 프로그래밍 가이드