游戏开发论坛

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

离屏表面应该建立在内存还是显存中?

[复制链接]

2

主题

16

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2007-12-7 10:34:00 | 显示全部楼层 |阅读模式
做游戏经常会用到各种绘图方式:
好像一般都是这样做:主表面和back表面放在显存,离屏表面放在内存。
游戏中的精灵一般都是建立在离屏表面,绘图有的是用BltFast(图片不带通道),有的需要alphaBlend(图片带通道)
windows自带的alphaBlend速度比较慢,需要改用mmx优化的alphaBlend,
但是,
离屏表面建立在内存,自己进行alphaBlend速度较快,离屏表面之间BltFast函数很慢
离屏表面建立在显存,自己进行alphaBlend速度很慢,离屏表面之间BltFast函数很快
究竟应该如何处理才能达到最大速度呢?
请教了。

2

主题

79

帖子

85

积分

注册会员

Rank: 2

积分
85
QQ
发表于 2007-12-7 11:56:00 | 显示全部楼层

Re: 离屏表面应该建立在内存还是显存中?


    在内存还是显存,应该是具体情况决定。

    如果离屏表面是用操作系统功能函数填写,如用GDI拷贝,用自已写的图象处理代码实现象素处理等,这样就建立在系统内存里,每次写好再用一次拷贝操作显示。

    如果大部分渲染是用显卡渲染功能实现,如3D的硬件式渲染,最好把离屏表面放在显存,这样减少显卡和系统的通信量。

2

主题

16

帖子

24

积分

注册会员

Rank: 2

积分
24
 楼主| 发表于 2007-12-7 13:03:00 | 显示全部楼层

Re:离屏表面应该建立在内存还是显存中?

如果能在显存中直接进行alpha混和就好了,而不是读到内存再回到显存
现在真是矛盾啊,无论是放到内存还是显存都达不到想要的速度

85

主题

824

帖子

878

积分

高级会员

Rank: 4

积分
878
QQ
发表于 2007-12-7 14:12:00 | 显示全部楼层

Re:离屏表面应该建立在内存还是显存中?

那就用d3d好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-17 17:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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