MSDN : http://msdn2.microsoft.com/en-us/library/ms742196.aspx

Graphics Rendering Tiers


렌더링 단계(Rendering tier)는 WPF 애플리케이션을 실행하는 장치를 위한 그래픽 하드웨어 능력과 성능의 레벨을 정의합니다.

이 토픽은 다음 섹션을 담고 있습니다.
그래픽 하드웨어

렌더링 단계 레벨에 가장 큰 영향을 주는 그래픽 하드웨어의 기능(feature)은 다음과 같습니다.
  • 비디오 램 ; 그래픽 하드웨어에 장착된 비디오 메모리의 합계로써 복합적인 그래픽에 사용될 수 있는 버퍼의 크기와 수를 결정합니다.
  • 픽셀 셰이더 ; 픽셀 셰이더는 픽셀 기반의 효과를 계산하는 그래픽 처리 기능입니다. 표시되는 그래픽의 해상도에 따라서 각 디스플레이 프레임을 위해 처리될 필요가 있는 수백만 픽셀이 있을 수 있습니다.
  • 버텍스(vertex) 셰이더 ; 객체의 버텍스 데이터상에 있는 수학적인 연산 동작을 수행하는 그래픽 처리 기능입니다.
  • 멀티텍스쳐 지원 ; 멀티텍스쳐 지원은 3D 그래픽 객체상에서 블렌딩 연산 도중 두개 혹은 그 이상으로 구분되는 텍스쳐를 적용하는 능력을 말합니다. 멀티텍스쳐 지원의 정도는 그래픽 하드웨어상의 멀티텍스쳐 유닛의 수에 따라 결정됩니다.
픽셀 셰이더, 버텍스 셰이더 및 멀티텍스쳐 기능은 특정 DirectX 버전 레벨을 정의하는데 사용되고 WPF에서 렌더링 단계의 차이를 정의합니다.

렌더링 단계 정의

그래픽 하드웨어에서 제공되는 기능은 WPF 애플리케이션의 렌더링 능력을 결정합니다. WPF 시스템은 다음의 세 렌더링 단계를 정의합니다.

  • 렌더링 단계 0 ; 그래픽 하드웨어 가속 없음. DirectX 버전 레벨은 버전 7.0보다 낮습니다.
  • 렌더링 단계 1 ; 부분적인 그래픽 하드웨어 가속. DirectX 버전 레벨은 버전 7.0과 같거나 더 높고 버전 9.0보다 낮습니다.
  • 렌더링 단계 2 ; 대부분의 그래픽 기능을 사용하는 그래픽 하드웨어 가속. DirectX 버전 레벨은 버전 9.0과 같거나 더 높습니다.
Tier 속성은 애플리케이션 런타임에 렌더링 단계를 얻을 수 있게 하며, 개발자가 장치에 특정 하드웨어 가속된 그래픽 기능을 지원하는지를 결정할 수 있게 합니다. 그러므로 애플리케이션은 장치에 의해 지원되는 렌더링 단계에 따라서 런타임에 다른 코드 경로를 취할 수 있습니다.

렌더링 단계 0
렌더링 단계 0은 장치상에 애플리케이션을 위한 그래픽 하드웨어 가속 지원이 없다는 것을 의미합니다. 이 단계 레벨에서 개발자는 모든 그래픽이 하드웨어 가속 없이 소프트웨어에 의해 그려진다고 가정해야 합니다. 이 단계의 기능성은 DirectX 버전 7.0 미만과 일치합니다.

렌더링 단계 1
렌더링 단계 1은 비디오 카드에서 일부 그래픽 하드웨어 가속이 가능하다는 것을 의미합니다. 이것은 DirectX 버전 7.0 이상과 9.0 미만과 일치합니다.

다음 기능과 능력은 렌더링 단계 1에서 하드웨어 가속됩니다.

2D 렌더링 ; 대부분의 2D 그리기가 지원됩니다.
3D 래스터화 ; 대부분의 3D 래스터화가 지원됩니다. 그러나 WPF는 버텍스 컬러로 하드웨어에 전달된 버텍스 조도를 계산하는데 소프트웨어를 사용할 것입니다.
3D 비등방성 필터링(anisotrophic) ; 렌더링 단계가 1이상이면 WPF는 3D 컨텐트를 그릴 때 비등방성 필터링 사용을 시도합니다. 비등방성 필터링은 카메라의 주의에서 멀리 있고 급한 각도를 이루는 표면상의 이미지 품질을 높이는 것을 말합니다.
3D MIP 매핑 ; 렌더링 단계가 1이상이면 WPF는 3D 컨텐트를 그릴 때 MIP 매핑 사용을 시도합니다. MIP 매핑은 텍스쳐가 Viewport3D에 있는 뷰보다 작은 필드를 차지할 경우 텍스쳐의 품질을 향상시킵니다. (※역주 : 비등방성 필터링이나 MIP매핑 등의 정의는 3D 그래픽 영역에 속하며 위키 사전등을 참조하도록 합니다. 비등방성 필터링(테크노아), MIP Map(위키)  )

다음 기능과 능력은 렌더링 단계 1에서는 하드웨어 가속되지 않습니다.
비트맵 효과 ; 시각적 표현의 비트맵 효과는 하드웨어 가속 없이 그려지도록 강제됩니다.
출력된 컨텐트 ; 모든 출력된 컨텐트는 WPF 소프트웨어 파이프라인을 사용하여 그려집니다.
RenderTargetBitmap 객체를 사용하여 래스터화된 컨텐트 ; 모든 컨텐트는 RenderTargetBitmapRender 메소드를 사용하여 그려집니다.
TileBrush를 사용한 격자 컨텐트 ; TileBrushTileModeTile로 설정된 모든 격자 컨텐트.
그래픽 하드웨어의 최대 텍스쳐 크기를 초과한 표면 ; 대부분의 그래픽 카드는 2048 x 2048 또는 4096 x 4096 픽셀보다 큰 크기의 표면을 지원하지 않습니다.
그래픽 하드웨어의 메모리를 초과하는 비디오 램을 요청하는 모든 명령 ; Windows SDK에 포함된 Preforator 툴을 사용하여 애플리케이션의 비디오 램 사용량을 모니터할 수 있습니다.
레이어드(layered) 윈도 ; 레이어드 윈도는 WPF 애플리케이션이 비사각형 윈도의 화면에 컨텐트를 그릴 수 있게 합니다. 윈도 Vista에서는 레이어드 윈도가 하드웨어 가속됩니다. 윈도 XP와 같은 다른 시스템에서는 레이어드 윈도는 하드웨어 가속 없이 소프트웨어에 의해 그려집니다. 다음의 Window 속성을 세팅함으로써 WPF에서 레이어드 윈도를 사용할 수 있습니다.
원형 그레디언트 ; 모든 RadialGradientBrush의 사용.
3D 조명 계산 ; WPF는 버텍스당 조명으로 작동하며 이것은 조도가 메쉬에 적용되는 각 마테리얼을 위해 버텍스마다 계산되어야 한다는 것을 의미합니다. 단계 1에서 이 계산은 소프트웨어에 의해 작동됩니다. 단계 2에서는 이 계산이 하드웨어에 의해 작동됩니다.
텍스트 렌더링 ; 서브-픽셀 폰트 렌더링은 그래픽 하드웨어상의 픽셀 셰이더를 사용할 수 있습니다.
3D 안티-앨리에싱 ; 모든 3D 안티-앨리어싱의 사용.

다음 그래픽 하드웨어 기능은 렌더링 단계 1을 정의합니다.
DirectX 버전 ; 7.0 이상이고 9.0 미만이어야 합니다.
비디오 램 ; 30MB 이상이어야 합니다.
멀티텍스쳐 유닛 ; 2이상의 유닛이 있어야 합니다.

다음 표는 렌더링 단계1을 지원하는 일반적인 그래픽 카드의 목록입니다.

ATI ; Radeon 모델 : 256, 7000, 7500, 8500, 9000, 9100, 9200 및 9250
Intel ; 인텔 Extreme Graphics 모델 : 845G, 845GE, 845GL 및 845GV
        인텔 Extreme Graphics II 모델 : 852GME, 855GM, 855GME, 865G 및 865GV
NVidia ; GeForce 256
            GeForce2 모델 : GTS, MX, MX100, MX200, MX400, Pro, Ti 및 Ultra
            GeForce3 모델 : Ti200 및 Ti500
            GeForce4 모델 : MX420, MX440, MX460, MX4000, Ti4200, Ti4400, Ti4600 및 Ti4800
 
렌더링 단계2
렌더링 단계 2는 WPF의 그래픽 피추어 대부분이 가용 시스템 리소스가 고갈되지 않도록 하드웨어 가속을 사용할 필요가 있습니다. 이것은 9.0 이상의 DirectX 버전과 일치합니다.

다음 기능 및 기능은 렌터링 단계2를위해 하드웨어 가속됩니다.
단계 1 기능 ; 모든 단계 1의 기능을 포함합니다.
원형 그레이디언트 ; 지원될지라도 큰 객체상에서의 RadialGradientBrush의 사용은 피하십시오.
3D 조명 계산 ; WPF는 버텍스당 조명으로 동작하며, 이것은 조도가 메쉬에 적용될 각 마테리얼을 위한 각각의 버텍스에서 계산되어야 한다는 것을 의미합니다. 계층 1에서 이 계산은 소프트웨어에 의해 동작합니다. 계층 2에서 이 계산은 하드웨어에서 동작합니다.
텍스트 렌더링 ; 서브-픽셀 폰트 렌더링은 그래픽 하드웨어 상의 픽셀 셰이더를 사용할 수 있습니다.
3D 안티-앨리어싱 ; 3D 안티-앨리어싱은 윈도 Vista에서만 지원됩니다.

다음 기능과 능력은 렌터링 단계 2에서 하드웨어 가속되지 않습니다.
비트맵 효과 ; 시각적 표현의 비트맵 효과는 하드웨어 가속 없이 그려지도록 강제됩니다.
출력된 컨텐트 ; 모든 출력된 컨텐트는 WPF 소프트웨어 파이프라인을 사용하여 그려집니다.
RenderTargetBitmap 객체를 사용하여 래스터화된 컨텐트 ; 모든 컨텐트는 RenderTargetBitmap의 Render 메소드를 사용하여 그려집니다.
TileBrush를 사용한 격자 컨텐트 ; TileBrush의 TileMode가 Tile로 설정된 모든 격자 컨텐트.
그래픽 하드웨어의 최대 텍스쳐 크기를 초과한 표면 ; 대부분의 그래픽 카드는 2048 x 2048 또는 4096 x 4096 픽셀보다 큰 크기의 표면을 지원하지 않습니다.
그래픽 하드웨어의 메모리를 초과하는 비디오 램을 요청하는 모든 명령 ; Windows SDK에 포함된 Preforator 툴을 사용하여 애플리케이션의 비디오 램 사용량을 모니터할 수 있습니다.
레이어드(layered) 윈도 ; 레이어드 윈도는 WPF 애플리케이션이 비사각형 윈도의 화면에 컨텐트를 그릴 수 있게 합니다. 윈도 Vista에서는 레이어드 윈도가 하드웨어 가속됩니다. 윈도 XP와 같은 다른 시스템에서는 레이어드 윈도는 하드웨어 가속 없이 소프트웨어에 의해 그려집니다. 다음의 Window 속성을 세팅함으로써 WPF에서 레이어드 윈도를 사용할 수 있습니다.
  • WindowStyle = None
  • AllowsTransparency = true
  • Transparent
다음 그래픽 하드웨어 기능은 렌더링 단계 2를 정의합니다.

DirectX 버전 ; 9.0 이상이어야 합니다.
비디오 램 ; 120MB 이상이어야 합니다.
픽셀 셰이더 ; 버전 2.0 이상이어야 합니다.
버텍스 셰이더 ; 버전 2.0 이상이어야 합니다.
멀티텍스쳐 유닛 ; 유닛의 수가 4 이상이어야 합니다.

다음 표는 렌더링 단계 2를 지원하는 일반적인 그래픽 카드의 목록입니다.
ATI ; Radeon 모델 : 9550, 9600, 9800 및 X-시리즈
Intel ; 인텔 GMA900 모델 : 915G
         인텔 GMA950 모델 : 945G
NVidia ; Geforce FX-시리즈, 6xxx-시리즈 및 7xxx-시리즈

다른 리소스

다음 리소스는 WPF 애플리케이션의 성능 특성을 분석하는데 도움을 줄 수 있습니다.

그래픽 렌더링 레지스트리 설정
WPF는 WPF 렌더링을 제어하기 위해 네가지 레지스트리 설정을 제공합니다.

하드웨어 가속 옵션 비활성화 ; 하드웨어 가속을 활성화할지 지정합니다.
최대 멀티샘플 값 ; 3D 컨텐트 안티-앨리어싱을 위한 멀티샘플링의 정도를 지정합니다.
비디오 드라이버 날짜 요구사항 설정 ; 2004년 11월 이전에 공개된 드라이버에서는 시스템이 하드웨어 가속을 비활성화할지 지정합니다.
래스터라이저 참조 사용 옵션 ; WPF가 래스터라이저 참조를 사용해야 하는지 지정합니다.

이 세팅은 WPF 레지스트리 설정을 어떻게 참조하는지 아는 모든 외부 설정 유틸리티에 의해 접근될 수 있습니다. 이 설정은 또한 윈도 레지스트리 편집기를 사용함으로써 값을 직접 접근하여 만들거나 변경할 수 있습니다. 더 자세한 정보는 Graphics Rendering Registry Settings를 참고하십시오.

WPF 성능 분석 툴
WPF는 애플리케이션의 런타임 동작 분석과 적용 가능한 성능 최적화의 종류를 결정하는 것을 가능케 하는 성능 분석 툴 스위트(suite)를 제공합니다. 다음 표는 Windows SDK 툴인 WPFPerf에 포함된 다섯개의 성능 분석 툴을 열거합니다.

EventTrace ; 이벤트를 분석하고 이벤트 로그 파일을 생성하는데 사용합니다.
Perforator ; 렌더링 동작을 분석하는데 사용합니다.
Trace Viewer ; WPF 사용자 인터페이스 포맷의 Event Tracing for Windows(ETW) 로그 파일을 기록하고, 표시하고 보여줍니다.
Visual Profiler ; 시각적인 트리에서 엘리먼트 별로 레이아웃과 이벤트 핸들링과 같은 WPF 서비스의 사용을 분석하는데 사용합니다.
Working Set Viewer ; 애플리케이션의 working set 특성을 분석하는데 사용합니다.

Visual Profiler 툴 스위트는 성능 데이터의 풍부한 그래피컬 뷰를 제공합니다. 아래의 스크린샷은 Visual Profiler의 CPU Usage 섹션이 객체의 렌더링이나 레이아웃 같은 WPF 서비스의 사용에 대한 정확한 분석을 제공합니다.

Visual Profiler 화면 표시
사용자 삽입 이미지

WPF 성능 툴에 대한 더 자세한 정보는 Performance Profiling Tools for WPF를 참고하십시오.

DirectX 진단 툴
DirectX 진단 툴인 Dxdiag.exe는 DiretX와 관련된 주제의 문제 해결을 돕도록 디자인되었습니다. DiretX 진단 툴의 기본 설치 경로는 \Windows\System32 입니다.

DirectX 진단 툴을 실행하면 메인 윈도는 DirectX와 관련된 정보를 표시하고 진단하도록 하는 탭의 세트를 적재합니다. 예를 들어 System 탭은 컴퓨터에 관한 시스템 정보와 컴퓨터에 설치되어 있는 DirectX의 버전을 제공합니다.

DirectX 진단 툴 메인 윈도
사용자 삽입 이미지

See Also

Reference
RenderCapability
RenderOptions

Concepts
Optimizing WPF Application Performance
Graphics Rendering Registry Settings

Other Resources
Performance Profiling Tools for WPF
신고
Posted by gongdo


티스토리 툴바