我使用glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, n, 100)
在OpenGL中创建100个柱面。现在我想把它们放在一个简单的太空网格中。所以每个气缸将离下一个10个单位。请注意,只有x和z坐标会改变。GLSL中int的最高位
example cylinder positions:
1 = (0,0,0)
2 = (0,0,10)
3 = (10,0,0)
4 = (10,0,10)
我知道gl_InstanceID
在顶点着色器将是对于每个气缸一个唯一的顺序ID。我无法弄清楚如何使用这个ID来创建唯一的统一的x,y,z坐标。我读过,你可以使用gl_InstanceID的最高有效位作为x坐标,最低有效位作为z。我不知道如何从GLSL中的ID中提取这些位。
所以我的问题是,我怎样才能提取MSB/LSB的ID?
这正是我最终做的。 –