首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能用GLSL中的整数做什么?

你能用GLSL中的整数做什么?
EN

Stack Overflow用户
提问于 2015-12-04 12:07:13
回答 1查看 2.3K关注 0票数 3

在GLSLes2.0中,使用整数可以做的事情似乎非常有限。

例如:

  • 不支持按位操作。
  • 没有任何内部函数似乎接受int类型。

所以,似乎你唯一能用整数做的事情是:

  • 将整数赋值给整数
  • 按索引访问数组元素
  • 基本算术(-+*/),但只在其他整数之间。不存在允许将floatint添加到一起的运算符。
  • 把它们比较一下。
  • 将它们转换为其他类型
  • vec构造函数允许您传递整数。

真的是这样吗?除了int构造函数之外,是否还有其他接受vec参数的内部函数?您可以在floatint之间执行任何操作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-04 12:23:18

您是正确的,整数的用例是有限的。根据OpenGL ES阴影语言规范,4.1.3:

整数主要是作为编程辅助工具支持的。在硬件级别,实际整数将有助于高效地实现循环数组索引,以及引用纹理单元。但是,在硬件中,不需要将语言中的整数映射为整数类型。预计底层硬件不完全支持范围广泛的整数操作。OpenGL ES阴影语言实现可以将整数转换为浮动以对其进行操作。因此,没有可移植的包装行为。

由于无法保证GLSL ES整数类型映射到硬件整数类型,所以它只对编译时类型检查有用,在运行时几乎没有效果。规范中列出了需要整数的所有位置。

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

https://stackoverflow.com/questions/34088055

复制
相关文章

相似问题

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