这个星期通过使用NVPerfHUD查找3D engine的瓶颈
在Pentium 3 933 + Geforce2 MX 400的机器上,将3fps提升到约15fps
问题主要存在于:
        1.  过大或是不符尺寸的贴图,占用太多的纹理带宽,导致GPU因显存不足而频繁交换
                    a 尽量缩小贴图
                    b 使用dds压缩
                    c 使用mipmap

2.  Dynamic Vertex Buffer在Lock和Unlock中花费太多的时间,在lock时GPU会一直idle
                    a  不要在lock后才进行vertex interpolate操作
                    b  创建一个临时的memory buffer,将计算完毕后的vertex再memcpy到VB

3.  能用static vertex buffer就不要使用dynamic vertex buffer
                    a  static vertex buffer可能会被driver放在video memory中
                    b  dynamic vertex buffer需要lock/unlock,浪费太多时间

4.  尽量!尽量!减少DrawPrimitive的调用次数!增加batch中的triangles的个数!
                    a  太多的DP调用,会让CPU疲于奔命与driver通讯,而GPU却一直在idle
                    b  太少的triangles满足不了GPU的欲望
                    c  CPU bound
                        25k batches/s @ 100% 1 GHz CPU
                        – Target: 30fps; 2GHz CPU; 20% (0.2) Draw/SetState:
                        – X = 333 batches/frame

5.  在排序渲染对象时使用std::sort而不是qsort
                    a  qsort使用的是function pointer,多了一次指针寻址,而且compiler无法将compare function inline
                    b  std::sort使用的是function object,可以保存状态,有机会inline,减少了开销

一旦CPU Bound,再如何优化,所能够提升的空间是非常有限的,因为CPU的Hz决定了“DP调用次数/帧”,所以最重要的事情是:more triangles/DP,less DP/frame!

转载于:https://www.cnblogs.com/oiramario/archive/2005/11/25/284224.html

fps up up!!!相关推荐

  1. 关于csgo的观看录像fps低_中国CSGO神秘天才欲初登赛场!却因这件事被无数人所质疑!!...

    不得不说,在近几年随着中国电子竞技的蓬勃发展,我们在电竞的总体实力上也是越来越强了.比如去年英雄联盟中国包揽了所有大型比赛的冠军,Dota2在TI上的三冠五亚等等,无疑不证明了中国电竞渐渐成为了一股不 ...

  2. 使用Python,OpenCV线程化方式提高视频FPS(每秒帧数)

    使用Python,OpenCV处理视频流时,获得更高FPS(Frams Per Second)的"秘密"是将I / O(即从摄像机传感器读取帧)交给线程去处理: 读取帧 I/O是阻 ...

  3. Unity三维游戏开发C#编程大师班 Masterclass In C# Programing Unity 3D Game Development FPS

    本课程采用现代游戏开发(Unity 2021)的最新内容和最新技术 学习任何东西的最好方法是以一种真正有趣的方式去做,这就是这门课程的来源.如果你想了解你看到的这些不可思议的游戏是如何制作的,没有比这 ...

  4. C#和Unity游戏开发者大师班2021 (2D,3D和FPS)

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确) |大小:11.1 GB |时长:22h 31m 含项 ...

  5. Blender从头开始装配和动画制作低多边形风格的FPS手臂

    Rigging and Animating Low Poly FPS Arms in Blender MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语 ...

  6. Transformer 又立功了!又快(420 fps)又好的车道线检测算法

    点击上方↑↑↑"视学算法"关注我 来源:公众号 我爱计算机视觉 授权 分享一篇新出的论文 End-to-end Lane Shape Prediction with Transfo ...

  7. CPU上跑到 100 fps 的高精度PyTorch人脸特征点检测库

      视学算法分享   作者 | cunjian 编译 | CV君 转自 | 我爱计算机视觉 [导读]向大家推荐一款基于PyTorch实现的快速高精度人脸特征点检测库,其在CPU上的运行速度可达100 ...

  8. 人脸对齐--Face Alignment at 3000 FPS via Regressing Local Binary Features

    Face Alignment at 3000 FPS via Regressing Local Binary Features CVPR2014 https://github.com/yulequan ...

  9. c语言游戏call调用,C语言-植物大战僵尸-刷僵尸call;fps游戏CS-方框透视(矩阵+传统)...

    C语言-植物大战僵尸-刷僵尸call:fps游戏CS-方框透视(矩阵+传统)前言:大家好,我是向上先生,嘿嘿~最近在学习逆向.反汇编等等,首先我在非常感谢52pojie这个平台,差不多很多学习资源都是 ...

  10. sift线特征提取代码_Transformer 又立功了!又快(420 fps)又好的车道线检测算法

    分享一篇新出的论文 End-to-end Lane Shape Prediction with Transformers,该文为车道线检测问题建立参数模型,使用Transformer捕获道路中细长车道 ...

最新文章

  1. .net中语音识别和语音合成(二)语音合成提高篇
  2. linux awk 获取最后一列 获取倒数第二列
  3. python自动化办公脚本下载-基于python实现自动化办公学习笔记二
  4. 修改git commit默认触发的编辑器
  5. textarea标签内的文字无缘故居中解决原因
  6. python rabitmq_python使用rabbitmq实例二,工作队列
  7. 特征筛选4——斯皮尔曼相关系数筛选特征(单变量筛选)
  8. 错误记录(二)java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误时的原因及解决办法
  9. Bailian2994 拼装模型【哈夫曼树】
  10. 防毒墙APT防护抗DDOS攻击
  11. 计算机代码坑人小程序bat,运用bat写的整人小程序有哪些?
  12. python判断素数的函数_python判断是否为素数
  13. Anomaly Detection with partially Observed Anomalies论文笔记
  14. php+剧影评系统 毕业设计-附源码140859
  15. matlab 判断矩阵是否正定
  16. php微信里面换行符,如何在字符串中间加换行符js微信小程序实现人脸识别
  17. 解决Win10更新后无法开启移动热点的问题
  18. Vue常用经典开源项目汇总参考-海量
  19. python爬虫学习笔记分析Ajax爬取果壳网文章
  20. 有苦有乐的算法 --- 一个无序数组,如果从小到大排好序,任何一个元素任何一个元素移动索引长度不超过k,实现排序

热门文章

  1. bzoj 3450: Tyvj1952 Easy(概率DP)
  2. matlab imresize
  3. 改变灰度图像直方图的均值和标准差
  4. [Python] 关键字 assert
  5. python数据存储系列教程——python中mongodb数据库操作:连接、增删查改、多级路径
  6. 汇编语言上机考试三星题——根据键盘输入调用子程序显示子程序的入口地址
  7. android 启动一个应用,android 在一个应用中启动另一个应用
  8. [转载][HASS.IO] 【HASSOS安装】成功安装HASSOS 1.9(避开了大部分坑版)
  9. linux下搭建python机器学习环境
  10. Mybatis 单独项目