gpt4 book ai didi

textures - 如何提高 Direct3D 流纹理性能?

转载 作者:行者123 更新时间:2023-12-01 01:30:56 26 4
gpt4 key购买 nike

我正在尝试加速绘制每帧都会改变的全屏纹理。在我的系统上,我可以使用 GDI 和 BitBlt() 获得大约 1000 FPS,但我认为我可以通过使用 Direct3D 和动态纹理来提高性能。相反,我只有大约 250 FPS。

我在配备 ATI HD 4870 和当前驱动程序的 Mac Pro 上运行。

我试过使用动态纹理,这给了我一个小的增益(~15FPS),我试过使用纹理链来避免管道停顿,但没有效果。

我环顾四周,关于以这种方式使用动态纹理的信息很少。

我错过了一些基本的东西吗?

设备设置:

pparams.BackBufferCount = 1;
pparams.SwapEffect = D3DSWAPEFFECT_DISCARD;
pparams.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

纹理创建:

设备->创建纹理(宽度,高度,1,D3DUSAGE_DYNAMIC,
D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &texture, NULL);

纹理更新:

纹理->LockRect(0, &locked, NULL, D3DLOCK_DISCARD);
... 写入纹理数据
纹理->UnlockRect(0);
device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, vertices, sizeof(*vertices));
...

您可以从
http://www.libsdl.org/tmp/SDL-1.3.zip

谢谢!

最佳答案

如果您不需要读回纹理,则可以使用 (D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY) 标志创建纹理。

关于textures - 如何提高 Direct3D 流纹理性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4912404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com