Что именно делает glEnableVertexAttribArray? - PullRequest
41 голосов
/ 09 августа 2011

Я читал:

http://alfonse.bitbucket.io/oldtut/Basics/Tut01%20Dissecting%20Display.html

Я не совсем уверен, что эта функция делает.Я думаю , что позволяет использовать данный VBO, но я не уверен.

Я думал, что это то, что glEnableClientState(GL_VERTEX_ARRAY) сделал.

Ответы [ 3 ]

30 голосов
/ 09 августа 2011

Я читал: http://alfonse.bitbucket.io/oldtut/Basics/Tut01%20Dissecting%20Display.html

Тогда, пожалуйста, прочитайте страницу next ;Я точно объясняю, что он там делает;)

Если я могу процитировать себя:

Мы присвоили индексу атрибута позиции атрибута 0 в вершинном шейдере, поэтому вызовglEnableVertexAttribArray (0) включает индекс атрибута для атрибута позиции.... Если атрибут не включен, он не будет использоваться во время рендеринга.

4 голосов
/ 09 августа 2011

Он похож на массив вершин, но хранит дополнительные дополнительные значения для каждой точки, а не ее координаты. Возможно, вы захотите сохранить температуру, плотность, уровень сигнала в каждой точке, например, в приложении для моделирования, или, возможно, значение урона для игры

2 голосов
/ 05 мая 2019

Немного опоздал на вечеринку.

Существует еще один способ указать данные для атрибута вершины, не массив , способ:

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glVertexAttrib.xml

Таким образом, мы указываем данные только для одной вершины, эти данные будут реплицироваться для всех вершин.

Чтобы использовать данные без массива , вызовите glDisableVertexAttribArray.

Чтобы использовать массив данных, позвоните glEnableVertexAttribArray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...