я буфер нормальных данных в VBO, а затем указать на него с помощью glVertexAttribPointer:При использовании glVertexAttribPointer какой индекс следует использовать для атрибута gl_Normal?
glVertexAttribPointer(<INDEX?>, 3, GL_FLOAT, GL_FALSE, 0, NULL);
Однако, какое значение следует использовать для первого параметра, индекс, если я хочу данные, чтобы быть связанно с gl_Normal атрибут в шейдерах?
Я использую карту NVidia, и здесь я читаю https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/attributes.php, что gl_Normal всегда имеет индекс 2 для этих типов карт. Но откуда я знаю, что gl_Normal относится к этому индексу для других карт?
Кроме того, использование индекса 2 не работает, и данные gl_Normal в шейдере - все (0,0,0).
Мне известно о glGetAttribLocation и glBindAttribLocation, однако в документации указано, что функция будет вызывать ошибку, если попытается использовать один из встроенных атрибутов вершин, которые начинаются с «gl_».
EDIT: Использование OpenGL 3.0 с GLSL 130.
Эй. Я использую glsl 130, я, наверное, должен был упомянуть, и все ключевые слова «in» и «out» не существуют («Мой плохо!»). Это все еще аналогичный процесс? – ipe369
@ ipe369 Заменить 'in'' атрибутом' в вершинном шейдере. –
А, ладно. Отлично, спасибо человеку! – ipe369