请问如何在DirectX 7 中实现屏幕的淡入淡出。

prefix 2001-03-11 09:04:00
我用的是16位、24位色深,所以不能用调色板来实现。请教实现方法。
...全文
275 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leon8086 2001-04-26
  • 打赏
  • 举报
回复
最好用后备表面GetDC然后用一个Alpha混合的API函数(对不起,我忘了,你可以查MSDN),直接写Primary Surface的话闪烁感会很强。
abcfish 2001-03-16
  • 打赏
  • 举报
回复
gamma control是个好东西,用起来也比较方便
prefix 2001-03-16
  • 打赏
  • 举报
回复
啊...不对,刚刚打开一张页面到现在已经20分钟了,还没显示出来。
prefix 2001-03-16
  • 打赏
  • 举报
回复
本来想上来说说,但这几天csdn打开一张页面要花10分钟以上,哎...
我试了gammacontrol,觉得效果不好。看起来感觉不是屏幕变暗,而是颜色变暗,但这样一来,画面上一些颜色比较明亮的就会比其它地方慢消失,反正看起来很不好看。
另外,viper的例子我去试试看。gamedragon也请先等等,我得去试试看。
招RD和QA 2001-03-14
  • 打赏
  • 举报
回复
it's easy!
这种alpha效果我已经做了好几遍了。

如果要源码,mailto : lovebr@126.com or brsy@263.net
gamedragon 2001-03-14
  • 打赏
  • 举报
回复
这种淡入淡出效果不需要有多高的帧速率,N太大了根本没有意义,人眼分辨不出来那么点亮度差别,你也不可能让他在眨眼间就完成由黑到白的转换,变快了反倒晃眼,就算帧速高,前后两帧间也要加延时。
当然,上面的代码效率极低,不过只是为了说明个意思。
gamedragon 2001-03-14
  • 打赏
  • 举报
回复
lpData就是锁定surface后得到的缓冲区指针,如果是32位色,那么lpData的类型是
struct {
BYTE R;
BYTE G;
BYTE B;
BYTE reserved;
} *lpData;
src就是你要淡入或淡出的源图,同样也是个上述类型的指针。
铜戈 2001-03-14
  • 打赏
  • 举报
回复
由于windows的资源同步机制等,直接写显存还不如写内存快(blt除外),除非不lock
不如先建一个render buffer,生成好在将其blt.
不过全屏总是很慢,至少我的显卡是(s3 virge,4mb),
能用colorcontrol尽量用
abcfish 2001-03-14
  • 打赏
  • 举报
回复
呵呵,全屏的写象素,看起来眼都跳。

jxh 2001-03-13
  • 打赏
  • 举报
回复
什么是淡入淡出?
prefix 2001-03-13
  • 打赏
  • 举报
回复
gamedragon:老兄,我怎么看不懂你在写什么啊?什么lpData,src?具体对象是什么啊?
gamedragon 2001-03-13
  • 打赏
  • 举报
回复
不好意思,应该是"n--"
gamedragon 2001-03-13
  • 打赏
  • 举报
回复
最简单的,只是说明个意思。N是淡入次数,Width、Height是图像的宽和高,是真彩图像。
for(int n = N; n > 0; n++)
for(int i = 0; i < Height; i++)
for(int j = 0; j < Width; j++, lpData++, src++)
{
lpData->R = src->R*n/N;
lpData->G = src->G*n/N;
lpData->B = src->B*n/N;
}
gamedragon 2001-03-12
  • 打赏
  • 举报
回复
也可以用IDirectDrawGammaControl实现,前提是你的显卡支持这个特性
prefix 2001-03-12
  • 打赏
  • 举报
回复
我想知道问具体的实现方法。请写一段代码吧。
subzero 2001-03-12
  • 打赏
  • 举报
回复
lock表面,操作显存
tlovexyj 2001-03-12
  • 打赏
  • 举报
回复
look

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧