Computer_Graphics project using OpenGL
Изучить основы визуализации трехмерных объектов, разработать программу для загрузки и отображения моделей трехмерных объектов из файлов формата OBJ.
- Изучить теорию визуализации трехмерных объектов, графического API OpenGL.
- Разработать алгоритм загрузки моделей трехмерных объектов из файлов формата OBJ.
- Реализовать программу для загрузки и отображения моделей трехмерных объектов с использованием графического API OpenGL.
- Проверить работу программы на различных моделях трехмерных объектов.
- Изучение теории визуализации трехмерных объектов, графического API OpenGL. В ходе изучения были рассмотрены основные понятия и принципы визуализации трехмерных объектов, особенности графического API OpenGL, его архитектура и основные функции.
- Разработка алгоритма загрузки моделей трехмерных объектов из файлов формата OBJ. Алгоритм включает в себя следующие этапы:
- Чтение файла. Открываем файл для чтения и последовательно обрабатываем строки.
- Разбор строк. Каждая строка в OBJ-файле содержит информацию о определенном элементе объекта (вершина, грань, нормаль и т.д.). Разбираем строки и извлекаем из них необходимые данные.
- Создание массивов вершин, нормалей и текстурных координат. На основе извлеченных данных создаем массивы, необходимые для отображения объекта.
- Создание буферов вершин, нормалей и текстурных координат. Загружаем массивы в память видеокарты с помощью буферов.
- Отображение объекта. Используем графический API OpenGL для отображения загруженного объекта.
- Реализация программы для загрузки и отображения моделей трехмерных объектов с использованием графического API OpenGL. Программа включает в себя следующие модули:
- Модуль загрузки моделей. Реализует алгоритм загрузки моделей трехмерных объектов из файлов формата OBJ.
- Модуль отображения. Отвечает за отображение загруженных моделей с использованием графического API OpenGL.
- Модуль взаимодействия с пользователем. Реализует интерфейс для взаимодействия с пользователем, позволяет выбирать модель для отображения, настраивать ее параметры.
- Проверка работы программы на различных моделях трехмерных объектов. В ходе проверки были использованы модели различной сложности и формата. Программа успешно загружала и отображала все модели.
- Добавление возможности движения модели (были реализованы сдвиги по осям и повороты модели относительно каждой грани).
Рисунок 1 – стандартное положение модели в формате obj
Рисунок 2 – движение модели в формате obj
Рисунок 3 – поворот модели в формате obj
Рисунок 4 – масштабирование и движение модели в формате obj
В результате данной курсовой работы я научился работать с библиотекой графической обработки информации OpenGL, а также с форматом OBJ, в котором хранится большое количество моделей. Я реализовал чтение файла в формате .obj, корректно считывая вершины, текстурные координаты, нормали. Также было реализовано открытие окна, работа в нем и отображение самой фигуры. Затем был добавлен callback, позволяющий с помощью клавиш управлять движением фигуры в пространстве окна.