Точка. Этот объект на плоскости представляется двумя числами (х, у), указывающими его положение относительно начала координат.
§ Прямая линия. Ей соответствует уравнение у = kx + b. Указав параметры k и b, всегда можно отобразить прямую линию в известной системе координат.
§ Отрезок прямой. Он отличается тем, что требует для своего описания еще двух параметров — координат х1 и х2 начала и конца отрезка.
§ Кривые второго порядка. К этому классу относятся все линии, уравнения которых содержат степени не выше второй (параболы, эллипсы, окружности и т.п.). Формула кривой второго порядка в общем случае может выглядеть так: x2 + a1y2 + a2xy + a3x + a4y + a5 = 0 .
Таким образом, для описания бесконечной кривой второго порядка достаточно пяти параметров. Если требуется построить отрезок кривой, понадобятся еще два параметра.
§ Кривая третьего порядка. Отличие этих кривых от кривых второго порядка состоит в возможном наличии точек перегиба. Например, график кубической функции имеет точку перегиба в начале координат. Именно эта особенность позволяет сделать кривые третьего порядка основой отображения природных объектов в векторной графике. Так, линии изгиба человеческого тела весьма близки к кривым третьего порядка. Все кривые второго порядка, как и прямые линии, являются частными случаями кривых третьего порядка. В общем случае уравнение кривой третьего порядка имеет вид:
x3 + a1y3 + a2x2y + a3xy2 + a4x2 + a5y2 + a6xy +a7x + a8y + a9 = 0.
Таким образом, кривая третьего порядка описывается девятью параметрами, а для описания любого её отрезка потребуется на два параметра больше.
§ Кривые Безье. Эго особый, упрощенный вид кривых третьего порядка. Метод построения кривой Безье основан на использовании пары касательных, проведенных к линии в заданных точках. Отрезки кривых Безье описываются восемью параметрами, поэтому работать с ними удобнее. На форму линии влияет угол наклона касательной и длина ее отрезка. Таким образом, касательные играют роль виртуальных «рычагов», с помощью которых управляют кривой.
Фрактальная графика.
Фрактальная графика, как и векторная, основана на математических вычислениях. Однако её базовым элементом является сама математическая формула, то есть никаких объектов в памяти компьютера не хранится и изображение строится исключительно по уравнениямлибосистемам уравнений. Таким способом строят как простейшие регулярные структуры, так и сложные иллюстрации, имитирующие природные ландшафты и трехмерные объекты.
Определение. Фрактал — это объект, отдельные элементарные части которого повторяют (наследуют) свойства своих «родительских» структур.
Понятия фрактал и фрактальная геометрия (от лат. fractus— состоящий из фрагментов) впервые были предложены в 1975 г. математиком Б.Мандельбротом для обозначения нерегулярных, но самоподобных структур. Рождение фрактальной геометрии связывают с выходом в 1977 г. его книги «Фрактальная геометрия природы», в которой были объединены в единую систему научные разработки учёных, работавших в этой области (Пуанкаре, Жюлиа, Кантор и др.). С точки зрения компьютерной графики фрактальная геометрия незаменима при задании линий и поверхностей достаточно сложной формы, а также при генерации объектов, образы которых весьма похожи на природные.
Одним из основных свойств фракталов является их самоподобие. В самом простом случае небольшая часть фрактала содержит информацию обо всём фрактале в целом. Существует большое разнообразие фракталов. Потенциально наиболее полезным их видом являются фракталы на основе системы итеративных функций (Iterated Function System – IFS). Метод IFS, изобретённый Майклом Барнсли и его коллегами из Технологического института шт. Джорджия (США), применительно к построению фрактальных изображений базируется на самоподобии их отдельных элементов и заключается в моделировании всего рисунка несколькими меньшими его фрагментами. Специальные уравнения позволяют переносить, поворачивать и изменять масштаб отдельных участков изображения, служащих компоновочными блоками для остальной части картины в целом.
Самыми известными природными фрактальными объектами являются деревья, от каждой ветки которых ответвляются меньшие, похожие на нее, от тех — еще меньшие и так далее. Появление новых элементов меньшего масштаба происходит по достаточно простому алгоритму. Очевидно, что описать такой объект можно всего лишь несколькими математическими уравнениями. Фрактальными свойствами обладают также и многие другие природные объекты: снежинка при увеличении тоже оказывается фракталом, по фрактальным алгоритмам растут кристаллы, растения и т.д.
Посмотрим, как строится простейший фрактал — фрактальный треугольник, его еще называют «снежинка Коха» (рис. 8.2.). Используя простейший алгоритм, треугольники можно достраивать аналогичным образом до бесконечности, что приведёт к получению объекта любого уровня сложности. При этом в отличие от векторной графики, ничего кроме самих уравнений в памяти ком-пьютера хранить не нужно. Вся информация, необходимая для воспроизведения этого фрактала, будет занимать всего лишь несколько десятков байт. Возникает вопрос — а можно ли сжимать данные, подобрав для этого подходящий фрактальный алгоритм? Принципиально — можно, и в этом направлении в настоящее время ведутся активные исследования. Некоторые уже разработанные фрактальные алгоритмы позволяют сжимать определенные типы файлов в 30 раз и более.
8.6.Трехмерная (3D) графика.
Трехмерная графика нашла широкое применение в таких областях, как научные расчеты, инженерное проектирование, компьютерное моделирование физических объектов и т.п. В качестве примера рассмотрим наиболее сложный вариант трехмерного моделирования — создание подвижного изображения реального физического тела. В упрощенном виде для пространственного моделирования объекта требуется:
§ Спроектировать и создать виртуальный каркас («скелет») объекта, наиболее полно соответствующий его реальной форме;
§ Спроектировать и создать виртуальные материалы (текстуры), по физическим свойствам визуализации похожие на реальные;
§ Наложить виртуальные материалы на различные части поверхности объекта (спроецировать текстуры на объект);
§ Настроить физические параметры пространства, в котором будет находиться объект, т.е. задать освещение, гравитацию, свойства атмосферы и т.д.;
§ Задать траекторию движения объекта;
§ Рассчитать результирующую последовательность кадров изображения;
§ Наложить поверхностные эффекты на итоговый анимационный сюжет.
Для создания реалистичной каркасной модели объекта используют геометрические примитивы (прямоугольник, куб, шар, конус и прочие) и гладкие, так называемые сплайновые поверхности. В последнем случае вид поверхности определяется расположенной в пространстве сеткой опорных точек, каждой из которых присваивается коэффициент, задающий степень её влиянии на часть поверхности, расположенной вблизи опорной точки. От взаимного расположения точек и величины коэффициентов зависит форма и гладкость поверхности в целом. Деформация объекта в общем случае обеспечивается перемещением отдельных контрольных точек каркаса, связанных с близлежащими опорными точками и влияющих на них в соответствии с удаленностью друг от друга. Специальный инструментарий позволяет обрабатывать примитивы, составляющие объект, как единое целое с учетом их взаимодействия на основе заданной физической модели.
После формирования «скелета» объекта необходимо покрыть его поверхность требуемыми материалами (текстурами). При этом осуществляется так называемая визуализация поверхности, т.е. расчет коэффициента её прозрачности, угла преломления лучей света на границе материала и окружающего пространства и т.д. Закраска поверхностей объекта осуществляется, как правило, методами Гуро или Фонга,[8]) представляющими собой специальные алгоритмы расчета и формирования цветовых оттенков отдельных частей этих поверхностей.
Из всех параметров пространства, в котором будет существовать создаваемый объект, с точки зрения визуализации самым важным является определение источников света. В трехмерной графике принято использовать виртуальные эквиваленты реальных физических световых источников, таких как, например, Солнце (удаленный неточечный источник), электрическая лампочка (точечный источник), естественная освещенность вне видимости Солнца и Луны (растворенный свет), прожектор (направленный источник).
После завершения конструированияи визуализации объекта приступают к его «оживлению», то есть заданию параметров движения. Компьютерная анимация базируется на ключевых кадрах изображения. В первом кадре объект выставляется в исходное положение. Через определенный промежуток (например, в пятом кадре) задается новая ориентация объекта и так далее до конечного положения. Промежуточные кадры вычисляются программно по специальному алгоритму. При этом происходит не просто линейная аппроксимация, а плавное изменение положения опорных точек объекта в соответствии с заданными условиями, определяемыми законами взаимодействия объектов между собой, разрешенными плоскостями движения, предельными углами поворотов, величинами ускорений и скоростей и т.д. Такой подход называют методом инверсной кинематики движения. Он хорошо работает при моделировании различных механических устройств. В случае с имитацией живых объектов используют так называемые скелетные модели, когда создается некий каркас, подвижный в точках, характерных для моделируемого объекта. Движения этих точек просчитываются предыдущим методом, затем на каркас накладывается оболочка из смоделированных поверхностей и осуществляется их визуализация путем наложения текстур с учетом условий освещенности.
Наиболее совершенный метод анимации заключается в фиксации реальных движений физического объекта. Для этого на объекте закрепляют в контрольных точках источники света и снимают заданное движение на видео- или кинопленку. Затем координаты этих точек по кадрам переводят в компьютер и присваивают соответствующим опорным точкам каркасной модели. В результате движения смоделированного объекта оказываются практически неотличимыми от движений живого прототипа.
Процесс расчета реалистичных изображений в компьютерной графике называют рендерингом(визуализацией). Применение сложных математических моделей позволяет имитировать такие физические эффекты, как взрывы, дождь, огонь, дым, туман и т.д. Однако их применение в полном объеме требует достаточно больших вычислительных ресурсов и поэтому в персональных компьютерах обычно реализуется лишь в упрощенных вариантах. По завершении рендерингакомпьютерную трехмерную анимацию используют либо как самостоятельный продукт, либо в качестве отдельных частей или кадров других продуктов.
Особую область трехмерного моделирования в режиме реального времени составляют тренажеры технических средств — автомобилей, судов, летательных и космических аппаратов. В них очень точно должны быть смоделированы технические параметры реальных объектов и свойства окружающей физической среды. В более простых вариантах, например при обучении вождению наземных транспортных средств, тренажеры могут быть реализованы и на персональных компьютерах.
Среди программных средств создания и обработки трехмерной графики для персональных компьютеров можно выделить три пакета:
§ 3D Studio Max (фирмаKinetix). Пакет считается полупрофессиональным, однако его ресурсов вполне хватает для разработки качественных трехмерных изображений объектов неживой природы. Его отличительными особенностями являются поддержка большинства существующих аппаратных ускорителей 3D-графики, мощные световые эффекты и большое число программных дополнений от сторонних фирм. Сравнительная нетребовательность к аппаратным ресурсам позволяет использовать 3D Studio Max даже на ПК среднего уровня. Вместе с тем по средствам моделирования и анимации он все же уступает более развитым современным программным средствам.
§ Softimage 3D (фирмаMicrosoft). Программа изначально создавалась для специализированных графических станций и лишь сравнительно недавно была конвертирована под операционную систему Windows NT. Её отличают богатые возможности моделирования, наличие большого числа регулируемых физических и кинематографических параметров, качественный и достаточно быстрый модуль для рендеринга и множество программных дополнений, значительно расширяющих функции пакета. Однако на платформе IBM PC Softimage 3Dвыглядит несколько тяжеловато и требует достаточно мощных аппаратных ресурсов.
§ Maya (фирмыAlias, Wavefront, TDI). Один из наиболее передовых пакетов в классе средств создания и обработки трехмерной графики для персональных компьютеров с точки зрения интерфейса и функциональных возможностей. Существует в вариантах для различных операционных систем, в том числе и Windows NT. Весь инструментарий Maya сведен в четыре группы: анимация (Animation), моделирование (Modeling), физическое моделирование (Dynamic) и визуализация(Rendering). Пакет имеет модульное построение и включает в себя программные блоки, обеспечивающие имитацию физических твердых тел, захват движения, обработку звука, обработку виртуальных моделей методами, характерными для реальной работы скульпторов и художников, а также сопряжение реальных натурных съемок с компьютерной анимацией и т.д.