我使用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?
這正是我最終做的。 –