stringtranslate.com

Полигональное моделирование

Полигональная сетка дельфина

В 3D компьютерной графике полигональное моделирование представляет собой подход к моделированию объектов путем представления или аппроксимации их поверхностей с помощью полигональных сеток . Полигональное моделирование хорошо подходит для рендеринга строк развертки и поэтому является предпочтительным методом для компьютерной графики в реальном времени . Альтернативные методы представления 3D-объектов включают поверхности NURBS , поверхности подразделения и представления на основе уравнений (неявная поверхность), используемые в трассировщиках лучей .

Геометрическая теория и многоугольники

Основным объектом, используемым при моделировании сетки, является вершина , точка в трехмерном пространстве. Две вершины, соединенные прямой линией, становятся ребром . Три вершины, соединенные друг с другом тремя ребрами, определяют треугольник , который является простейшим многоугольником в евклидовом пространстве . Более сложные многоугольники можно создавать из нескольких треугольников или как один объект с более чем тремя вершинами. Четырехсторонние многоугольники (обычно называемые четырехугольниками) [1] [2] и треугольники являются наиболее распространенными формами, используемыми в полигональном моделировании. Группа многоугольников, соединенных друг с другом общими вершинами, обычно называется элементом . Каждый из полигонов, составляющих элемент, называется гранью .

В евклидовой геометрии любые три неколлинеарные точки определяют плоскость . По этой причине треугольники всегда обитают в одной плоскости. Однако это не обязательно верно для более сложных полигонов. Плоская природа треугольников упрощает определение нормали к их поверхности — трехмерного вектора, перпендикулярного поверхности треугольника. Нормали поверхности полезны для определения переноса света при трассировке лучей и являются ключевым компонентом популярной модели затенения Фонга . Некоторые системы рендеринга используют нормали вершин вместо нормалей граней, чтобы создать более красивую систему освещения за счет дополнительной обработки. Обратите внимание, что у каждого треугольника есть две нормали граней, которые указывают в противоположные стороны друг от друга. Во многих системах только одна из этих нормалей считается допустимой — другая сторона многоугольника называется обратной стороной и может быть сделана видимой или невидимой в зависимости от желания программиста.

Многие программы моделирования не строго соблюдают геометрическую теорию; например, две вершины могут иметь два разных соединяющих их ребра, занимающих одно и то же пространственное положение. Также возможно, что две вершины находятся в одних и тех же пространственных координатах или две грани существуют в одном и том же месте. Подобные ситуации обычно нежелательны, и многие пакеты поддерживают функцию автоматической очистки. Однако если автоматическая очистка отсутствует, их необходимо удалить вручную.

Группа многоугольников, соединенных общими вершинами, называется сеткой . Чтобы сетка выглядела привлекательно при рендеринге , желательно, чтобы она не была самопересекающейся , то есть ни одно ребро не проходило через многоугольник. Другой взгляд на это заключается в том, что сетка не может пробить сама себя. Также желательно, чтобы сетка не содержала ошибок, таких как удвоение вершин, ребер или граней. Для некоторых целей важно, чтобы сетка была многообразием , то есть чтобы она не содержала дыр или сингулярностей (мест, где две отдельные части сетки соединяются одной вершиной).

Построение полигональных сеток

Хотя можно построить сетку, указав вершины и грани вручную, гораздо чаще сетки создаются с использованием различных инструментов. Для построения полигональных сеток доступен широкий выбор пакетов программного обеспечения для 3D-графики .

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

Второй распространенный метод моделирования иногда называют инфляционным моделированием или моделированием экструзии . В этом методе пользователь создает 2D-фигуру, которая повторяет контур объекта по фотографии или рисунку. [3] Затем пользователь использует второе изображение объекта под другим углом и вытягивает 2D-форму в 3D, снова следуя контуру формы. Этот метод особенно распространен для создания лиц и голов. В общем, художник моделирует половину головы, затем дублирует вершины, инвертирует их расположение относительно некоторой плоскости и соединяет две части вместе. Это гарантирует, что модель будет симметричной.

Другой распространенный метод создания полигональной сетки — это соединение различных примитивов , которые представляют собой заранее определенные полигональные сетки, созданные средой моделирования. Общие примитивы включают в себя:

Наконец, существуют некоторые специализированные методы построения сеток с высокой или низкой детализацией. Моделирование на основе эскизов — это удобный интерфейс для быстрого создания моделей с низкой детализацией, а 3D-сканеры можно использовать для создания сеток с высокой детализацией на основе существующих объектов реального мира почти автоматическим способом. Эти устройства очень дороги и обычно используются только исследователями и профессионалами отрасли, но могут генерировать высокоточные субмиллиметровые цифровые изображения.

Операции

Существует очень большое количество операций, которые можно выполнять с полигональными сетками. Некоторые из них примерно соответствуют реальным манипуляциям с 3D-объектами, а другие нет. Операции с полигональной сеткой включают в себя:

Расширения

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

Чтобы отобразить модель на экране компьютера вне среды моделирования, необходимо сохранить эту модель в одном из форматов файлов, перечисленных ниже, а затем использовать или написать программу, способную загружаться из этого формата. Двумя основными методами отображения трехмерных полигональных моделей являются OpenGL и Direct3D . Оба эти метода можно использовать как с графической картой с 3D-ускорением, так и без нее .

Преимущества и недостатки

Представление объекта с помощью многоугольников имеет множество недостатков. Многоугольники не способны точно отображать изогнутые поверхности, поэтому необходимо использовать большое их количество для аппроксимации кривых визуально привлекательным способом. Использование сложных моделей приводит к снижению скорости. При преобразовании строк развертки каждый многоугольник должен быть преобразован и отображен независимо от его размера, и в любой момент времени на экране часто присутствует большое количество моделей. Часто программистам приходится использовать несколько моделей с разным уровнем детализации для представления одного и того же объекта, чтобы сократить количество визуализируемых полигонов.

Основное преимущество полигонов заключается в том, что они работают быстрее, чем другие представления. В то время как современная видеокарта может отображать высокодетализированную сцену с частотой кадров 60 кадров в секунду или выше, средства моделирования поверхностей , основной способ отображения неполигональных моделей, не способны достичь интерактивной частоты кадров (10 кадров/с или более). выше) с таким же количеством деталей. При использовании спрайтов , еще одной альтернативы полигонам, каждая необходимая поза должна создаваться индивидуально, в то время как одна полигональная модель может выполнять любое движение, если применяются соответствующие данные движения, и ее можно просматривать под любым углом. [4]

Форматы файлов

Для хранения данных трехмерных полигонов доступны различные форматы. Наиболее популярными являются:

Смотрите также

Рекомендации

  1. ^ "Примитив - OpenGL Wiki" . www.opengl.org .
  2. ^ «Использование базового эффекта с текстурированием». msdn.microsoft.com .
  3. ^ «Метод полигонального моделирования» . Проверено 19 апреля 2022 г.
  4. ^ Рыбицки, Джо (декабрь 1996 г.). «Создание NBA Live 97». Ежемесячник электронных игр . № 89. Зифф Дэвис . п. 301.

Библиография

  1. OpenGL SuperBible (3-е изд.), Ричард С. Райт и Бенджамин Липчак ISBN 0-672-32601-9 
  2. Руководство по программированию OpenGL: Официальное руководство по изучению OpenGL, версия 1.4, четвертое издание, ISBN Совета по обзору архитектуры OpenGL 0-321-17348-1 
  3. Справочное руководство OpenGL(R): Официальный справочный документ по OpenGL, версия 1.4 (4-е издание), выпущенный Советом по обзору архитектуры OpenGL ISBN 0-321-17383-X 
  4. Документация по Blender: https://web.archive.org/web/20051212074804/http://blender.org/cms/Documentation.628.0.html.
  5. Документация Maya: в комплекте с Alias ​​Maya, http://www.alias.com/eng/index.shtml.