Лабораторная работа 1. Разработка программной системы для работы с трехмерной графикой
Задание
Требуется разработать систему 3D визуализации набора треугольников.
При разработке архитектуры следует ориентироваться на стандарт OpenGL ES.
- Программе передается набор треугольников. Каждый треугольник представлен в виде координат его вершин {(x1,y1,z1), (x2,y2,z2), (x3,y3,z3)}.
- Над каждой вершиной, переданной в конвейер, выполняются преобразования вершинного шейдера.
На данном этапе разрешается использовать программную заглушку для модуля Vertex Shader.
Затем происходит интерполяция результатов работы шейдера.
- Для растеризации
треугольников следует реализовать алгоритм Брезенхема (модуль Rasterization).
- После этого каждый фрагмент
преобразуется пиксельным шейдером. Пиксельныей шейдер также представляет собой заглушку (модуль Fragment Shader).
- В построенную систему следует добавить технологии отбрасывания невидимых треугольников (модуль Primitive Assembly),
билинейную фильтрацию (модуль Per-Fragment Operations).
- Модуль Framebuffer должен реализовывать отрисовку фигур (можно использовать сторонние библиотеки).
Проект должен быть написан на языке программирования Python. Исходные
тексты работы должны быть опубликованы в открытом доступе на сайте github.org.
Система версионирования - git.
Литература
- Горских А.Г. OPENGL ES 2.0. [PDF, 1.64Мб]
- OpenGL® ES 2.0 Programming Guide - Book Website
- Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками
(Часть 1,
Часть 2,
Часть 3)
- The Standard for Embedded Accelerated 3D Graphics