МЕТОДИКА ИСПОЛЬЗОВАНИЯ OBJ-ФАЙЛОВ ПРИ СОЗДАНИИ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ OPENGL - Студенческий научный форум

VIII Международная студенческая научная конференция Студенческий научный форум - 2016

МЕТОДИКА ИСПОЛЬЗОВАНИЯ OBJ-ФАЙЛОВ ПРИ СОЗДАНИИ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ OPENGL

Пивнев Д.А. 1
1Волжский политехнический институт
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Данная статья посвящена студентам, или людям которые только начали создавать программы с участием графической библиотеки OpenGL, а так же возможно и добавит знания более продвинутым пользователям этой библиотеки.

Знакомясь с возможностями OpenGL я, по началу, делал примитивные сценки в двухмерном пространстве, треугольники, квадратики, кружочки. Потом начал осваивать трехмерную графику. И для этого начал подключать библиотеки Glut.dll и Glax.dll. В них есть готовые трехмерные объекты, необходимые для создания примитивных трехмерных сцен. Дальше должен был идти шаг использования более сложных 3д моделей, содержащих большое количество вершин, так как возможности OpenGL позволяют создавать многополигональные модели и их анимацию. И тут образовалась проблема: по вершинам сложную фигуру самостоятельно не нарисуешь, а созданные объекты в программах 3D – моделирования в компилятор системы импортировать не получалось.

В итоге было найдено решение: создавать трехмерную многополигональную модель в программе 3D – моделирования, с последующем экспортом ее в OBJ – файл, а уже потом использование этого файла при создании кода в компиляторе. Для создания трехмерных моделей подойдет, например, программа 3ds max.

Рассмотрим подробнее технологию использования данной методики. После экспортирования трехмерной модели в OBJ – файл, находим его расположение и открываем файл обычным текстовым редактором, например, блокнот в операционной системе Windows подойдет для решения этой задачи, и видим много непонятных строк созданных программой 3D – моделирования. Пример:

# object Box001

v -20.5222 -66.0265 24.0229

v -20.5222 -66.0265 -23.1880

v 21.2079 -66.0265 -23.1880

v 21.2079 -66.0265 24.0229

# 4 vertices

В данном случае в примере изображены координаты вершин объекта, они помечаются буквой «v», так же в файле могут содержаться векторы нормали «vn» и координаты текстур «vt». Все это можно использовать в собственной программе при грамотном внедрении в код.

Использовать координаты вершин можно различными способами:

1) создать массив вершин непосредственно в блоке отрисовки программы, где через запятую перечислить вершины точек слева на право, пример:

static GLfloat pVerts[]= {

-20.5222, -66.0265, 24.0229, -20.5222, -66.0265, -23.1880,21.2079, -66.0265, -23.1880, 21.2079, -66.026, 24.0229

}

glEnableClientState(GL_VERTEX_ARRAY);

glVertexPointer(3,GL_FLOAT,0,pVerts);

2) вынести массив в отдельный заголовочный H – файл, подключенный к основной программе, например:

Vertex.h

void Verts() {

glBegin (GL_QUADS);

glVertex3f( -20.5222, -66.0265, 24.0229);

glVertex3f(-20.5222, -66.0265, -23.1880);

glVertex3f(21.2079, -66.0265, -23.1880);

glVertex3f(21.2079, -66.0265, 24.0229);

glEnd();

}

Тот же метод применяется к нормалям и текстурам объекта.

Таким образом, возможно использование OBJ – файла для создания более сложных графических 3D –сцен с помощью библиотеки OpenGL.

Импортирование сложных много полигональных моделей даст волю вашему творчеству, и направит на создание чего- то большего, чем примитивные треугольники и квадратики.

Список источников:
  1. Абрамова О.Ф., Котов В. В. К вопросу об импорте 3D моделей в программы с использованием графической библиотеки OpenGL [Электронный ресурс] / Котов В. В., Абрамова О.Ф. // Современная техника и технологии. - 2014. - № 1. - C. Режим доступа : http://technology.snauka.ru/2014/01/2965.

  2. Абрамова О. Ф. Использование мультимедийных технологий в процессе обучения дисциплине «Компьютерная графика»// О. Ф. Абрамова, С. В. Белова// Журнал «Успехи современного естествознания» №3, 2012 год, стр. 90-91

  3. Трифанов А.И., Абрамова О.Ф. Реализация собственного метода визуализации водной поверхности «скользящая текстура» // «Современные наукоёмкие технологии». - 2013. - № 8 (ч. 1). - C. 96-97

  4. Абрамова О. Ф., Компьютерная графика : конспект лекций для студентов направлений 230100.62 "Информатика и вычислительная техника" и 231000.62 "Программная инженерия" [Электронный ресурс] // ВПИ (филиал) ВолгГТУ // Учебные пособия : сб. Серия "Естественнонаучные и технические дисциплины". Вып. 3. - 1электрон. опт. диск (CD-ROM), формат pdf. - Волжский, 2012. - 165 с.

Просмотров работы: 676