Указатели на массив вершин OpenGL, разные буферы на компонент - PullRequest
0 голосов
/ 17 февраля 2011

Немного контекста:

Я работаю над эмулятором графического процессора (NV2A, если хотите знать) на уровне push-буфера и пытаюсь реализовать рисование с использованием OpenGL.Команды GPU, которые я должен эмулировать, содержат отдельные указатели для каждого компонента вершины (поэтому позиции находятся в совершенно другом адресе памяти, чем координаты тумана, цвета, координаты текстуры и т. Д.) Другие данные, такие как размер, тип и шаг компонента вершины, такжеприсутствует в push-буфере, но на самом деле они не имеют отношения к этому вопросу.

Я читал об объектах Vertex Array, но что касается моих тестов, то указатели, которые вы можете установить с помощью glVertexAttribPointerвсе должны относиться к объекту буфера вершин, чего я хотел бы избежать, поскольку у меня уже есть копия данных в памяти.

Вопрос:

Возможно ли это вOpenGL для рисования вершин с использованием отдельных указателей (не управляемых каким-либо API OpenGL) для каждого компонента вершины?И как будет выглядеть код, грубо?

PS: Так как я эмулирую GPU, я должен учитывать и программы вершинных шейдеров.Я еще не работал над этим, поэтому любые предложения по этому вопросу тоже приветствуются.ТИА!

1 Ответ

2 голосов
/ 17 февраля 2011

Вам не нужно использовать VBO, glVertexAttribPointer получает обычный указатель на процессор, если VBO не привязано (вы можете вызвать glBindBuffer(GL_ARRAY_BUFFER, 0), чтобы убедиться). И да, вы можете установить один адрес для каждого потока атрибутов.

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