Показаны сообщения с ярлыком opengl. Показать все сообщения
Показаны сообщения с ярлыком opengl. Показать все сообщения

суббота, 14 июня 2008 г.

Йа сделал это!



Дописал до нормального состояния свою стереолибу =) Скачать ее можно вот тут. Ура нах!

среда, 23 апреля 2008 г.

Текущие результаты

Как и хотел, сел сегодня писать курсовик. На текущий момент уже прикрутил к dll'ке работу с фреймбуфером.
Завтра (точнее уже сегодня =))) ) буду прикручивать шейдеры. После этого останется только шейдеры написать нормальные. Точнее надо будет гамму подкорректировать для результирующего изображения, а то на данный момент оно получается слишком темным. Удручает только то, что код шейдеров будет зашит в dll, поэтому после каждого изменения шейдера прийдется перекомпиливать dll, или буду пользовать старый тестовый пример для отладки шейдеров. Еще думаю по шейдерам пройтись специальным верификатором, чтобы они на всех машинах работали...
После того как прикручу работу с шейдерами, думаю выложить рабочую dll. И останется только написать документацию и отчет по курсовой =)

среда, 26 марта 2008 г.

О том, как это все работает...

Сейчас я расскажу о том, как работает моя программа построения псевдостереоизображений.


Идея очень проста : сначала делаем рендер в текстуру с небольшим смещением камеры влево, затем повторяем рендер той же самой сцены, но со смещением вправо. В моем примере это установка параметров gluLookAt в (-1.0f, ...) и в (1.0f, ...) соответственно. Затем рисуем квад во весь экран и на него натягиваем обе текстуры с применением простейшего шейдера, который в результирующий цвет записывает r компоненту от текстуры для левого глаза, и g и b компоненты от текстуры для правого глаза. И вуаля!


Что дальше? А дальше у меня по плану:



  1. написние шейдеров

    • использующих только r и b компоненты

    • c корректировкой изображения (использующие не чисто r для левого глаза и g и b для правого, а их сочетание с определенными коэффициентами)



  2. расчет смещения камеры.


Вот тут можно скачать бинарник, а вот тут можно скачать исходные коды. Для работы вам понадобиться библиотека glew, скачать ее можно вот тут.

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

И радость и огорчение...

Настал тот великий день, когда я опять сел делать курсовик!


Сначала небольшое отступление. Тема моей курсовой : создание стереоизображений в реальном времени. Основная цель : написать фреймверк для существующего двига, который бы позволял создавать стереоизображения и управлять их параметрами. На данный момент стоит цель написать работающий код, который бы строил псевдостереоизображение. Почему псевдо ? Потому, что нормально не учитывается положение наблюдателя, а смещения для глаз берутся из головы, а не из формул =)


Оказалось, что я год просто тупил - я думал, что у меня не работал FBO, а оказалось что при натягивании на квад текстуры, которая была буферм кадра, я забывал задать нормали, из-за чего квад рисовался черным цветом и на текстуру ему было пофигу. А сегодня случилось чудо - я решил более полно изучить примеры и у меня все заработало =) Ура! Однако теперь появилась другая проблема : почему-то при мультитекстурировании правильно отображается только одна из двух текстур (либо для левого глаза, либо для правого), а другая просто черного цвета. Причем играясь с номерами текстурных юнитов (GL_TEXTUREi) и рисованием/не_рисованием текстур, я так и не увидел никакой закономерности. Вот теперь сижу медитирую над кодом...


Ура!!! Медитация окончена. Оказалось, что обязательно надо задавать мультитекстурные координаты для всех текстур (glMultiTextureCoord).


То, что сейчас уже работает опишу завтра и выложу исходники и работающий пример. Ждите ;)