1 / 23

OpenGL

OpenGL. Графические библиотеки. 2D GAPI GDI XWindow GTK QT 3D DirectX OpenGL. OpenGL. Идеология Редкие версии Расширения Коллективное создание Кроссплатформенность Чисто программная реализация Mesa. OpenGL. Дополнительные библиотеки GLUT GLEW. Устройство OpenGL. Буфера

vila
Download Presentation

OpenGL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OpenGL

  2. Графические библиотеки • 2D • GAPI • GDI • XWindow • GTK • QT • 3D • DirectX • OpenGL

  3. OpenGL • Идеология • Редкие версии • Расширения • Коллективное создание • Кроссплатформенность • Чисто программная реализация Mesa

  4. OpenGL • Дополнительные библиотеки • GLUT • GLEW

  5. Устройство OpenGL • Буфера • Кадра • Трафарета • Глубины • Матрицы и стеки матриц • Матрица модели • Матрица проектирования • Примитивы

  6. Конвеер обработки OpenGL

  7. OpenGL • Примитивы • GL_POINTS • GL_LINES • GL_LINE_STRIP • GL_LINE_LOOP • GL_TRIANGLES • GL_TRIANGLE_STRIP • GL_TRIANGLE_FAN • GL_QUADS • GL_QUAD_STRIP • GL_POLYGON • Дисплейные списки • Дистанцибельность клиент-сервер )‏

  8. Дисплейные списки • Дистанцибельность • клиент-сервер • излишняя информация – массивы вершин

  9. Пример • Ну тут пример…

  10. Идеология сборки сцены • Примитивы лопатятся и и в случае прохождения выбранных тестов (stensil, deapth) направляются в какие-то из буферов (color, death, stensil) там с ними происходит какое-нибудь действие. • А если мы попали в буфер цвета то происходит оцветнение

  11. Оцветнение • Раскраска с использованием цветовой модели • Освещение • Смешивание • Текстурирование • mid-mapping • Точное • Линейное

  12. Цветовая модель

  13. Как сделать быстро • LOD – Level of details • Стандартные оптимизации - не выводить то что точно не видно • Не выводить то что за спиной • Использовать портальные техники • Stencil buffer • PVS – что такое? Кто помнит?

  14. Как сделать красиво • Фокусировка • Отражение • 2 вывода на каждый кадр • сферическое наложение • Тени • Fake • Shadow Mapping • Shadow Volume

  15. Fake • Ну… добавить в сцену еще черных треугольников 

  16. Shadow Volumes (Stensil shadows)‏ • Общая идея алгоритма • Строим shadow volume – трехмерную границу света и тени • Рисуем сцену в Z-Buffer • Выводим в трафарет передние грани shadow volume и инкрементируем его если Z-тест прошел • Выводим в трафарет задние грани shadow volume и декрементируем его если Z-тест прошел • Там где в трафарете значение > начального – тень есть

  17. Pros and cons • + • Попиксельная точность • - • Слабая расширяемость (высокий fillrate)‏ • LOD • Volume сильно негладкий • Очень сложно делать мягкие тени

  18. Shadow Mapping • Общая идея алгоритма • Выводим картинку один раз смотря из источника света • Строим карту глубин в специальной текстуре А. • Выводим сцену от камеры и если пиксель дальше от источника, чем то что в текстуре А, то он затенен

  19. Что нужно от OpenGL • OpenGL 1.4 • ARB_depth_texture • ARB_shadow

  20. Проблемы • Алиасинг глубины • Лечится аппаратно • Проективный алиасинг • Перспективный алиасинг • на близкие к камере точки может приходится очень мало текселей

  21. как забороть? • теневые карты плоскостей • Храним не глубину, а уравнение всей плоскости в shadow map • Вывернуть сцену обратным преобразованием

  22. ШЕЙДЕРЫ!!! • Ура товарищи! Будут шейдеры.

  23. Ссылки • http://www.osp.ru/text/302/179130/ • http://ac.cs.nstu.ru/docs/OpenGL/OpenGL_RedBook_rus.pdf • http://www.tml.tkk.fi/Opinnot/Tik-111.500/2002/paperit/timo_ahokas.pdf • http://opengl.gamedev.ru/faqlinks/ • http://www.dtf.ru/articles/read.php?id=37761 • http://pmg.org.ru/nehe/index.html • http://www.opengl.org.ru/books/open_gl/

More Related