Я использую glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, n, 100)
для создания 100 цилиндров в OpenGL.Теперь я хочу поместить их в простую сетку в пространстве.Таким образом, каждый цилиндр будет на 10 единиц дальше от следующего.Обратите внимание, что изменятся только координаты x и z.
example cylinder positions:
1 = (0,0,0)
2 = (0,0,10)
3 = (10,0,0)
4 = (10,0,10)
Я знаю, что gl_InstanceID
в вершинном шейдере будет уникальным последовательным идентификатором для каждого цилиндра.Я не могу понять, как использовать этот идентификатор для создания уникальных, равномерных координат x, y, z.Я прочитал, что вы можете использовать наиболее значимые биты gl_InstanceID для координаты х и наименее значимые для z.Я не знаю, как извлечь эти биты из идентификатора в GLSL.
Итак, мой вопрос, как я могу извлечь MSB / LSB из идентификатора?