2014-12-07 3 views
0

то, что я пытаюсь сделать, это получить Position из вершин после перевода, поворота, масштабирования и получить направление Normal, после перевода, поворота, масштабирования, а затем передать значения на мой C++ приложение, возможно?Возможно ли получить данные из шейдеров

+1

напишите его текстуре, а затем получите данные текстуры в приложении C++ (вам понадобится кодировать ваши данные в соответствии с форматом текстуры), а также вы ограничены количеством вершин с использованием используемого размера текстуры. Также может быть вам нужно добавить индекс точки к вашим данным сетки, чтобы шейдер знал, где писать внутреннюю текстуру ... – Spektre

ответ

2

Возможно, да, но самый элегантный способ зависит от имеющегося профиля версии OpenGL. Наиболее элегантным решением будет обратное преобразование вершин https://www.opengl.org/wiki/Transform_Feedback

Если у вас нет VTF, вам нужно будет записать информацию в фреймбуфер (в объекте буфера фрагмента) для чтения (это, конечно, не позволит вам увидеть «изображение», но просто дайте вам информацию с цветовой кодировкой). Render в режиме GL_POINTS используйте gl_VertexID, чтобы установить положение фрагмента, передать преобразованные данные в шейдер фрагмента и перенести фрагментатор в нужные цветовые каналы.

Смежные вопросы