游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 轩辕崇正

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

[复制链接]

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

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

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

如果用DirectDraw/GDI纯CPU合成图片,随便你存那里。

如果用OpenGL/Direct3D渲染,你必须符合显卡支持的格式。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

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

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

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

如果用DirectDraw/GDI纯CPU合成图片,随便你存那里。

如果用OpenGL/Direct3D渲染,你必须符合显卡支持的格式。


能找到的就只有D3DFMT_R5G6B5了,这个应该普遍都支持,
那这样的话,源图像缓冲得等到销毁表面的时候才能释放了..因为会一直需要它来进行alpha混合计算.也就是说,如果我要渲染1000张图片,我就得准备两倍的内存空间,即一份源图像缓冲,一份是表面缓冲...有点得不偿失的感觉,,计算量大了,存储空间也大了,我看还真不如就用D3DXCreateTexture()给我把尺寸拉伸成2的次幂得了。.. [em7]

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

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

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

非2次幂贴图有2种,一种是替代性质的,不支持很多特性。在OpenGL 3/Direct3D 10之后的显卡,是支持所有特性的。
不过你只是简单的平面显示,只要不考虑垃圾显卡和intel显卡,应该不会有什么问题。

坚持用D3D有一个简单的办法就是将图片转换成DDS格式,DDS格式中直接就有D3D支持的很多标准格式,而且D3DX在加载DDS文件时,会自动处理显卡不支持的情况。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

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

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

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

非2次幂贴图有2种,一种是替代性质的,不支持很多特性。在OpenGL 3/Direct3D 10之后的显卡,是支持所有特性...


dds本身就不支持非2的次幂,这个我早已没什么办法了,只有2的次幂的图片才能使用dds,比如256×256的场景块.
哎,实在不行,只能用D3DXCreateTexture()了,还是这个可行一些,拉伸就让他拉吧.. [em15]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 06:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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