如果我将所有颜色编码为一个浮点值(RGB),如下所示:
//Each Channels are from 0 - 255
red << 16 | green << 8 | blue;如何在AGAL中检索这些颜色通道?似乎没有任何按位运算符。
发布于 2012-02-01 14:40:13
您应该不需要这样做。在顶点流中使用BYTES_4输入,您打包的颜色将自动解包!纹理做同样的事情。常量寄存器总是4个浮点数。您应该开始将颜色视为4个向量,其中4个值在0..1范围内。
也就是说,请记住,位移位只是除法和截断。x>>1与trunc(x/2.0)相同。AGAL没有截断而是小数部分,对于正x,trunc(x)与x-frac(x)相同。
发布于 2012-11-21 13:19:57
这里有一个描述的案例,我发现在从RGB颜色通道解包时,在AGAL中按位操作很有用。它假设您已经知道逐位操作的算术等价物tho:http://forum.alternativaplatform.com/posts/list/10343.page#78542
A模数可以在AGAL中完成,其中a%b = frc(a/b)*b。例如,由于位掩码&1、&3运算分别是2和4的简单模运算(即,&(modDivisor-1) ),您可以使用它们。左/右移位只是简单地乘以2的幂(2^n),其中n是移位的位数。或者'|‘操作是简单的加法,当然是在向左移位yr数字之后..
https://stackoverflow.com/questions/8916685
复制相似问题