RBG值是0-255整数,那么为什么选择float4作为矢量数据类型?
在我看来,字节将是Fuse中颜色的理想数据类型。
答案 0 :(得分:1)
在某些上下文中,RGB值仅为1字节(0-255)值。常用的色彩空间很多,使用多于或少于1个字节来重复颜色(例如紧凑的8位和16位色彩空间,或每个通道使用16位甚至32位的HDR色彩空间)。在处理图像和GL纹理时,这些不仅仅是理论用途。
重要的是,每个值代表一系列值,从0,无强度到1,全强度,对于该通道。这就是使用float
的原因:它是表示标准化范围的正确语义类型。它也恰好是Fuse的默认图形后端OpenGL用于表示颜色。
float
具有连续值的优势,与具有离散增量的byte
不同。这对插值很重要。考虑两种颜色之间的动画,具有线性渐变,改变不透明度或降低饱和度;所有这些都需要在连续的值范围内完成,例如float。
float
也允许值大约为1,低于0.虽然这些值无法在最终显示中反映出来,但它们在计算过程中起作用。如果您按顺序进行多种颜色操作,则不希望过早地限制您的值。
不要担心内存带宽或存储空间等问题。实际存储的颜色值是占用内存的微小部分。
此外,Fuse支持颜色表示法的常用十六进制语法。您可以使用简单的#FAA
表示浅红色,或#AB74FD80
表示更精确的半透明颜色。
答案 1 :(得分:0)
首先,我假设浮动你的意思是一个4字节的值。
我可能继续前进,但你明白了。