1.3 Трехмерная графика
Одной из наиболее интересных, в то же время сложных видов изображений в компьютерной графике является трехмерное изображение (или его еще называют – трехмерной графикой). Заметим, что трехмерная графика уходит своими корнями и имеет много общего с векторной компьютерной графикой.
Она также может называться объектно-ориентированной. Это позволяет изменять как все элементы трехмерной сцены, так и каждый объект в отдельности. Применяется она при разработке дизайн-проектов интерьера, архитектурных объектов, в рекламе, при создании обучающих компьютерных программ, видеороликов, наглядных изображений деталей и изделий в машиностроении и т. д. В трехмерной графике изображения (или персонажи) моделируются и перемещаются в виртуальном пространстве, в природной среде или в интерьере, а их анимация позволяет увидеть объект с любой точки зрения, переместить в искусственно созданной среде и пространстве, разумеется, при сопровождении специальных эффектов.
Эти свойства трехмерной графики позволяют создавать и кинопродукцию профессионального качества. Интересно, что в процессе разработки трехмерной графики и ее анимации человек выступает в качестве режиссера и оператора, поскольку ему приходится придумывать сюжет, содержание и композицию каждого кадра и распределять движение объекта или объектов сцены не только в пространстве, но и во времени. Что же требует трехмерная графика от человека? Конечно же, умение моделировать различные формы и конструкции при помощи различных программных средств, а также знания ортогонального (прямоугольного) и центрального проецирования. Последняя - называется перспективой.
1.4 Фрактальное изображение
И последний вид компьютерной графики это фрактальное изображение. Фрактальная графика является на сегодняшний день одним из самых быстро развивающихся перспективных видов компьютерной графики. Математической основой фрактальной графики является фрактальная геометрия. В основу метода построения изображений во фрактальной графике положен принцип наследования от, так называемых, «родителей» геометрических свойств объектов-наследников. О каждом из представленных видов компьютерной графики будет более подробно рассказано на следующих уроках, а этот урок закончен.
Глава 2. 3Dмоделирование
2.1 Представление 3D-моделей
Поскольку современные компьютеры широкого назначения (в первую очередь самый распространенный Intel Pentium в любых его модификациях) наиболее просто реализуют арифметические операции сложения и умножения (деление уже является заметно затратным по времени, а вычисление не только специальных, но и элементарных арифметических функций, таких как квадратный корень, синус, косинус, арктангенс и т.п., даже при их аппаратной реализации в арифметическом сопроцессоре, и тем более), то основным методом моделирования неизбежно остается классический линеаризованный подход. Модели твердых тел соответственно являются локально-линейными, поскольку их поверхность ограничивает некоторую часть 3D-пространства и составлена из полигонов, образованных частями соответствующих 2D-плоскостей, ограниченных лежащими в этих плоскостях замкнутыми ломаными. Другим важным обстоятельством, ограничивающим обработку данных классом линейных методов, является одинаковый вид результатов решения прямых и обратных задач. Таким образом, в качестве базовой единицы представления полигональных твердотельных моделей принят полиэдр (многогранник).
Возможно, однако, некоторое расширение класса геометрических тел, пригодных для эффективного компьютерного моделирования. Так, следующие по сложности объекты второго порядка (шар, цилиндр, конус), математическое описание которых содержит степени координат не выше двух, при решении обратных задач (в частности, при вычислении координат на поверхности тела, что необходимо, в том числе, для построения 2D-проекции) требуют всего лишь решения хорошо известного квадратного уравнения, содержащего операцию взятия квадратного корня. По этой причине вычислительная сложность в данном случае остается зачастую вполне приемлемой, и включение таких геометрических объектов в модель возможно. Ниже приводится пример эффективности такого подхода.
В общем случае в CAD/CAM-проектировании твердое тело принято описывать как комплексную полиповерхность, составленную из плоских (3D-полигонов) и криволинейных граней (частей сложных поверхностей, в том числе выше второго порядка, в узловых вершинах которых вычисляются нормали к поверхности). При этом конечная программная модель синтезируется как результат полного триангулирования исходной математической модели. Далее сформированный поток треугольников направляется на построение проекции, например с помощью стандартных средств OpenGL. Такой метод, будучи универсальным, приводит к заметной и неоправданной вычислительной нагрузке. Обсуждаются методы снижения количества полигонов в конечном представлении модели. Однако в рамках чисто триангуляционного подхода не удается достичь сколь-нибудь существенной оптимизации. Более детальное рассмотрение позволяет выделить квазивыпуклые области на криволинейных гранях, которые можно более эффективно аппроксимировать полигонами порядка выше трех, а чисто плоские грани (с общей единственной нормалью) — обрабатывать непосредственно на основе прямых растровых алгоритмов.
Другой, принципиально новый метод связан с вычислением 3D-координат вершин на моделируемой поверхности. При необходимости расширения класса криволинейных граней на произвольно формируемые поверхности обычно прибегают к стандартному подходу на основе сплайнового приближения (как правило, это бикубические 3D-сплайны). Найден более универсальный и эффективный подход на основе аппарата Фурье-аппроксимаций. Хорошо известно, что гладкие функциональные зависимости имеют эффективное разложение по базису Фурье (на основе гармонических функций). Так, обычный одномерный комплексный ряд Фурье имеет смысл аппроксимации замкнутого параметрического контура на обычной 2D-плоскости. При этом, чем выше степень гладкости такого контура, тем меньшим числом гармоник (компонент спектрального Фурье-разложения) он может быть представлен (то есть — может быть восстановлен обратным преобразованием с минимальными погрешностями). Тем самым достигается эффективное сжатие описания конечной координатной функции.
Применительно к построению комплексных, но достаточно гладких криволинейных поверхностей построено обобщение рядов Фурье для 3D-случая. При этом в качестве базиса используются операторы (матрицы 3Ѕ3) вращения вектора. Простейший пример связан с хорошо известной сферической системой координат. В этом случае фазовые углы поворота вектора являются одновременно координатами на вспомогательной плоскости развертки. Для представления произвольной сферы достаточно только двух спектральных базисных векторов и трех для другого простого примера — тора.
2.2 Обобщение методов векторного анализа
Из практики 3D-моделирования хорошо известно, что основным математическим инструментом в данной прикладной сфере является раздел математики, известный как векторный анализ. Это напрямую связано с вычислением координат проекций (на основе скалярного произведения векторов) либо, например, с определением векторов нормалей к поверхности (векторное произведение). В оптимизационных расчетах большую роль играет решение систем линейных уравнений, в частности для регрессионной аппроксимации. Последняя проблема обычно относится к более общему разделу линейной алгебры, где применяется понятие матриц. Однако оказалось возможным обобщить все указанные задачи на основе более полного раскрытия свойств векторных пространств, не прибегая к понятию матрицы.
Так, понятие векторного произведения в более общем виде имеет смысл построения ортогонального дополнения в некотором N-мерном векторном пространстве к базису в его (N – 1)-мерном подпространстве, которое может быть определено с точностью до ненулевого скалярного коэффициента. Стандартное в математике определение векторного произведения по сути представляет собой алгоритм наиболее простого нахождения подходящего ортогонального вектора для 3D-случая. Проблема выбора коэффициента при этом неявно снимается за счет удобного набора чисто линейных операций над координатами (умножения-сложения), то есть без нормирования.
Аналогичным образом проблема решения системы из N линейных уравнений сводится к обратной задаче восстановления вектора по его проекциям на некотором неортогональном ненормированном базисе (каждое уравнение представляет собой N-мерное скалярное произведение искомого неизвестного вектора с базисными, то есть попросту проекции). Решение в общем виде может быть представлено линейной комбинацией из N ортогональных дополнений (также с точностью до ненулевого скалярного коэффициента) ко всем N поднаборам из (N – 1)-мерных подпространств с коэффициентами, пропорциональными исходным проекциям (значениям в правой части системы). Наиболее простой алгоритм решения — ортогонализация (например, на основе хорошо известной процедуры Грама-Шмидта), нормирование и умножение результата на вектор проекций (правая часть системы). В сравнении с известным стандартным методом Гаусса-Жордана это дает более простой и быстрый результат. Относительный недостаток — необходимость взятия N квадратных корней при нормировании.
2.3 Инструментарий для программных реализаций
Программные пакеты, позволяющие создавать трёхмерную графику, то есть моделировать объекты виртуальной реальности и создавать на основе этих моделей изображения, очень разнообразны. Последние годы устойчивыми лидерами в этой области являются коммерческие продукты: такие как 3ds Max, Maya, Lightwave 3D, SoftImage XSI, Sidefx Houdini, Maxon Cinema 4D и сравнительно новые Rhinoceros 3D, modo, Nevercenter Silo или ZBrush. Кроме того, существуют и открытые продукты, распространяемые свободно, например, пакет Blender (позволяет делать и производство моделей, и последующий рендеринг), K-3D и Wings3D (только создание моделей с возможностью последующего использования их другими программами). Некоторое время назад Caligari закрыла разработки по trueSpace и она также стала бесплатной.