четверг, 8 марта 2012 г.

Основы FBO в OpenGL. Уроки.

Так как все еще нет времени закончить новый цикл статей, то продолжу потихоньку выкладывать старые :)

В этот раз под руку попались мои уроки по FBO. На полноту они конечно не претендуют, так как с момента написания статьи появились некоторые новые расширения, такие как GL_EXT_framebuffer_blit и GL_EXT_framebuffer_multisample, вышло 6 новых версии OpenGL, появилось целое семейство видеокарт на новой архитектуре и многое другое. Тем не менее, основная масса материала все так же относится к 2007-2008 годам, из которых было всего две русскоязычных статьи, одной из которых уже нет на просторах интернета, так что надеюсь и на мой цикл уроков найдется благодарный читать :)


Как появится свободное время, постараюсь дополнить этот цикл уроков статьями по копированию буфера кадра и мультисэмплингу.

Содержание:

  1. Часть первая, немного теории
  2. Часть вторая, простой пример
  3. Часть третья, буфер глубины
  4. Часть четвертая, MRT
  5. Часть пятая, чтение
  6. Часть шестая, R2VB
  7. Ссылки по теме    


Основы FBO в OpenGL. Ссылки по теме

Часть первая, немного теории
Часть вторая, простой пример
Часть третья, буфер глубины
Часть четвертая, MRT
Часть пятая, чтение
Часть шестая, R2VB


Ну и в конце как всегда предлагаю познакомиться с существующей литературой по FBO, PBO и R2VB и VTF.

Основы FBO в OpenGL. Часть шестая, R2VB

Часть первая, немного теории
Часть вторая, простой пример
Часть третья, буфер глубины
Часть четвертая, MRT
Часть пятая, чтение
Часть шестая, R2VB
Ссылки по теме    


В предыдущей части мы с вами немного познакомились с технологией PBO и узнали что при помощи нее как-то можно перенести данные в вершинный буфер (VBO). Простое копирование не представляет интереса для нас, потому рассмотрим более сложный случай - осуществление рендеринга прямо в вершинный буфер. Сокращенно эту технологию называют R2VB, что расшифровывается как  "Render to Vertex Buffer". 

Основы FBO в OpenGL. Часть пятая, чтение

Часть первая, немного теории
Часть вторая, простой пример
Часть третья, буфер глубины
Часть четвертая, MRT
Часть пятая, чтение
Часть шестая, R2VB
Ссылки по теме    
Используя FBO мы получаем в руки мощнейший инструмент по работе с эффектами, это и многопроходные рендеринги, пост-эффекты, тени, множественные источники света и многое многое другое. Но этим возможности FBO не ограничиваются. В предыдущих главах мы с вами разобрали как осуществить рендеринг (запись) в текстуру, в этой части статьи мы разберем еще одну важную особенность FBO – чтение из текстур и буферов в системную память, а так же немного познакомимся с технологией PBO (Pixel Buffer Object), которая откроет перед нами новые горизонты и размоет грань между текстурой и вершинным буфером, что откроет перед нами такие перспективные технологии как рендеринг в текстуру, скелетная анимация на GPU, отладка шейдера, математические многопоточные расчеты на GPU (GPGPU) и многое другое, но обо всем по порядку.

Основы FBO в OpenGL. Часть четвертая, MRT

Часть первая, немного теории
Часть вторая, простой пример
Часть третья, буфер глубины
Часть четвертая, MRT
Часть пятая, чтение
Часть шестая, R2VB
Ссылки по теме

В предыдущих частях мы с вами научились создавать буфер FBO, прикреплять к нему буферы рендеринга и текстуры, а так же попробовали разные комбинации этих буферов, но этим технология FBO не ограничивается. Одной из ключевых возможностей FBO является возможность прикрепить к нему несколько буферов цвета и одновременно рисовать в каждый из них. Данная технология носит название MRT (Multiple Render Target). Разберем эту технологию на примере демо, осуществляющего вывод каждого канала цвета в отдельную текстуру.

Основы FBO в OpenGL. Часть третья, буфер глубины

Часть первая, немного теории
Часть вторая, простой пример
Часть третья, буфер глубины
Часть четвертая, MRT
Часть пятая, чтение
Часть шестая, R2VB
Ссылки по теме     В предыдущей части статьи мы научились делать простой рендеринг в текстуру, но для реализации большинства эффектов нам еще может потребоваться буфер глубины. В этой части статьи мы с вами разберем как прикрепить буфер глубины к буферу кадра и сумеем отобразить наш буфер глубины в виде текстуры.

Основы FBO в OpenGL. Часть вторая, простой пример.

Часть первая, немного теории
Часть вторая, простой пример
Часть третья, буфер глубины
Часть четвертая, MRT
Часть пятая, чтение
Часть шестая, R2VB
Ссылки по теме    
Все необходимое о FBO мы уже знаем, теперь закрепим эти знания на практике. Начнем рассмотрения с простейшей задачи - отрендерим всю сцену  в текстуру и выведем на экран скринквад с этой текстурой.

Основы FBO в OpenGL. Часть первая, немного теории

Часть первая, немного теории
Часть вторая, простой пример
Часть третья, буфер глубины
Часть четвертая, MRT
Часть пятая, чтение
Часть шестая, R2VB
Ссылки по теме    

Не так давно мы с вами познакомились технологией VBO (Vertex Buffer Object), рассказывая о этой технологии я неоднократно упоминал о неком FBO, самое время разобраться что же это такое и как им пользоваться.

понедельник, 5 марта 2012 г.

Открытое письмо от Khronos Group

Сегодня получил на почту открытое письмо от Khronos Group, с полным текстом письма можно ознакомиться ниже или по этой ссылке.
 
Если вкратце, то Khronos Group обращается к сообществу COLLADA, приглашая всех объединиться для разработки, тестирования и в дальнейшем регистрации COLLADA как стандарта ISO для для импорта/экспорта файлов между 3D приложениями. Для этих целей они выделили финансирование, открыли форум и выложили в открытый доступ библиотеку и набор ресурсов для тестирования соответствия формату COLLADA 1.4.
 
Видать все-таки придется писать и мне свой парсер COLLADA :)