游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4864|回复: 13

请问2D游戏是否都是用16位的图像格式?

[复制链接]

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2011-4-30 16:04:00 | 显示全部楼层 |阅读模式
我发现风魂++里的图像都是16位的(大话西游2的图像格式也的确是16位),
我之前的做法一直是把这些16位的再转成32位,然后用D3DXCreateTexture()指定D3DFMT_A8R5G6B5的格式,我仔细想了一下,好像不用绕这么一个弯子,好像可以直接将16位的拿去创建和渲染?
那既然16位在图像质量方面已经完全够用了,是否2D游戏都是如此做的呢?? 因为我想不可能他自己用16位格式,然后加载到Surface却要绕个弯子在转成32位的吧?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-30 16:30:00 | 显示全部楼层

Re:请问2D游戏是否都是用16位的图像格式?

原格式和显存显示格式不一定存必要关系。
比如DIABLO2就是图片都是16/256色,但是游戏可以是16/24/32位色。

如使用OpenGL/Direct3D,现今的显卡绝大数多直接支持555格式的纹理

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-30 16:36:00 | 显示全部楼层

Re: Re:请问2D游戏是否都是用16位的图像格式?

hyzboy: Re:请问2D游戏是否都是用16位的图像格式?

原格式和显存显示格式不一定存必要关系。
比如DIABLO2就是图片都是16/256色,但是游戏可以是16/24/32位色。...


因为假如我图像都是16位的,结果每次加载到Surface都要转换成32位,这不是绕了弯子么?有必要么?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-30 16:41:00 | 显示全部楼层

Re:请问2D游戏是否都是用16位的图像格式?

不用

OpenGL/Direct3D是直接支持绘制555格式的纹理的

而DirectDraw/GDI下,由于存在RLE压缩加速绘制,并不是载入时就转换成显存对应格式,而是在绘制时才做转换。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-30 16:47:00 | 显示全部楼层

Re: Re:请问2D游戏是否都是用16位的图像格式?

hyzboy: Re:请问2D游戏是否都是用16位的图像格式?

不用

OpenGL/Direct3D是直接支持绘制555格式的纹理的

而DirectDraw/GDI下,由于存在RLE压缩加速绘制,并不是载入时就转换成显存对应格式,而是在绘制时才做转换。


请问您说的555在D3D中具体是哪一种格式呢?
我翻遍了D3DFORMAT的每一种格式,好想没有A5R5G6B5的格式,只有D3DFMT_R5G6B5
(D3DFMT_R5G6B5显然不行,因为在渲染的时候还要自己手动进行混合计算.)

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-30 16:54:00 | 显示全部楼层

Re:请问2D游戏是否都是用16位的图像格式?

555就是说 R5_G5_B5,也有称为RGB5的

自新一代OpenGL 3/Direct3D 10显卡开始,显卡只支持RGB5_A1格式。当然不用ALPHA就是RGB5了。也就是所谓的555。

如果D3D只有565,那你需要将555手动转换成565格式给D3D用。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-30 17:01:00 | 显示全部楼层

Re: Re:请问2D游戏是否都是用16位的图像格式?

hyzboy: Re:请问2D游戏是否都是用16位的图像格式?

555就是说 R5_G5_B5,也有称为RGB5的

自新一代OpenGL 3/Direct3D 10显卡开始,显卡只支持RGB5_A1格式。当...


我用的DX9 SDK 只有D3DFMT_R5G6B5这么一种格式,没有alpha,那alpha去哪存储? 假如我预先创建表面,我总不能等他渲染的时候,才释放自己的源图像缓冲吧?这内存就不好管理了。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2011-4-30 17:03:00 | 显示全部楼层

Re:请问2D游戏是否都是用16位的图像格式?

使用几位格式,这完全是自由。

《星际争霸》还用的是 8位格式的 PCX格式图片呢。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-4-30 17:05:00 | 显示全部楼层

Re:请问2D游戏是否都是用16位的图像格式?

565/555本就没有ALPHA信息。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
 楼主| 发表于 2011-4-30 17:08:00 | 显示全部楼层

Re: Re:请问2D游戏是否都是用16位的图像格式?

hyzboy: Re:请问2D游戏是否都是用16位的图像格式?

565/555本就没有ALPHA信息。


您的意思是说,alpha必须自己额外找个地方存储?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-13 00:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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