Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 有没有办法在AGAL中执行按位移位操作?_Flash_Bit Manipulation_Gpu_Bit Shift_Agal - Fatal编程技术网

Flash 有没有办法在AGAL中执行按位移位操作?

Flash 有没有办法在AGAL中执行按位移位操作?,flash,bit-manipulation,gpu,bit-shift,agal,Flash,Bit Manipulation,Gpu,Bit Shift,Agal,如果我将所有颜色编码为单个浮点值(RGB),如下所示: //每个通道从0到255 红色您不需要这样做。在顶点流中使用字节4输入,压缩的颜色将自动为您解包!纹理也做同样的事情。无论如何,常量寄存器始终是4个浮点值。您应该开始将颜色视为4个向量,其中4个值在[0..1]范围内 也就是说,记住位移位只是除法和截断。x> >1与trunc(x/2.0)相同。AGAL没有截断,只有分数部分,对于正x,trunc(x)与x-frac(x)相同 您不需要这样做。在顶点流中使用字节4输入,压缩的颜色将自动为您解

如果我将所有颜色编码为单个浮点值(RGB),如下所示:

//每个通道从0到255

红色您不需要这样做。在顶点流中使用字节4输入,压缩的颜色将自动为您解包!纹理也做同样的事情。无论如何,常量寄存器始终是4个浮点值。您应该开始将颜色视为4个向量,其中4个值在[0..1]范围内


也就是说,记住位移位只是除法和截断。x> >1与trunc(x/2.0)相同。AGAL没有截断,只有分数部分,对于正x,trunc(x)与x-frac(x)相同

您不需要这样做。在顶点流中使用字节4输入,压缩的颜色将自动为您解包!纹理也做同样的事情。无论如何,常量寄存器始终是4个浮点值。您应该开始将颜色视为4个向量,其中4个值在[0..1]范围内


也就是说,记住位移位只是除法和截断。x> >1与trunc(x/2.0)相同。AGAL没有截断,只有分数部分,对于正x,trunc(x)与x-frac(x)相同

下面是一个描述过的案例,我发现AGAL中的位操作在从RGB颜色通道解包内容时非常有用。它假设您已经知道位操作的算术等价物,如下所示:


A模数可在AGAL中计算,其中A%b=frc(A/b)*b。例如,由于位掩码&1和&3运算分别是2和4的模运算(即&moddivisior-1),因此可以使用它们。左/右移位是简单的乘/除2(2^n)的幂,其中n是移位的位数。或者“|”运算只是简单的加法,当然,在左移yr位之后。

这里有一个描述过的例子,我发现AGAL中的位运算在从RGB颜色通道解包内容时很有用。它假设您已经知道位操作的算术等价物,如下所示:

A模数可在AGAL中计算,其中A%b=frc(A/b)*b。例如,由于位掩码&1和&3运算分别是2和4的模运算(即&moddivisior-1),因此可以使用它们。左/右移位是简单的乘/除2(2^n)的幂,其中n是移位的位数。或者“|”操作只是简单的加法,当然是在左移yr数字之后

//Each Channels are from 0 - 255
red << 16 | green << 8 | blue;