图形呈现层

更新:2007 年 11 月

呈现层为运行 WPF 应用程序的设备定义图形硬件功能和性能级别。

本主题包括下列各节。

  • 图形硬件
  • 呈现层定义
  • 其他资源
  • 相关主题

图形硬件

对呈现层级别影响最大的图形硬件功能包括:

  • 视频 RAM 图形硬件中的视频内存量决定了可用于合成图形的缓冲区的大小和数量。

  • 像素着色器 像素着色器是按像素计算效果的图形处理功能。每个显示帧可能有数百万像素需要处理,具体取决于所显示的图形的分辨率。

  • 顶点着色器 顶点着色器是对对象的顶点数据执行数学运算的图形处理功能。

  • 多纹理支持 多纹理支持是指在对三维图形对象执行混合操作期间应用两个或更多个不同纹理的功能。多纹理支持的程度由图形硬件中的多纹理单元数决定。

像素着色器、顶点着色器和多纹理功能用于定义特定的 DirectX 版本级别,而版本级别又用于定义 WPF 中的不同呈现层。

呈现层定义

图形硬件的功能决定了 WPF 应用程序的呈现功能。WPF 系统定义了三个呈现层:

  • 呈现层 0 无图形硬件加速。DirectX 版本级别低于 7.0。

  • 呈现层 1 部分图形硬件加速。DirectX 版本级别高于或等于 7.0 且低于 9.0。

  • 呈现层 2 大多数图形功能都使用图形硬件加速。DirectX 版本级别高于或等于 9.0。

使用 Tier 属性,可以在应用程序运行时检索呈现层,这样开发人员就可以确定设备能否支持某些硬件加速图形功能。然后应用程序就可以在运行时根据设备支持的呈现层采用不同的代码路径。

呈现层 0

呈现层的值为 0 意味着设备上的应用程序没有图形硬件加速可用。在这一层次级别,开发人员应假设所有图形都将由软件呈现,而没有硬件加速。这一层的功能与低于 7.0 的 DirectX 版本对应。

呈现层 1

呈现层的值为 1 意味着在视频卡上有部分图形硬件加速可用。这对应于高于或等于 7.0 且低于 9.0 的 DirectX 版本。

下面的功能是呈现层 1 的硬件加速功能:

功能

说明

二维呈现

支持大多数二维呈现。

三维光栅化

支持大多数三维光栅化。但是,WPF 将使用软件来计算顶点光强度,之后顶点光强度将作为顶点颜色传递到硬件。这意味着呈现层 1 上的光照速度要慢得多。

三维各向异性筛选

当呈现层大于或等于 1 时,WPF 会尝试在呈现三维内容时使用各向异性筛选。各向异性筛选是指改善位置较远且与照相机成一定角度的图面上的纹理的图像质量。

三维 mip 映射

当呈现层大于或等于 1 时,WPF 会尝试在呈现三维内容时使用 mip 映射。当纹理占据 Viewport3D 中的一小块视图区域时,mip 映射可改善纹理呈现的质量。

下面的功能不是呈现层 1 的硬件加速功能:

功能

说明

位图效果

在可视元素上使用位图效果可强制该可视元素在没有硬件加速的情况下呈现。

打印内容

所有打印内容都使用 WPF 软件管道呈现。

使用 RenderTargetBitmap 对象的光栅化内容

使用 RenderTargetBitmapRender 方法呈现的所有内容。

使用 TileBrush 的平铺内容

TileBrushTileMode 属性设置为 Tile 的任何平铺内容。

超过图形硬件的最大纹理大小的图面

大多数视频卡都不支持大于 2048x2048 或 4096x4096 像素的图面。

视频 RAM 要求超过图形硬件内存的任何操作

您可以使用 Windows SDK 中所含的 WPF 性能分析工具工具来监视应用程序的视频 RAM 使用率。

分层窗口

分层窗口使 WPF 应用程序可以将内容呈现到屏幕中的非矩形窗口。在 Windows Vista 上,分层窗口是硬件加速的。在其他系统上,如 Windows XP,分层窗口是通过软件来呈现的,没有硬件加速。

在 WPF 中,您可以通过设置以下 Window 属性来启用分层窗口:

径向渐变

RadialGradientBrush 的任何使用情况。

三维光照计算

WPF 执行每个顶点的光照,这意味着必须在应用于网格的每个材料的每个顶点计算光照强度。在呈现层 1,这些计算是由软件执行的。在呈现层 2,这些计算是在硬件中执行的。

文本呈现

子像素字体呈现使用图形硬件上可用的像素着色器。

三维消除锯齿

三维消除锯齿的任何使用情况

下面的图形硬件功能定义呈现层 1:

功能

说明

DirectX 版本

必须大于或等于 7.0 且小于 9.0。

视频 RAM

必须大于或等于 30 MB。

多纹理单元

单元数必须大于或等于 2。

下表列出了支持呈现层 1 的常用图形卡:

制造商

模型

ATI

Radeon 型号:256、7000、7500、8500、9000、9100、9200 和 9250

Intel

Intel Extreme Graphics 型号:845G、845GE、845GL 和 845GV

Intel 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

三维光照计算

WPF 执行每个顶点的光照,这意味着必须在应用于网格的每个材料的每个顶点计算光照强度。在呈现层 1,这些计算是由软件执行的。 在呈现层 2,这些计算是在硬件中执行的。

文本呈现

子像素字体呈现使用图形硬件上可用的像素着色器。

三维消除锯齿

只有 Windows Vista 支持三维消除锯齿。

下面的功能不是呈现层 2 的硬件加速功能:

功能

说明

位图效果

在可视元素上使用位图效果可强制该可视元素在没有硬件加速的情况下呈现。

打印内容

所有打印内容都使用 WPF 软件管道呈现。

使用 RenderTargetBitmap 的光栅化内容

使用 RenderTargetBitmapRender 方法呈现的任何内容。

使用 TileBrush 的平铺内容

TileBrushTileMode 属性设置为 Tile 的任何平铺内容。

超过图形硬件的最大纹理大小的图面

对于大多数图形硬件而言,大型图面是指达到 2048x2048 或 4096x4096 像素大小的图面。

视频 RAM 要求超过图形硬件内存的任何操作

您可以使用 Windows SDK 中所含的 WPF 性能分析工具工具来监视应用程序的视频 RAM 使用率。

分层窗口

分层窗口使 WPF 应用程序可以将内容呈现到屏幕中的非矩形窗口。在 Windows Vista 上,分层窗口是硬件加速的。在其他系统上,如 Windows XP,分层窗口是通过软件来呈现的,没有硬件加速。

在 WPF 中,您可以通过设置以下 Window 属性来启用分层窗口:

下面的图形硬件功能定义呈现层 2:

功能

说明

DirectX 版本

必须大于或等于 9.0。

视频 RAM

必须大于或等于 120MB。

像素着色器

版本级别必须高于或等于 2.0。

顶点着色器

版本级别必须高于或等于 2.0。

多纹理单元

单元数必须大于或等于 4。

下表列出了支持呈现层 2 的常用图形卡:

制造商

模型

ATI

Radeon 型号:9550、9600、9800 以及 X 系列

Intel

Intel GMA900 型号:915G

Intel GMA950 型号:945G

NVIDIA

Geforce FX 系列、6xxx 系列以及 7xxx 系列

其他资源

下面的资源可帮助您分析 WPF 应用程序的性能特征。

图形呈现注册表设置

WPF 提供四个注册表设置来控制 WPF 呈现:

设置

说明

禁用硬件加速选项

指定是否应启用硬件加速。

最大多级采样值

指定消除三维内容锯齿的多级采样级别。

必需的视频驱动程序日期设置

指定系统是否对 2004 年 11 月之前发布的驱动程序禁用硬件加速。

使用参考光栅器选项

指定 WPF 是否应使用参考光栅器。

知道如何参考 WPF 注册表设置的任何外部配置实用工具都可以访问这些设置。还可以直接使用 Windows 注册表编辑器来访问这些值,从而创建或修改这些设置。有关更多信息,请参见图形呈现注册表设置

WPF 性能分析工具

WPF 提供了一套性能分析工具,来帮助您分析应用程序的运行时行为,并确定可以应用的性能优化的类型。下表列出了 Windows SDK 工具 WPFPerf 中包括的五个性能分析工具:

工具

说明

事件跟踪

用于分析事件并生成事件日志文件。

分析器

用于分析呈现行为。

跟踪查看器

以 WPF 用户界面的格式记录、显示和浏览 Windows 事件跟踪 (ETW) 日志文件。

可视化探查器

用于按可视化树中的元素分析 WPF 服务(如布局和事件处理)的使用。

工作集查看器

用于分析应用程序的工作集特征。

可视化探查器工具套件提供性能数据的丰富图形视图。在此屏幕快照中,可视化探查器的“CPU Usage”[CPU 使用率]部分使您可以清楚地了解对象对 WPF 服务(如呈现和布局)的使用情况。

可视化探查器显示输出

可视化探查器显示输出

有关 WPF 性能工具的更多信息,请参见 WPF 性能分析工具

DirectX 诊断工具

DirectX 诊断工具 Dxdiag.exe 旨在帮助您解决与 DirectX 有关的问题。DirectX 诊断工具的默认安装文件夹是:

~\Windows\System32

当您运行 DirectX 诊断工具时,主窗口中包含一组选项卡,使您可以显示和诊断与 DirectX 有关的信息。例如,“系统”选项卡提供有关您的计算机的系统信息,并指定安装在您的计算机上的 DirectX 的版本。

“DirectX 诊断工具”主窗口

屏幕快照:DirectX 诊断工具

请参见

概念

优化 WPF 应用程序性能

WPF 性能分析工具

图形呈现注册表设置

动画提示和技巧

参考

RenderCapability

RenderOptions