游戏开发论坛

 找回密码
 立即注册
搜索
查看: 8071|回复: 21

好吧,我承认我不懂调色板有什么用?

[复制链接]

14

主题

66

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2011-1-29 12:08:00 | 显示全部楼层 |阅读模式
现在老是用一个资源函数把图像资源调用到内存中使用,我觉得我从来没有用过调色板啊?我想问问到底调色板是怎么用呢?

我理解的是每个系统的Image库应该封装了这样的信息,可以在内存中对图像资源压缩或者干什么。

但是如果考虑到如果自己要实现这样的优化办法,是否需要这样的技术?

希望有人能够回答,当然我明白,我可能真的理解的太少啦。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20547
发表于 2011-1-29 14:08:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

调色板是比较早起的图形数据方式,也就是索引色。

我们现在每个pixel都是RGB组成,32bit里可以把这些数据都包含进去,早起的显卡显存不足以为每个像素都存储独立的RGB,所以只能建一张表,比如256色,然后每个像素用一个byte去表示它这个点在调色板里的对应RGB色彩。

不知道我这样说清楚吗,感觉挺乱,呵呵。

如果可以接受一些色彩丢失,调色板的方式而可以用来节省存储容量。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-1-29 14:09:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

应用一:减少图像数据占用

256色图片,每个象素只占一个字节,相比RGB/RGBA只有1/3与1/4的容量。

应用二:调色板动画或变换

正因为每个象素用的只是索引,所以当我们改变调色板时,图片内容也会得到改变。常见的如2D格斗游戏中常用的1P/2P选同一角色,部分颜色做改变以示区别。

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-29 14:28:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

举个例子:
黑白报纸,总共只有2种颜色:黑色,白色。
采用调色板显示模式时,我们只要定义一个黑色,一个白色,就能让屏幕显示出这张报纸了。

16

主题

154

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
发表于 2011-1-29 15:56:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

8位的调色板就是包含256种像素的数组.图像中实际保存的是这个数组的索引.

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2011-1-29 16:45:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

我也不懂,看看。
是不是这样的:
Red的调色板:char chRed[256]
Green的调色板:char chGreen[256]
Blue的调色板:char chBlue[256]
这样?

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-29 18:43:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

不是的。

定义颜色 0,红色=0,绿色=0,蓝色=0
定义颜色 1,红色=255,绿色=255,蓝色=255
定义颜色 2,红色=64,绿色=0,蓝色=32
......
定义颜色 255,红色=32,绿色=128,蓝色=64(红绿蓝的具体数值根据自己的喜好自定义)

在320x240的屏幕上,
000,255,000,255,000,255,000,255......(横向有320个数)
061,015,155,250,......(同样有320个数)
......
(这样重复240行)
就是一张画面了。

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2011-1-29 20:22:00 | 显示全部楼层

Re: Re:好吧,我承认我不懂调色板有什么用?

TV游戏: Re:好吧,我承认我不懂调色板有什么用?

不是的。

定义颜色 0,红色=0,绿色=0,蓝色=0
定义颜色 1,红色=255,绿色=255,蓝色=255
定义颜色 2...


哦,谢谢,这样我就明白了。
那调色板可以说就是256种关键色了,而每一种关键色代表一个4字节的RGB颜色值,然后整幅图像就是用这些关键色组成的,那么这种图片逼真度也不大吧?因为他无法给出4294967295(即0xFFFFFFFF)种颜色,是吧?

21

主题

296

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
发表于 2011-1-29 23:11:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

是的。毕竟颜色种类只有256种嘛,逼真度当然不高。看上去会非常“干净”。

在2D游戏年代理,这种方式是很流行的。
因为2D游戏并不需要太多的颜色,不会像3D游戏那样需要复杂的光照和透明混合。
动画片里也可以采用这种方式。因为动画片的颜色种类也很少。同屏幕的颜色种类也就几十种。

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2011-1-30 01:22:00 | 显示全部楼层

Re:好吧,我承认我不懂调色板有什么用?

调色板并不一定确定有几种颜色,2/4/8/16/256色都存在过,当然这都是为了凑计算方便。32/64/128色也有人用过。ps2/psp/ps3上还有16位和32位索引色。用法很神奇。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-16 13:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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