我正在尝试在我的GLSL着色器中使用<<
和>>
操作(从字节纹理中解压缩int)。但是,如果我使用它们,着色器停止工作,编译器写入没有错误。其他运营商如|
,&
可以使用。
答案 0 :(得分:2)
>
和<
是执行比较的运算符。比特移位运算符为>>
和<<
。
尽管这些运营商在GLSL中得到认可,但它们在1.20版本中“保留供将来使用”。根据规范,它们在4.10版本中是合法的。我不知道他们引入了哪个版本。
答案 1 :(得分:0)
在GLSL版本1.30(public string[] ProductName()
{
var productIds= OrderNow(); // Gets the array of product ids
return context.Products
.Where(u => productIds.Contains(u.ProductId))
.Select(p => p.ProductName)
.ToArray();
}
)中添加了按位移位运算符<<
和>>
,OpenGL版本为3.0。
请参阅The OpenGL® Shading Language, Language Version: 1.30 - Chapter 1.2 Changes:
以下是1.3版中添加的功能摘要:
- 按位移位和屏蔽
在早期版本中,运算符#version 130
和<<
已被保留。
请参阅The OpenGL® Shading Language, Language Version: 1.20 - Chapter 5 Operators and Expressions:
OpenGL着色语言具有以下运算符。标记为保留的是非法的。
- 逐位移位(保留)