2016-10-02 7 views
-2

Использование glVertexAttribPointer реализация opengl уже знает, к какому местоположение атрибута/индекс в вершинном шейдере Атрибут вершины Объект связан, так почему же необходимо снова указать индекс атрибута в glEnableVertexAttribArray? Я думаю, что после использования glBindVertexArray (VAO); этого могло быть достаточно, чтобы использовать только glEnableVertexAttribArray()? Почему существует необходимость в предоставлении индекса атрибута два раза; один в glVertexAttribPointer и один в glEnableVertexAttribArray()? Прошу вас, я начинаю и не знаю всех аспектов OpenGL.Почему существует потребность в аргументе index в glEnableVertexAttribArray?

[Этот вопрос не дублируется, поскольку некоторые пытаются пометить его как дубликат, чтобы перенаправить свои ответы на некоторые нерелевантные вопросы, чтобы заработать рейтинг, это эгоистичный акт! Пожалуйста, не испортит вопрос, пометив как дубликат, если вы не знаете, как ответить на него.]

ответ

0

Потому что можно установить атрибут вершины к значению, приведенному постоянной для всех элементов с использованием glVertexAttrib. Да, вы могли бы с этим справиться с равномерным, но такой выбор атрибутов, из которого исходит стоимость (полученная из массива или заданная константа), существует уже давно (с тех пор как OpenGL-1.1 , хотя в то время это были не общие атрибуты, а специфические, то есть положение, цвет, нормальный и т. д.), и это наследие натиралось на общие атрибуты вершин.