Unity Color对比Color32、对应PS的通道解释

1,先说Unity Color与Color32:

官网文档:

Unity - Scripting API: Color

Unity - Scripting API: Color32

Color和Color32可互转。Unity默认貌似用的是Color。那区别是什么呢?

Color:   使用Float (4字节,32位!) 对应一个通道。那么RGBA=4个*4字节*8=128 bit

大有大的好处。能表示的色彩数量也越高。甚至可以跟HDR直接做结合(float,当然可以表示1以上的数据啊)。

Color32: 使用Byte(1字节8位) 对应一个通道,所以RGBA=4个*1字节*8 = 32 bit

小有小的好处。理论上更快,占用内存更低,是Color的1/4。缺点是固定256*256*256=16777216色。无法表示多的色彩。想表示HDR,数据容量已经不够了,解决方案是靠多图或额外增加数据。但是Unity内部是个黑盒,再更底层渲染算法那里的处理也更是说不清楚,所以如果只是想表现1600万色,用这个理论上更优一些。

可以用断点看一下:

2, 再说说 PS通道:

通道:用位去表示,能支持的信息数量。

最常用的8位通道:用8bit (1个字节)的信息,去描述通道内的信息。

那么,颜色模式 RGB颜色8位通道。8*3通道(RGB)=对应24位色彩。8位,能表示的数据范围是0-255,所以可以展示:256*256*256=16777216 个色彩。再加上8位,描述这个像素的透明度的Alpha通道,也正好对应了Unity的Color32数据格式。

PS通道,16位以上的,支持的格式就不多了。所以暂时不讲。

3,显示设备,例如显示器参数问题:

目前主流10亿色显示器,大多数是8抖10的。当然除了显示器,其他显示设备也有更高色深的。暂时不提。

4,常用色深:

想起了多年前,考系统分析师的教材:

色深(Color Depth): 用位bit(不是字节) 去表示色彩数量。

1位:2种颜色,单色光,黑白二色。

8位:256种颜色。比较常用的就是Gif图

16位:部分老游戏、老操作系统使用的。

( 红色占5 个位、蓝色占5 个位、绿色占6 个位,所以红色、蓝色、绿色各有32、32、64 种变化,总共可以组合出64K 种颜色)

24位:目前最常用。有16,777,216色,真彩色。最常用。

32位:一般指,在24位真彩色基础上,增加8位的透明通道。

猜你喜欢

转载自blog.csdn.net/chenggong2dm/article/details/124283791
今日推荐