在应用程序中使用 WPF生成三维场景,可以在视觉给用户提供了很好的展现效果,相反在此过程中对计算机系统资源及硬件设备的需求条件也是很苛刻的。下面我就重点说明下wpf处理三维图形在哪些方面需要考虑性能优化。
一、图形硬件加速
wpf中的图形呈现都是通过图形卡的GPU来进行计算处理的,一般WPF 系统定义了三个呈现层:呈现层 0 无图形硬件加速。DirectX 版本级别低于 7.0;呈现层 1 部分图形硬件加速。DirectX 版本级别高于或等于 7.0 且低于 9.0。视频 RAM必须大于或等于30MB。多纹理单元单元数必须大于或等于 2(显卡AGP速率2X);
呈现层 2 大多数图形功能都使用图形硬件加速。DirectX 版本级别高于或等于 9.0。视频 RAM必须大于或等于120MB。多纹理单元单元数必须大于或等于 4(显卡AGP速率4X或更高8X、16X)。
二、三维模型材质的使用
一般三维模型材质的使用,多数会用到Brush,但不同的Brush材质呈现的速度也不同,SolidColorBrush(直接给模型添加固有色) 、LinearGradientBrush 相对于ImageBrush、VisualBrush等运算速度要快得多,已缓存的Brush比未缓存的Brush快。
三、模型的创建
在三维场景中我们尽量创建GeometryModel3D三角面片小于60.000个,顶点小于20.000个,尽量重复使用外形变化不大的模型,除非有新形状需要从新创建模型,尽量在一个viewport3D中创建子模型不要创建多个viewport3D。
四、关于3d抗锯齿
wpf中的3d抗锯齿,只适合于vista系
一、图形硬件加速
wpf中的图形呈现都是通过图形卡的GPU来进行计算处理的,一般WPF 系统定义了三个呈现层:呈现层 0 无图形硬件加速。DirectX 版本级别低于 7.0;呈现层 1 部分图形硬件加速。DirectX 版本级别高于或等于 7.0 且低于 9.0。视频 RAM必须大于或等于30MB。多纹理单元单元数必须大于或等于 2(显卡AGP速率2X);
呈现层 2 大多数图形功能都使用图形硬件加速。DirectX 版本级别高于或等于 9.0。视频 RAM必须大于或等于120MB。多纹理单元单元数必须大于或等于 4(显卡AGP速率4X或更高8X、16X)。
二、三维模型材质的使用
一般三维模型材质的使用,多数会用到Brush,但不同的Brush材质呈现的速度也不同,SolidColorBrush(直接给模型添加固有色) 、LinearGradientBrush 相对于ImageBrush、VisualBrush等运算速度要快得多,已缓存的Brush比未缓存的Brush快。
三、模型的创建
在三维场景中我们尽量创建GeometryModel3D三角面片小于60.000个,顶点小于20.000个,尽量重复使用外形变化不大的模型,除非有新形状需要从新创建模型,尽量在一个viewport3D中创建子模型不要创建多个viewport3D。
四、关于3d抗锯齿
wpf中的3d抗锯齿,只适合于vista系