DirectX9,DirectDraw,优化?

use*_*334 2 c++ directx optimization directdraw

首先,我正在编写游戏.目前在渲染功能中有两个不同函数的调用.一个呈现一些文本,一个呈现精灵.

在我的电脑上(AMD Phenom(TM)II X4 955处理器(4个CPU),~3.2GHz,4096MB RAM DDR2,NVIDIA GeForce GTX 285)当渲染大约200个精灵和大约100 FPS时,我的渲染速度约为2200 FPS渲染约14,500.

我正在使用向量来存储我正在渲染的每个对象的信息,并使用一个具有许多绘制调用的精灵.

VS2008发布模式,完全优化了C++.我知道我听说过左右不要过早地进行优化,但是在这一点上,它对我来说非常好,但在某些计算机上并不是那么好.

我无法想象为数组改变向量,因为我以不确定的方法每帧推动和拉动向量.几乎是随机的.

我尝试了浮动和双打,速度也没有什么不同.

使用DirectDraw而不是DirectX和Sprite Render方法会有所不同吗?由于我不知道DirectDraw和DirectX之间的区别,我不是100%我应该考虑的事情.

游戏在普通计算机上运行良好,但我比较我的游戏是东方.在我试过的最弱的电脑上,东方以60 FPS的速度运行,但我的游戏速度不会超过36~42 FPS.我无法想象我做错了什么,对DirectX和C++这么新.

在这个问题上的任何帮助都会很棒,不幸的是,我不会在一段时间内添加信息或回答问题.

Dav*_*ler 5

你需要一个分析器.

在回复中有一些很好的性能建议,但没关系.尝试在没有探查器的情况下优化程序就像尝试编写没有编译器的程序一样.不要猜测,衡量.

现在有了这样说,分析图形代码是一个臭名昭着的痛苦,并没有(据我所知)任何好的,免费的工具来帮助它.因此,现在不要紧,现在:从一个普通的CPU分析器开始,找出你的哪些呼叫真正占用了你所有的时间.

  • Pix非常适用于优化DirectX顺便说一句.您需要了解DirectX如何工作以查看性能问题.如果你失败了,如果你在nVidia卡上,NV的Perf HUD就是mutz nutz. (2认同)