不懂就得问-----为什么我的小游戏跑这么慢他们大游戏跑那么快? 用OGL做了个小游戏,非常简单的一个,SDK程序而已,可别看它小,跑起来暴占资源.CPU有时50%!可是我看EA公司的大游戏,如极品飞车六,里面我看如果是实时演算的话,至少十个线程吧.光影,声音等一应俱全. 但极品六跑起来所占的资源尤其是CPU资源非常少, 请问它这可能是怎么做到的. 游戏都得与程序交互,不实时演算还有什么方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 游戏程序的优化很有学问,牵扯到很多汇编知识,我以前玩的一个网络游戏,占内存不多,但是占用全部cpu,运行起来切换到其他程序就慢的要死,显然程序没有优化,这方面的东西我不懂,顶一下而已。 我们做的东西都是小打小闹的,人家游戏公司用DirectX,输入输出的效率高了不知多少,更有采用专门的游戏引擎为核心,和我们的东西不可同日而语。 游戏用D3D,OGL这些接口函数把演算的大部分工作丢给了GPU,咱们的东西却实打实地让CPU一个“人”在忙乎,你说它会不会累?呵呵 照雪上加冰的说法,还是有点不妥啊,Doom这种划时代的游戏,它主要也是OGL做的.就算他优化得再好,也不可能比我这个小东西跑得快吧?现在我如果画个大一点的球,加上反走样,30的帧频马上降到个位数. 我来说一下:第一:关于doom,doon中使用的ogl是被coder修改过的,也就是它里面至少会与我们用的ogl不同,去看看他代码的windows.h都是不同的。(ps:奇怪你们大家怎么说ogl?我总是说opengl的)第二:你说加上了反走样就降到个位数了,我不清楚你机器的配置,但是在我机器上也是这样,但是我用win32写代码,不太用mfc的。其实ogl中的反走样算法是用的cpu的资源来模拟的,就是说,它基本上不要求你有个好的显卡,你只要有个够劲的cpu就ok了,还有,就是你看占用cpu是在windows的进程窗口下,还是光看总的效率的,这也是个问题。第三,想要cpu资源占用少,减少对ogl中几何运算的依赖(矩阵运算等等),试试用shader。(就像dx,nv中有shader一样,ogl中也有shader,只是用的人少而已,大家都在用dx的shader)最后,我的表述可能有点问题,大家勿怪,如有错误,小生先行谢罪。 我得说你要转化你的观念,很多时候,优化的意义等于有效的管理,包括内存,文件的组织,计算序列的管理,这些需要的正是丰厚的经验。具体的内容就要看是什么游戏了,rts就是看你的模型的粗细,内存的组织,而极品飞车,就是lod技术的应用,内存的管理等等。我估计你还没有自己做过点东西,做过了,你就知道了。(如果有错,请大家指正。) 求如何获取CEdit编辑框中当前输入焦点的位置 求基于visual stdio平台下的visual c++教程 请教如何发布vs2005+sp开发的程序 老问题, 网络编程中, 传输int, word等受大端小端影响的数据类型如何处理 请问在程序运行时如何获得某一菜单项的标题? 我想开公司了,不知道怎么样才能不违法 RegisterHotKey的参数问题 请问在vc中如何用将一串数值(float value=888)输出来?急用,谢谢! (接上贴)有关ADO编程的出错问题。 请高手帮忙推荐几本书 请教高手:VC 如何实现HTTP隧道? 一个游戏开发的群
现在我如果画个大一点的球,加上反走样,30的帧频马上降到个位数.
第一:关于doom,doon中使用的ogl是被coder修改过的,也就是它里面至少会与我们用的ogl不同,去看看他代码的windows.h都是不同的。(ps:奇怪你们大家怎么说ogl?我总是说opengl的)
第二:你说加上了反走样就降到个位数了,我不清楚你机器的配置,但是在我机器上也是这样,但是我用win32写代码,不太用mfc的。其实ogl中的反走样算法是用的cpu的资源来模拟的,就是说,它基本上不要求你有个好的显卡,你只要有个够劲的cpu就ok了,还有,就是你看占用cpu是在windows的进程窗口下,还是光看总的效率的,这也是个问题。
第三,想要cpu资源占用少,减少对ogl中几何运算的依赖(矩阵运算等等),试试用shader。(就像dx,nv中有shader一样,ogl中也有shader,只是用的人少而已,大家都在用dx的shader)
最后,我的表述可能有点问题,大家勿怪,如有错误,小生先行谢罪。
具体的内容就要看是什么游戏了,rts就是看你的模型的粗细,内存的组织,而极品飞车,就是lod技术的应用,内存的管理等等。
我估计你还没有自己做过点东西,做过了,你就知道了。
(如果有错,请大家指正。)