GLSL着色器属性为整数

Lan*_*opp 5 opengl glsl

我刚学习OpenGL而且遇到了一些问题.我正在使用OpenGL 3.0和GLSL 1.2.

我有一个矩阵数组,我想有选择地应用于不同的顶点.我不是每次想要指示索引时都复制矩阵,而是希望传入一个整数作为索引并使用该整数来选择我想要的矩阵.但是,当我尝试编译我的着色器时,我收到以下错误:

ERROR: 0:5: 'attribute' : cannot be bool or int
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正确的方向,我会很感激.

Mat*_*gro 5

属性可以是整数,但您需要启用较新版本的GLSL才能使用它.尝试将其添加到着色器的顶部:

#version 130
Run Code Online (Sandbox Code Playgroud)

版本130对应于OpenGL 3.0

  • 并将此类属性发送到着色器而不是glVertexAttrib*使用其整数版本 - glVertexAttribI* (3认同)
  • 然后你没有使用OpenGL 3.0 ......你运气不好. (2认同)