GLSL - 左右移位操作问题

时间:2011-04-06 13:42:35

标签: glsl

我正在尝试在我的GLSL着色器中使用<<>>操作(从字节纹理中解压缩int)。但是,如果我使用它们,着色器停止工作,编译器写入没有错误。其他运营商如|&可以使用。

2 个答案:

答案 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着色语言具有以下运算符。标记为保留的是非法的。

     
      
  • 逐位移位(保留)
  •