그래픽 렌더링 계층

렌더링 계층은 WPF 애플리케이션을 실행하는 디바이스의 그래픽 하드웨어 기능과 성능 수준을 정의합니다.

그래픽 하드웨어

렌더링 계층 수준에 가장 큰 영향을 미치는 그래픽 하드웨어 기능은 다음과 같습니다.

  • 비디오 RAM 그래픽 하드웨어의 비디오 메모리 양에 따라 그래픽을 합성하는 데 사용할 수 있는 버퍼의 크기와 수를 결정합니다.

  • 픽셀 셰이더 픽셀 셰이더는 픽셀별 미치는 영향을 계산하는 그래픽 처리 함수입니다. 표시된 그래픽의 해상도에 따라 표시 프레임별로 수백만 픽셀을 처리해야 할 수도 있습니다.

  • 꼭짓점 셰이더 꼭짓점 셰이더는 개체의 꼭짓점 데이터에서 수학 연산을 수행하는 그래픽 처리 함수입니다.

  • 여러 질감 지원 여러 질감 지원은 3D 그래픽 개체에서 혼합 작업 중에 두 개 이상의 개별 질감을 적용할 수 있는 기능을 나타냅니다. 여러 질감 지원 정도는 그래픽 하드웨어의 여러 질감 단위 수에 따라 결정됩니다.

렌더링 계층 정의

그래픽 하드웨어 기능에 따라 WPF 애플리케이션의 렌더링 기능이 결정됩니다. WPF 시스템은 다음 세 개의 렌더링 계층을 정의합니다.

  • 렌더링 계층 0 그래픽 하드웨어 가속이 없습니다. 모든 그래픽 기능에서 소프트웨어 가속을 사용합니다. DirectX 버전 수준은 버전 9.0 미만입니다.

  • 렌더링 계층 1 일부 그래픽 기능에서는 그래픽 하드웨어 가속을 사용합니다. DirectX 버전 수준은 버전 9.0 이상입니다.

  • 렌더링 계층 2 대부분의 그래픽 기능에서는 그래픽 하드웨어 가속을 사용합니다. DirectX 버전 수준은 버전 9.0 이상입니다.

RenderCapability.Tier 속성을 사용하면 애플리케이션 런타임에 렌더링 계층을 검색할 수 있습니다. 렌더링 계층을 사용하여 디바이스에서 특정 하드웨어 가속 그래픽 기능을 지원하는지 결정합니다. 그러면 디바이스에서 지원하는 렌더링 계층에 따라 애플리케이션에서 런타임 시 다른 코드 경로를 사용할 수 있습니다.

렌더링 계층 0

렌더링 계층 값이 0이면 디바이스의 애플리케이션에서 사용할 수 있는 그래픽 하드웨어 가속이 없습니다. 이 계층 레벨에서는 하드웨어 가속 없이 소프트웨어를 통해 모든 그래픽이 렌더링된다고 가정해야 합니다. 이 계층의 기능은 9.0 미만인 DirectX 버전에 해당합니다.

렌더링 계층 1 및 렌더링 계층 2

참고

.NET Framework 4부터 렌더링 계층 1은 DirectX 9.0 이상을 지원하는 그래픽 하드웨어만 포함하도록 다시 정의되었습니다. DirectX 7 또는 8을 지원하는 그래픽 하드웨어는 이제 렌더링 계층 0으로 정의됩니다.

렌더링 계층 값이 1 또는 2이면 필요한 시스템 리소스가 사용 가능하며 소진되지 않은 경우 대부분의 WPF 그래픽 기능에서 하드웨어 가속을 사용합니다. 이 내용은 9.0 이상의 DirectX 버전에 해당합니다.

다음 테이블에서는 렌더링 계층 1과 렌더링 계층 2에 대한 그래픽 하드웨어 요구 사항의 차이점을 보여줍니다.

기능 계층 1 계층 2
DirectX 버전 9.0보다 크거나 같아야 합니다. 9.0보다 크거나 같아야 합니다.
비디오 RAM 60MB보다 크거나 같아야 합니다. 120MB보다 크거나 같아야 합니다.
픽셀 셰이더 버전 수준은 2.0 이상이어야 합니다. 버전 수준은 2.0 이상이어야 합니다.
꼭짓점 셰이더 요구 사항이 없습니다. 버전 수준은 2.0 이상이어야 합니다.
여러 질감 단위 요구 사항이 없습니다. 단위 수가 4 이상이어야 합니다.

다음 특징과 기능은 렌더링 계층 1과 렌더링 계층 2용으로 가속화된 하드웨어입니다.

기능 참고
2D 렌더링 대부분의 2D 렌더링이 지원됩니다.
3D 래스터화 대부분의 3D 래스터화가 지원됩니다.
3D 이방성 필터링 WPF에서는 3D 콘텐츠를 렌더링할 때 이방성 필터링을 사용합니다. 이방성 필터링은 카메라에서 멀리 떨어져 있고 기울기가 심한 표면에서 이미지의 질감을 향상시키는 것을 나타냅니다.
3D MIP 매핑 WPF에서는 3D 콘텐츠를 렌더링할 때 MIP 매핑을 사용합니다. MIP 매핑은 질감이 Viewport3D의 작은 보기 필드를 차지하는 경우 질감 렌더링 품질을 향상시킵니다.
방사형 그라데이션 지원되는 경우 대형 개체에서 RadialGradientBrush를 사용하지 마세요.
3D 조명 계산 WPF에서는 꼭짓점별 조명을 수행합니다. 즉, 메시에 적용할 각 재질의 꼭짓점마다 조명 강도를 계산해야 합니다.
텍스트 렌더링 하위 픽셀 글꼴 렌더링에서는 그래픽 하드웨어에서 사용 가능한 픽셀 셰이더를 사용합니다.

다음 특징과 기능은 렌더링 계층 2용으로만 가속화된 하드웨어입니다.

기능 참고
3D 앤티앨리어싱 3D 앤티앨리어싱은 Windows Vista, Windows 7과 같이 WDDM(Windows Display Driver Model)를 지원하는 운영 체제에서만 지원됩니다.

다음 특징과 기능은 가속화된 하드웨어가 아닙니다.

기능 참고
인쇄된 콘텐츠 인쇄된 모든 콘텐츠는 WPF 소프트웨어 파이프라인을 사용하여 렌더링합니다.
RenderTargetBitmap을 사용하는 래스터화된 콘텐츠 RenderTargetBitmapRender 메서드를 사용하여 렌더링된 모든 콘텐츠.
TileBrush를 사용하는 바둑판식 콘텐츠 TileBrushTileMode 속성이 Tile로 설정된 바둑판식 콘텐츠.
그래픽 하드웨어의 최대 질감 크기를 초과하는 화면 대부분의 그래픽 하드웨어에서 대형 화면의 크기는 2048x2048 또는 4096x4096 픽셀입니다.
비디오 RAM 요구 사항이 그래픽 하드웨어의 메모리를 초과하는 모든 작업 Windows SDK에서 WPF 성능 제품군에 포함된 Perforator 도구를 사용하여 애플리케이션 비디오 RAM 사용량을 모니터링할 수 있습니다.
계층적 창 계층적 창을 사용하면 WPF 애플리케이션에서 직사각형이 아닌 창의 화면에 맞게 콘텐츠를 렌더링할 수 있습니다. Windows Vista, Windows 7과 같이 WDDM(Windows Display Driver Model)을 지원하는 운영 체제에서 계층적 창은 하드웨어 가속됩니다. Windows XP와 같은 다른 시스템에서는 하드웨어 가속이 없는 소프트웨어를 통해 계층적 창을 렌더링합니다.

다음 Window 특성을 설정하여 WPF에서 계층적 창을 사용하도록 설정할 수 있습니다.

- WindowStyle = None
- AllowsTransparency = true
- Background = Transparent

기타 리소스

다음 리소스를 사용하면 WPF 애플리케이션의 성능 특징을 분석할 수 있습니다.

그래픽 렌더링 레지스트리 설정

WPF에서는 WPF 렌더링을 제어하는 다음 네 개의 레지스트리 설정을 제공합니다.

설정 Description
하드웨어 가속 옵션 사용 안 함 하드웨어 가속을 사용해야 하는지 지정합니다.
최대 다중 샘플 값 3D 콘텐츠를 앤티앨리어싱하는 데 사용할 다중 샘플링의 수준을 지정합니다.
필수 비디오 드라이버 날짜 설정 시스템에서 2004년 11월 이전에 릴리스된 드라이버의 하드웨어 가속을 사용하지 않게 설정할지 지정합니다.
참조 래스터라이저 옵션 사용 WPF에서 참조 래스터라이저를 사용해야 하는지 지정합니다.

이러한 설정은 WPF 레지스트리 설정을 참조하는 방법을 아는 외부 구성 유틸리티에서 액세스할 수 있습니다. 이러한 설정은 WPF 레지스트리 편집기를 통해 직접 값에 액세스하여 만들거나 수정할 수도 있습니다. 자세한 내용은 그래픽 렌더링 레지스트리 설정을 참조하세요.

WPF 성능 프로파일링 도구

WPF에서는 애플리케이션의 런타임 동작을 분석할 수 있고 적용할 수 있는 성능 최적화 형식을 판별하는 성능 프로파일링 도구 제품군을 제공합니다. 다음 테이블에서는 Windows SDK 도구인 WPF 성능 제품군에 포함된 성능 프로파일링 도구를 나열합니다.

도구 Description
Perforator 렌더링 동작을 분석하는 데 사용합니다.
Visual Profiler 시각적 트리의 요소별로 레이아웃 및 이벤트 처리 같은 WPF 서비스 사용을 프로파일링하는 데 사용합니다.

WPF 성능 제품군에서는 성능 데이터의 그래픽 보기를 다양하게 제공합니다. WPF 성능 도구에 대한 자세한 내용은 WPF 성능 제품군을 참조하세요.

DirectX 진단 도구

DirectX 진단 도구인 Dxdiag.exe는 DirectX 관련 문제를 해결하는 데 도움을 주도록 디자인되었습니다. DirectX 진단 도구의 기본 설치 폴더는 다음과 같습니다.

~\Windows\System32

DirectX 진단 도구를 실행할 때 기본 창에는 DirectX 관련 정보를 표시하고 진단할 수 있는 탭 세트가 포함되어 있습니다. 예를 들어, 시스템 탭에서는 컴퓨터에 대한 시스템 정보를 제공하고 컴퓨터에 설치된 DirectX의 버전을 지정합니다.

스크린샷: DirectX 진단 도구
DirectX 진단 도구 기본 창

참고 항목