游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4226|回复: 5

如何处理读写显存太慢的问题

[复制链接]

89

主题

207

帖子

221

积分

中级会员

Rank: 3Rank: 3

积分
221
发表于 2004-10-24 05:35:00 | 显示全部楼层 |阅读模式
DirectDraw里实现alpha blend. 程序是双页面Flip(), back页面是在显存里的. 现在需要把back拿出来和src页面(内存里)alpha混合.

无论是lock住back页面自己读显存(逐象素或整行), 还是把back给Blt出来(用官方的Blt或BltFast), 都太慢. (前者时间没算, 后者完成一次384 * 384的显存到内存的Blt, 要花0.1秒左右).

我每一帧都要进行这个alpha blend渲染. 请问各位前辈, 如何加快速度(至少到30FPS以上)?

0

主题

7

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2004-10-24 12:54:00 | 显示全部楼层

Re:如何处理读写显存太慢的问题

如果要直接操纵surface, 那就不该在显存里创建这个surface.不然无论如何都快不起来
不过, 在directx 8 及以后的更新版本中, 微软希望能顺心地操纵surface,Shader就应运而生

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-10-24 16:01:00 | 显示全部楼层

Re:如何处理读写显存太慢的问题

内存ALPHA操作 , 拷贝到主表面

13

主题

978

帖子

978

积分

高级会员

Rank: 4

积分
978
发表于 2004-10-24 17:17:00 | 显示全部楼层

Re:如何处理读写显存太慢的问题

除了主页面,其他页面全放到内存中

89

主题

207

帖子

221

积分

中级会员

Rank: 3Rank: 3

积分
221
 楼主| 发表于 2004-10-24 23:44:00 | 显示全部楼层

Re:如何处理读写显存太慢的问题

使用了各位前辈的思路, 将back页面放到了内存中. 现在速度已经达到了要求.

这个问题困扰了我一天的时间, 呵呵. 谢谢各位前辈, 在下感激不尽

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-10-26 01:13:00 | 显示全部楼层

Re:如何处理读写显存太慢的问题

改用D3D吧,大势所趋。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-22 23:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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