2. 计算机基本颜色以及运算
-
颜色运算
-
RGB(red, green, blue)
(0, 1, 0),强度为0的红光、强度为1的绿光、强度为0的蓝光=》绿
-
Unity
RGB:0 - 255,方便处理 规划 0-1
-
使用向量表示颜色
-
加法:
设:红光(1,0,0)、绿光(0,1,0)
(1, 0, 0) + (0, 1, 0) = (1, 1, 0) =>黄光
-
减法:
设黄光(1, 1, 0),绿光(0, 1, 0)
(1, 1, 0) - (0, 1, 0) = (1, 0, 0) =>红光
-
标量乘法:
设白光(1,1,1)
5 * (1, 1, 1) = (0.5, 0.5, 0.5) => 灰光
-
点积和叉积对于颜色运算来说没有任何意义。
点积:得到标量 颜色没有几何意义
-
分量乘法:
(R0, G0, B0) x (R1, G1, B1) = (R0R1, G0G1, B0B1)
太阳光和吸收率 例子 反射率分量乘法
设:C0 = (1, 1, 1);C1 = (0.75, 0.25, 0.5)
C0 x C1 = (0.75, 0.25, 0.5)
-
-
-
32位颜色
- 我们使用8位来表示一个颜色分量,那么2的8次方其实就是256。计算机下标从0开始,也就变成了0到255。既然每个分量都有256种表示,那么三个颜色分量的组合就是256x256x256约等于1600万色。我们提供给美术同学的颜色分量用0-255来表示,但是在3D里面我们使用[0, 1]区间,因此我们需要将[0, 255]映射到[0, 1]。我们只要除以255就可以映射过去。
- 加入一个分量Alpha来表示透明度,最终为RGBA,这个也就是我们常说的32位色。
-
Unity各种格式
Texure Type设置为Advanced时纹理的格式列表
-
格式
详解
-
Automatic Compressed
压缩RGB纹理,默认选项,常用的漫反射纹理格式。4位/像素(32KB, 256x256)
-
RGB Compressed DXT1
压缩的RGB纹理。常用的漫反射纹理格式。4位/像素(32KB, 256x256)
-
RGBA Compressed DXT5
压缩的RGBA纹理。是漫反射和高光控制纹理的主要格式。1字节/像素(64KB, 256x256)
-
RGB Compressed ETC 4bits
压缩的RGB纹理,是Android工程默认的纹理格式,不支持alpha通道。(32KB, 256x256)
-
RGB Compressed PVRTC 2bits
压缩的RGB纹理,支持Imagination PowerVR GPU2位/像素(16KB, 256x256)
-
RGBA Compressed PVRTC 2bits
压缩的RGBA纹理,支持Imagination PowerVR GPU2位/像素(16KB, 256x256)
-
RGB Compressed PVRTC 4bits
压缩的RGB纹理,支持Imagination PowerVR GPU4位/像素(32KB, 256x256)
-
RGBA Compressed PVRTC 4bits
压缩的RGBA纹理,支持Imagination PowerVR GPU
4位/像素(32KB, 256x256)
-
RGB Compressed ATC 4bits
压缩的RGB纹理,支持Qualcomm Snapdragon,4位/像素(32KB, 256x256)
RGBA Compressed ATC 8bits
压缩的RGB纹理,支持Qualcomm Snapdragon,8位/像素(64KB, 256x256)
-
Automatic 16bits
RGB彩色,16位彩色图最多可以有2的16次方种颜色(低质量真彩色)
-
RGB 16bits
65万色不带alpha,比压缩的格式使用更多的内存,适用UI纹理(128KB,256x256)
-
ARGB 16bits / RGBA 16bits
低质量真彩色,具有16级的红绿蓝和alpha通道(128KB, 256x256)
-
Automatic Turecolor
最高质量的真彩色,也就是32位的色彩(256x256的纹理大小为256KB)
-
RGB 24bits
真彩色不带alpha通道(192KB, 256x256)
-
Alpha 8bits
高质量alpha通道,不带颜色(64KB, 256x256)
-
ARGB 32bits /RGBA 32bits
真彩色带alpha通道(256KB, 256x256)
-