3D 应用程序性能
原文:3D 应用程序性能
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37591671/article/details/74595999
3D 应用程序性能
渲染 3D 场景比渲染 2D 场景需要做更多的工作。当为 3D 场景应用动画时,WPF 试图以每秒 60 次的频率更新改变的部分。根据场景的复杂程度,这可能很容易耗光显卡内存的资源,从而会导致帧速率下降并且使动画出现抖动。
可以使用几种基本技术改善 3D 应用程序的性能。
- 如果不需要裁剪超出视口范围的内容,将 Viewport3D.ClipToBounds 属性设置为 false。
- 如果不需要在 3D 场景中提供命中测试,将 Viewport3D.IsHitTestVisible 属性设置为 false。
- 如果不在乎更差的指令 —— 在 3D 形状上的粗糙边缘 —— 将 Viewport3D 的RenderOptions.EdgeMode 属性设置为 Aliased。
- 如果 Viewport3D 比所需的更大,改变其尺寸使其更小。
创建最高效的网格和模型的几个提示
只要有可能,就创建单独的复杂的网格而不是几个更新的网格。
如果需要为相同的网格使用不同的材质,只定义 MeshGeometry 对象一次(作为资源),然后重用 MeshGeometry 对象创建多个 GeometryModel3D 对象。
只要有可能,就在一个 Model3DGroup 对象中包装一组 GeometryModel3D 对象,并且将这组对象放置到单个 ModelVisual3D 对象中。不要为每个 GeometryModel3D 对象都创建单独的 ModelVisual3D 对象。
不要定义背面材质(使用 GeometryModel3D.BackMaterial 属性),除非确实要查看对象的背面。同样,当定义网格时,可以考虑忽略不可见的三角形。
尽可能使用纯色画刷、渐变画刷以及图像画刷,而尽可能不要使用 DrawingBrush 画刷和 Visual 画刷,这两个画刷都需要更多的开销。当使用 DrawingBrush 画刷和 Visual 画刷绘制静态内容时,可以缓存画刷中的静态内容以提高性能。为此,将画刷的 RenderOptions.CachingHint 属性设置为 Cache。
3D 应用程序性能的更多相关文章
- C++ 应用程序性能优化
C++ 应用程序性能优化 eryar@163.com 1. Introduction 对于几何造型内核OpenCASCADE,由于会涉及到大量的数值算法,如矩阵相关计算,微积分,Newton迭代法解方 ...
- java程序性能优化
一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util ...
- [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)
[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(二) 利用多线程提高程序性能(下) 本节导读: 上节说了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这 ...
- [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中)
[.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中) 本节要点: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET ...
- [.net 面向对象程序设计进阶] (16) 多线程(Multithreading)(一) 利用多线程提高程序性能(上)
[.net 面向对象程序设计进阶] (16) 多线程(Multithreading)(一) 利用多线程提高程序性能(上) 本节导读: 随着硬件和网络的高速发展,为多线程(Multithreading) ...
- [.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能
[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种. ...
- [原创小工具]软件内存、CPU使用率监视,应用程序性能监测器 v3.0 绿色版
应用程序性能监测器 V3.0 更新内容: 1.对一些代码进行了修改,软件本身的性能有所提升. 应用程序性能监测器 V2.0 更新内容: 1.鼠标移动到曲线区域,显示相关的曲线值 ...
- Java程序性能优化——让你的java程序更快、更稳定
1.Java性能调优概述 1.1.Web服务器,响应时间.吞吐量是两个重要的性能参数. 1.2.程序性能的几个表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:分配是否合理,是否过多 ...
- 提高ASP.NET应用程序性能的十大方法
一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的 ...
随机推荐
- Gym 100952 C. Palindrome Again !!
http://codeforces.com/gym/100952/problem/C C. Palindrome Again !! time limit per test 1 second memor ...
- 004 python 流程控制语句
流程控制语句 1.if判断 语法 a = 10,b = 20# 1if a == 10: print('a等于10')# 2if a > b: print('a大于b')else: pri ...
- 【2017 Multi-University Training Contest - Team 3】Kanade's sum
[Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6058 [Description] 给你n个数; 它们是由(1..n)组成的排列; 然后给你一个数字 ...
- 记号(notation)的学习
数学的记号(notation) 记号具体代表什么含义,取决于你的定义: 比如这样的 d⃗ 一个向量,每个分量 d(i) 表示的是从初始结点 v 到当前节点 vi 的最短路径:也即这样的一个向量的每一 ...
- Unix下后门查找{上}
本文出自 "李晨光原创技术博客" 博客,请务必保留此出处http://chenguang.blog.51cto.com/350944/683699
- linux监测tomcat服务
原文链接:https://blog.csdn.net/qq_37936542/article/details/81086928 项目上线之后,tomcat服务器有时候会莫名其妙的挂掉,利用shell写 ...
- RS-485总线和Modbus通信协议的关系
一.RS-485总线 RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插件以及通信协议,只是OSI规范中物理层的一个标准,RS-485总线采用差分平衡传输方式.由于RS ...
- 【2017"百度之星"程序设计大赛 - 复赛】Arithmetic of Bomb
[链接]http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=777&pid=1001 [题意] 在这里写 [题解] ...
- 洛谷 P2819 图的m着色问题
P2819 图的m着色问题 题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的 ...
- 洛谷 P2655 2038年问题
P2655 2038年问题 题目描述 网络时代,机会与危机共存.“千年虫”解决之后,会不会有新的“虫”出现?回答是肯定的,“2038年”就是一个新的关卡. 也许大家都已经知道计算机的2000年问题是什 ...