游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2333|回复: 3

DirectX能不能建2个后备缓冲区啊?

[复制链接]

18

主题

67

帖子

73

积分

注册会员

Rank: 2

积分
73
发表于 2008-1-15 18:05:00 | 显示全部楼层 |阅读模式
我用DirectX9的D3D中的sprite来写游戏

游戏是用桌面为背景的,游戏渲染时,把背景和人物图像一起渲染了。。

DirectX能不能建2个后备缓冲区啊?我要把背景设为一个缓冲区(渲染的内容不变的,游戏开始时只加载

渲染一次就行了,但是游戏继续玩下去时,图像还在),  游戏图像一个缓冲区(图像每帧都要渲染)


因为游戏每次渲染时都要把桌面图片这么大的图像渲染一次,吃太多的资源了。。我把背景去掉了,渲

染帧数一下子就提升了一倍。。


能不能实现我的理想啊?如果能,请高手指教下大约什么做!!也请列出几条相关的重要程序,谢谢。

7

主题

35

帖子

35

积分

注册会员

Rank: 2

积分
35
发表于 2008-1-16 18:16:00 | 显示全部楼层

Re: DirectX能不能建2个后备缓冲区啊?

肯定可以,在D3DPRESENT_PARAMETERS中设置BackBufferCount的数量,相应应该还有交换链的设置哈

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-1-16 18:54:00 | 显示全部楼层

Re:DirectX能不能建2个后备缓冲区啊?

如果背景只是一张普通图片
每帧重绘制对现代的显卡来说几乎不会有任何明显性能损失

如果是很多图片合成的,打包为一个batch来渲染也是很快

还可以先把背景渲染到一个单独的renderTarget上,然后保存为纹理
后面用一个全屏sprite来画这张纹理

18

主题

67

帖子

73

积分

注册会员

Rank: 2

积分
73
 楼主| 发表于 2008-1-21 10:37:00 | 显示全部楼层

Re: Re:DirectX能不能建2个后备缓冲区啊?

clayman: ReirectX能不能建2个后备缓冲区啊?

如果背景只是一张普通图片
每帧重绘制对现代的显卡来说几乎不会有任何明显性能损失

如果是很多图片合成...



实际上,每帧重绘背景,FPS一下子就慢了一半
我不刷背景时有120多FPS,刷了只有40多。。(1440*900的分辨率下)。。
如果是600*480的分辨率就几呼不差。。

但是我写的游戏是桌面游戏,以用户的分辨率为基准的。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 23:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表