Skip to content

gr1shan1a/VOR_courseWork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VOR_courseWork

Computer_Graphics project using OpenGL

Визуализация трехмерных объектов с использованием графического API OpenGL

Цель

Изучить основы визуализации трехмерных объектов, разработать программу для загрузки и отображения моделей трехмерных объектов из файлов формата OBJ.

Постановка задачи

  • Изучить теорию визуализации трехмерных объектов, графического API OpenGL.
  • Разработать алгоритм загрузки моделей трехмерных объектов из файлов формата OBJ.
  • Реализовать программу для загрузки и отображения моделей трехмерных объектов с использованием графического API OpenGL.
  • Проверить работу программы на различных моделях трехмерных объектов.

Ход выполнения работы

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

Примеры работы программы

Рисунок 1 – стандартное положение модели в формате obj

Рисунок 1 – стандартное положение модели в формате obj

Рисунок 2 – движение модели в формате obj

Рисунок 2 – движение модели в формате obj

Рисунок 3 – поворот модели в формате obj

Рисунок 3 – поворот модели в формате obj

Рисунок 4 – масштабирование и движение модели в формате obj

Рисунок 4 – масштабирование и движение модели в формате obj

Заключение и вывод

В результате данной курсовой работы я научился работать с библиотекой графической обработки информации OpenGL, а также с форматом OBJ, в котором хранится большое количество моделей. Я реализовал чтение файла в формате .obj, корректно считывая вершины, текстурные координаты, нормали. Также было реализовано открытие окна, работа в нем и отображение самой фигуры. Затем был добавлен callback, позволяющий с помощью клавиш управлять движением фигуры в пространстве окна.

Использованная литература

  1. Opengl-tutorial 3.3 (Building your own application)
  2. Загрузка и отображение объекта формата OBJ
  3. 3D-модель истребителя Tie Fighter из Звездных войн

About

Computer_Graphics project using OpenGL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published