在应用程序中使用 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系统,如果想在xp系统下实现抗锯齿,可以在注册表中设置最大多级采样值 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\MaxMultisampleType 值类型为DWORD一般设为4 根据显卡的性能进行合适的调整。(不过建议最好不使用这种方法,使用修改注册表可以实现抗锯齿,但同时也可能会产生新的呈现问题,比如:三维模型体贴与其他对象重叠产生图形边缘出现虚线等,不过通过设置显卡的代替像素中心功能可以解决虚线问题,但同时也会带来其他不可预知的不稳定因素)
所以根据自己对三维呈现的实际展现要求可以灵活选择优化设置的方法,目的只要一个就是要保证具有稳定、优良的性能又有很好的三维呈现效果。
分享到:
相关推荐
WPF三维立体动画源码 利用viewport3D来呈现
WPF实现三维酷效果源代码 WPF实现三维酷效果源代码 WPF实现三维酷效果源代码
WPF实现三维图书形状的文本编辑器源代码WPF实现三维图书形状的文本编辑器源代码WPF实现三维图书形状的文本编辑器源代码
用WPF模拟三维消防场景的技术实现、详细介绍了各种场景,各种技术。
wpf 三维模型,xaml ,坐标,索引
WPF 中的三维文字的实现 WPF 中的三维文字的实现
wpf三维图形编程code和makeup两种模式,用wpf xaml实现了图形编程,还有就是使用code实现了二维图形生成。
WPF实现的三维地球模型 适合做数据可视化的童靴拿来研究。
WPF三维相关
用WPF简单实现数据可视化,效果图类似matlab中plot3绘制出的图形,代码中含有三维曲面显示,三维条状图显示等
用wpf实现的三维旋转,代码比较少,都是用标签做的
WPF 三维编程代码示例.适合于WPF编程的初学者。
使用HelixToolkit能够十分方便的创建三维模型和添加鼠标坐标,不需要去实现鼠标旋转动画等等,以及封装了相机,能够方便快捷进行场景控制。 创建三维场景十分快捷,这里我踩了一个坑,就是如果在前台xaml定义了相机...
wpf工程中安装配置TeeChartT控件来进行编码的,,引用TeeChart的类,再在wpf的窗体编辑布局界面,即.xaml文件下通过标签导入TeeChart来实现对TeeChart的引用。
以定向钻孔为主要手段的煤矿断层探测分析过程中,针对计算工作量大、可视化程度低、...设计研发了基于WPF框架的断层仿真及三维可视化系统,重点阐述了基于Helix 3D Toolkit开源类库的断层仿真及三维可视化的实现方法。
基于WPF的三维可重构智能粮情监测系统的研究,周慧玲,陈柳江,针对数字化智能粮情监测系统的实际应用需求,本文通过基于.NET框架的WPF设计并实现了一个三维显示并自动重构监测点位置的粮情检测��
用WPF绘三维饼图形!并且每个部分都是可以用鼠标点击的!
wpf + 3d 帮你轻松实现wpf的3D效果
三维相关 WPF VTK
通过WPF的三维材料,动态应用动画等技术,做到多个UI界面视图在三维空间中的动画切换,本例通过键盘快捷键来控制动画。