Глава 2. 3D моделирование

 2.1 Представление 3D-моделей

Поскольку современные компьютеры широкого назначения (в первую очередь самый распространенный Intel Pentium в любых его модификациях) наиболее просто реализуют арифметические операции сложения и умножения (деление уже является заметно затратным по времени, а вычисление не только специальных, но и элементарных арифметических функций, таких как квадратный корень, синус, косинус, арктангенс и т.п., даже при их аппаратной реализации в арифметическом сопроцессоре, и тем более), то основным методом моделирования неизбежно остается классический линеаризованный подход. Модели твердых тел соответственно являются локально-линейными, поскольку их поверхность ограничивает некоторую часть 3D-пространства и составлена из полигонов, образованных частями соответствующих 2D-плоскостей, ограниченных лежащими в этих плоскостях замкнутыми ломаными. Другим важным обстоятельством, ограничивающим обработку данных классом линейных методов, является одинаковый вид результатов решения прямых и обратных задач. Таким образом, в качестве базовой единицы представления полигональных твердотельных моделей принят полиэдр (многогранник).

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

В общем случае в CAD/CAM-проектировании твердое тело принято описывать как комплексную полиповерхность, составленную из плоских (3D-полигонов) и криволинейных граней (частей сложных поверхностей, в том числе выше второго порядка, в узловых вершинах которых вычисляются нормали к поверхности). При этом конечная программная модель синтезируется как результат полного триангулирования исходной математической модели. Далее сформированный поток треугольников направляется на построение проекции, например с помощью стандартных средств OpenGL. Такой метод, будучи универсальным, приводит к заметной и неоправданной вычислительной нагрузке. Обсуждаются методы снижения количества полигонов в конечном представлении модели. Однако в рамках чисто триангуляционного подхода не удается достичь сколь-нибудь существенной оптимизации. Более детальное рассмотрение позволяет выделить квазивыпуклые области на криволинейных гранях, которые можно более эффективно аппроксимировать полигонами порядка выше трех, а чисто плоские грани (с общей единственной нормалью) — обрабатывать непосредственно на основе прямых растровых алгоритмов.

Другой, принципиально новый метод связан с вычислением 3D-координат вершин на моделируемой поверхности. При необходимости расширения класса криволинейных граней на произвольно формируемые поверхности обычно прибегают к стандартному подходу на основе сплайнового приближения (как правило, это бикубические 3D-сплайны). Найден более универсальный и эффективный подход на основе аппарата Фурье-аппроксимаций. Хорошо известно, что гладкие функциональные зависимости имеют эффективное разложение по базису Фурье (на основе гармонических функций). Так, обычный одномерный комплексный ряд Фурье имеет смысл аппроксимации замкнутого параметрического контура на обычной 2D-плоскости. При этом, чем выше степень гладкости такого контура, тем меньшим числом гармоник (компонент спектрального Фурье-разложения) он может быть представлен (то есть — может быть восстановлен обратным преобразованием с минимальными погрешностями). Тем самым достигается эффективное сжатие описания конечной координатной функции.

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: