首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种方法可以在AGAL中进行位移位操作?

有没有一种方法可以在AGAL中进行位移位操作?
EN

Stack Overflow用户
提问于 2012-01-19 04:07:58
回答 2查看 411关注 0票数 1

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

代码语言:javascript
复制
//Each Channels are from 0 - 255
red << 16 | green << 8 | blue;

如何在AGAL中检索这些颜色通道?似乎没有任何按位运算符。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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)相同。

票数 4
EN

Stack Overflow用户

发布于 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数字之后..

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8916685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档