API u GDI. Мультимедийные технические средства (а особенно компьютерная графика) — наиболее быстро развивающаяся область промышленности ПК, где с высокими темпами постоянно возникают новые чипсеты, версии интерфейсных карт, устройства и принципы технологий. Для прикладного программиста, занимающегося разработками мультимедийных приложений или компьютерных игр, становится совершенно нереальным заново переписывать все программы с появлением на рынке карт с новыми графическими процессорами, поддерживающими высокопроизводительные технологии мультимедиа с аппаратным ускорением (графические/видеоакселераторы).
Программный интерфейс приложения. В качестве решения появились программные интерфейсы приложений (API, application programming interface), которые играют роль посредника между прикладной программой и аппаратными средствами ЭВМ (интерфейсная карта и внешнее устройство), на которых она выполняется. Разработчик программного обеспечения пишет обращение к устройству на некотором стандартизированном языке, а не в кодах аппаратных средств ЭВМ. Затем драйвер, написанный изготовителем периферийного устройства или его карты, переводит этот стандартный код к формату, понятному специфической модели периферийных устройств (рис. 3.26).
Как СТАТЬ 3D дженералистом / BLENDER VS другие программы для создания трехмерной графики
API-интерфейсы обеспечивают доступ к новейшим возможностям высокопроизводительных устройств, таких как микросхемы ускорения трехмерной графики и звуковые платы. Эти интерфейсы управляют функциями нижнего уровня, в том числе ускорением двумерной графики, поддержкой устройств ввода, таких, как джойстик, клавиатура и мышь, а также микшированием и выводом звука.
Графический интерфейс устройства (Graphics Device Interface — GDI) является стандартом Microsoft Windows, который описывает, как следует представлять графические объекты для передачи их на устройства вывода типа мониторов или принтеров.
GDI поддерживает такие задачи, как рисование линий, представление шрифтов и обработка палитр. Он не занимается непосредственно формированием окон, меню и т. д., эти задачи оставлены для подсистемы пользователя (user32.dll), которая является надстройкой над GDI.
Существенная способность GDI (кроме более прямых методов обращения к аппаратным средствам) — масштабирование и абстрагирование от оконечных устройств. Используя GDI, можно достаточно просто осуществлять вывод изображений на различные устройства (мониторы, принтера) и ожидать надлежащего результата в каждом случае. Эта способность обеспечивает все приложения WYSIWYG для Microsoft Windows.
Простые игровые программы, которые не требуют быстрой Работки графики, могут обходиться возможностями GDI. Однако более современные игры должны использовать API DirectX или OpenGL, которые дают возможность программистам более интенсивно использовать аппаратные средства.
С появлением Windows XP GDI заменяется преемником — подсистемой GDI+, базирующейся на C++. GDI+ — следующее поколение двумерной графической среды, включающее такие расширенные особенности, как двумерная графика со сглаживанием, координаты с плавающей запятой, альфа-смешивание, градиентное затушевывание, поддержка современных форматов графических файлов наподобие JPEG и PNG (которые заметно отсутствовали в GDI), и общая поддержка перечня аффинных преобразований в конвейере двумерного рендеринга. Использование этих особенностей очевидно в интерфейсе пользователя Windows XP, и их присутствие в основном графическом уровне очень упрощает выполнение векторных графических преобразований. Динамическая библиотека GDI+ может вместе с приложением использоваться под более ранними версиями Windows. Библиотека классов Microsoft.NET обеспечивает управляемый интерфейс для GDI+.
Направления 3D графики | Интерьеры, Анимация, VFX, гейм-дизайн, 3D печать
API для трехмерной графики
Господствующими направлениями в обработке трехмерной графики в последние годы являются два 3D-API — OpenGL и Direct3D. Прежде чем давать их описания вкратце охарактеризуем процедуры, входящие в понятие представления изображения или рендеринга.
OpenGL (Open Graphics Library — открытая графическая библиотека) — межъязыковая и межплатформенная спецификация API для трех- и двумерных приложений компьютерной графики. Включает более чем 250 функций, которые предназначены для формирования трехмерных объектов и сцен из простых примитивов. OpenGL был разработан Silicon Graphics Inc. (SGI) в 1992 г. и широко распространен в индустрии разработчиков видеоигр, где конкурирует с Direct3D на платформах Microsoft Windows. OpenGL широко используется в САПР, визуализации данных, системах моделирования и видеоиграх.
В своей основе OpenGL — это спецификация, т. е. некоторый документ, который определяет набор функций и содержит точное описание действий, которые они должны выполнять. На основе этой спецификации производители аппаратных средств ЭВМ создают конкретные программные реализации — библиотеки соответствующие функциям, объявленным в OpenGL – спецификации, используя видеоакселераторы там, где возможно. Оборудование подвергается сертификационным тестам, чтобы квалифицировать его соответствие OpenGL.
Применение OpenGL преследует следующие основные цели:
• предоставляя программисту однородный программный интерфейс приложения, скрывать подробности взаимодействия с различными 3D-акселераторами;
• скрывать различие платформ аппаратных средств ЭВМ, требуя только, чтобы все программные реализации поддерживали полный набор функций OpenGL (используя программную эмуляцию, если необходимо).
Основная функция OpenGL заключается в считывании графических примитивов (точек, линий и многоугольников) и преобразовании их в пиксели. Это происходит в графическом конвейере, известном как «машина OpenGL» (OpenGL state machine). Большинство команд OpenGL или направляет примитивы на конвейер, или задает, как конвейер должен их обрабатывать.
До появления OpenGL 2.0 каждая стадия конвейера выполняла установленную функцию и конфигурировалась только в узких пределах, но в OpenGL 2.0 несколько стадий могут полностью программироваться с использованием языка GLSL.
OpenGL — процедурный программный интерфейс приложения низкого уровня, который требует от программиста точного описания шагов рендеринга сцен, а также хорошего знания графического конвейера.
Краткое описание процесса в графическом конвейере (рис. 3.27):
• построение (evaluation) коэффициентов полиномиальных Функций (наподобие сплайновых кривых NURBS), которые аппроксимируют пространственные поверхности объектов;
• обработка вершин многогранников (vertex operations), их преобразование или подсветка в зависимости от материала, Удаление невидимых частей объектов;
• растеризация (rasterisation) или преобразование предыдущей информации в пиксели, окраска многоугольников осуществляется на основе алгоритмов интерполяции;
• операции над фрагментами (пиксели или их группы — per-fragment operations) типа обновления ранее поступившей и сохраненной информации (цветовая глубина, оттенок и пр.);
• передача пикселей в буфер кадра/сцены (frame buffer).
DirectX. Впервые предложенный в 1995 г., DirectX представлял собой объединенный набор инструментов программирования, предназначенных для того, чтобы помочь разработчикам создавать широкий спектр мультимедийных приложений для платформы Windows. Охватывая почти все аспекты мультимедийных технологий, выпуск DirectX 8.0 включает следующие компоненты:
• DirectX Graphics, который в свою очередь состоит из двух API:
— DirectDraw — для обработки двумерных растровых изображений;
— Direct3D (D3D) — обработчик 3D-графики;
• DirectInput, обрабатывает данные, поступающие от клавиатуры, мыши, джойстиков или других игровых контроллеров;
• DirectPlay — для поддержки сетевых игр;
• DirectSound — проигрывание и запись звука;
• DirectSound3D (DS3D) — для воспроизведения 3D-звучания;
• DirectMusic — проигрывание звукозаписей, подготовленных в DirectMusic Producer;
• DirectSetup — установка и настройка компонент DirectX;
• DirectX Media, включает DirectAnimation, DirectShow, DirectX Video Acceleration, Direct3D Retained Mode и DirectX Transform для анимации, воспроизведения мультимедиа, 3D -интерактивных приложений;
• DirectX Media Objects — поддержка кодирования/декодирования в реальном масштабе времени и создание спецэффектов.
Direct 3 D. Direct3D включает две компоненты API — Immediate Mode (немедленная обработка) и Retained Mode (отложенная обработка). Первая обеспечивает использование всех 3D-функций видеокарт (подсветка, текстурирование, трансформация объектов и пр.), в то время как вторая — более сложные графические технологии, такие как иерархия сцен или анимация. Функции Immediate Mode предпочитают использовать разработчики видеоигр, поскольку здесь они могут осуществлять программирование на низком уровне, более свободно и эффективно используя возможности графического оборудования. Несмотря на Intermediate Mode считается, что Direct3D является менее гибким, чем OpenGL.
Компоненты 6-й версии Direct3D поддерживают возможности более новых графических карт выполнять множественное текстурирование (покрытия «каркаса» изображения текстурами) за один проход. Здесь также используются более новые методы для того, чтобы улучшить реализм 3D-сцен, типа анизотропной фильтрации (anistropic filtering), которая добавляет элемент глубины к трилинейной фильтрации (trilinear filtering) и отображение неровностей (bump mapping), которое создает иллюзию реальности структуры и освещенности плоских поверхностей.
Следующая версия — DirectX V7.0 (1999 г.), кроме оптимизации кода, которая позволила на 20 % увеличить быстродействие, включала ряд новых особенностей. Наиболее важная из них — сопровождение операций трансформации и подсветки (transformation and lighting — TL являлись одной из самых трудоемких для центральных процессоров задач в современных игровых приложениях, перенос этой нагрузки на выделенный 3D-акселератор позволяет освободить ЦП для более существенных задач (например, внесение в игры элементов искусственного интеллекта или выработка специальных эффектов).
Самым важным аспектом DirectX 9.0 (январь 2003 г.) было введение HLSL (High Level Shader Language, высокоуровневый язык раскрашивания изображений). Ранее разработчики игр должны были программировать алгоритмы раскраски, используя ассемблер низкого уровня. HDSL вводит дружественную среду программирования, которая облегчает каждый шаг разработки, — от создания ярких образов в мультипликации до программирования эффектов. Базирующийся на языке программирования С, HLSL совместим со всеми графическими средствами DirectX.
Структура графического конвейера Direct3D (рис. 3.28):
• входная сборка (input assembler) поставляет данные на конвейер;
• раскраска вершин многогранников (vertex shader) выполняет операции над вершинами, такими, как трансформация, покрытие текстурой, подсветка;
• раскраска геометрических примитивов (geometry shader) — операции над примитивами (треугольники, вершины, линии), иногда — над связанными с ними примитивами. На этой стадии каждый примитив передается дальше или уничтожается, или на его основе создается один или несколько новых примитивов;
• выходной поток (stream output) — запись в память результатов предыдущих стадий. На основе этих данных могут быть организованы итерационные циклы обработки данных на конвейере;
• растеризация (rasterizer) — трансформация примитивов в пиксели, удаление невидимых;
• раскраска пикселей (pixel shader) и другие операции над ними;
• окончательная сборка (output merger), объединение различных типов выходных данных и построение кадра-результата.
Контрольные вопросы
1. Каковы характеристики аналогово-цифрового и цифро-аналогового
2. Перечислите методы синтеза звука.
3. Какие характеристики имеют аудиоадаптеры?
4. Что такое ЧМ и WaveTable?
5. Перечислите возможности карты SoundBlaster.
6. Что такое Live!Drive?
7. Охарактеризуйте MIDI-интерфейс.
8. Перечислите основные характеристики форматов аудиосигнала.
9. Какие основные функции реализует программное обеспечение обработки
10. Охарактеризуйте методы оптической интерполяции.
11. Перечислите основные характеристики цифровых видеокамер (ЦВК).
12. Что такое схемы цветообразования?
13. Охарактеризуйте форматы графических файлов.
14. Что такое видеозахват?
15. Что такое цветоразностные компоненты?
16. Перечислите форматы записи цифрового видео.
17. В чем заключается сущность M-JPEG сжатия видеоданных?
18. Перечислите основные особенности алгоритмов MPEG-1—4.
19. Что такое GOP?
20. Что такое профили MPEG?
21. В чем сущность стандарта MPEG-7?
22. Перечислите основные фазы работы с 3-мерной графикой.
23. Что такое рендеринг?
24. Охарактеризуйте API OpenGL.
25. Что такое DirectX и Direct3D?
Глава 4
Источник: infopedia.su
Программные средства обработки трехмерной графики
Трехмерная графика нашла широкое применение в таких областях, как научные расчеты, инженерное проектирование, компьютерное моделирование физических объектов.
Для создания реалистичной модели объекта используются геометрические примитивы (куб, шар, конус и пр.) и гладкие, так называемые сплайновые поверхности. Вид поверхности определяется расположенной в пространстве сеткой опорных точек. Каждой точке присваивается коэффициент, величина которого определяет степень ее влияния на часть поверхности, проходящей вблизи точки. От взаимного расположения точек и величины коэффициентов зависит форма и гладкость поверхности в целом.
Деформация объекта обеспечивается перемещением контрольных точек, расположенных вблизи. Каждая контрольная точка связана с ближайшими опорными точками, степень ее влияния на них определяется удаленностью. Другой метод называют сеткой деформации. Вокруг объекта или его части размещается трехмерная сетка, перемещение любой точки которой вызывает упругую деформацию как самой сетки, так и окруженного объекта.
Еще одним способом построения объектов из примитивов служит твердотельное моделирование. Объекты представлены твердыми телами, которые при взаимодействии с другими телами различными способами (объединение, вычитание, слияние и др.) претерпевают необходимую трансформацию.
Все многообразие свойств в компьютерном моделировании сводится к визуализации поверхности, то есть к расчету коэффициента прозрачности поверхности и угла преломления лучей света на границе материала и окружающего пространства. Свойства поверхности описываются в создаваемых массивах текстур, в которых содержатся данные о степени прозрачности материала, коэффициенте преломления, цвете в каждой точке, цвете блика, его ширине и резкости и др.
После завершения конструирования и визуализации объекта приступают его «оживлению», т.е. заданию параметров движения. Компьютерная анимация базируется на ключевых кадрах.
Применение сложных математических моделей позволяет имитировать различные физические эффекты: взрывы, дождь, снег, огонь, дым, туман и др.
Основную долю рынка программных средств обработки трехмерной графики занимают три пакета: 3D Studio Max фирмы Kinetix; Softimage 3D компании Microsoft; Maya, разработанная консорциумом известных компаний (Alias, Wavefront, TDI). На сегодняшний день Maya является наиболее передовым пакетом в классе средств создания и обработки трехмерной графики для персональных компьютеров.
Трехмерная графика нашла широкое применение в таких областях, как научные расчеты, инженерное проектирование, компьютерное моделирование физических объектов (рис. 3). В качестве примера рассмотрим наиболее сложный вариант трехмерного моделирования – создание подвижного изображения реального физического тела.
В упрощенном виде для пространственного моделирования объекта требуется:
– спроектировать и создать виртуальный каркас (“скелет”) объекта, наиболее полно соответствующий его реальной форме;
– спроектировать и создать виртуальные материалы, по физическим свойствам визуализации похожие на реальные;
– присвоить материалы различным частям поверхности объекта (на профессиональном жаргоне – “спроектировать текстуры на объект”);
– настроить физические параметры пространства, в котором будет действовать объект, – задать освещение, гравитацию, свойства атмосферы, свойства взаимодействующих объектов и поверхностей;
– задать траектории движения объектов;
– рассчитать результирующую последовательность кадров;
– наложить поверхностные эффекты на итоговый анимационный ролик.
Для создания реалистичной модели объекта используют геометрические примитивы (прямоугольник, куб, шар, конус и прочие) и гладкие, так называемые сплайновые поверхности. В последнем случае применяют чаще всего метод бикубических рациональных В-сплайнов на неравномерной сетке (NURBS). Вид поверхности при этом определяется расположенной в пространстве сеткой опорных точек. Каждой точке присваивается коэффициент, величина которого определяет степень ее влияния на часть поверхности, проходящей вблизи точки. От взаимного расположения точек и величины коэффициентов зависит форма и “гладкость” поверхности в целом.
После формирования “скелета” объекта необходимо покрыть его поверхность материалами. Все многообразие свойств в компьютерном моделировании сводится к визуализации поверхности, то есть к расчету коэффициента прозрачности поверхности и угла преломления лучей света на границе материала и окружающего пространства.
Закраска поверхностей осуществляется методами Гуро (Gouraud) или Фонга (Phong). В первом случае цвет примитива рассчитывается лишь в его вершинах, а затем линейно интерполируется по поверхности. Во втором случае строится нормаль к объекту в целом, ее вектор интерполируется по поверхности составляющих примитивов и освещение рассчитывается для каждой точки.
Свет, уходящий с поверхности в конкретной точке в сторону наблюдателя, представляет собой сумму компонентов, умноженных на коэффициент, связанный с материалом и цветом поверхности в данной точке. К таковым компонентам относятся:
– свет, пришедший с обратной стороны поверхности, то есть преломленный свет (Refracted);
– свет, равномерно рассеиваемый поверхностью (Diffuse);
– зеркально отраженный свет (Reflected);
– блики, то есть отраженный свет источников (Specular);
– собственное свечение поверхности (Self Illumination).
Следующим этапом является наложение (“проектирование”) текстур на определенные участки каркаса объекта. При этом необходимо учитывать их взаимное влияние на границах примитивов. Проектирование материалов на объект – задача трудно формализуемая, она сродни художественному процессу и требует от исполнителя хотя бы минимальных творческих способностей.
После завершения конструирования и визуализации объекта приступают к его “оживлению”, то есть заданию параметров движения. Компьютерная анимация базируется на ключевых кадрах. В первом кадре объект выставляется в исходное положение. Через определенный промежуток (например, в восьмом кадре) задается новое положение объекта и так далее до конечного положения.
Промежуточные значения вычисляет программа по специальному алгоритму. При этом происходит не просто линейная аппроксимация, а плавное изменение положения опорных точек объекта в соответствии с заданными условиями.
Эти условия определяются иерархией объектов (то есть законами их взаимодействия между собой), разрешенными плоскостями движения, предельными углами поворотов, величинами ускорений и скоростей. Такой подход называют методом инверсной кинематики движения. Он хорошо работает при моделировании механических устройств.
В случае с имитацией живых объектов используют так называемые скелетные модели. То есть, создается некий каркас, подвижный в точках, характерных для моделируемого объекта. Движения точек просчитываются предыдущим методом.
Затем на каркас накладывается оболочка, состоящая из смоделированных поверхностей, для которых каркас является набором контрольных точек, то есть создается каркасная модель. Каркасная модель визуализуется наложением поверхностных текстур с учетом условий освещения. В ходе перемещения объекта получается весьма правдоподобная имитация движений живых существ.
Наиболее совершенный метод анимации заключается в фиксации реальных движений физического объекта. Например, на человеке закрепляют в контрольных точках яркие источники света и снимают заданное движение на видео- или кинопленку. Затем координаты точек по кадрам переводят с пленки в компьютер и присваивают соответствующим опорным точкам каркасной модели. В результате движения имитируемого объекта практически неотличимы от живого прототипа.
Процесс расчета реалистичных изображений называют рендерингом (визуализацией). Большинство современных программ рендеринга основаны на методе обратной трассировки лучей (Backway Ray Tracing). Применение сложных математических моделей позволяет имитировать такие физические эффекты, как взрывы, дождь, огонь, дым, туман. По завершении рендеринга компьютерную трехмерную анимацию используют либо как самостоятельный продукт, либо в качестве отдельных частей или кадров готового продукта.
Особую область трёхмерного моделирования в режиме реального времени составляют тренажеры технических средств – автомобилей, судов, летательных и космических аппаратов. В них необходимо очень точно реализовывать технические параметры объектов и свойства окружающей физической среды. В более простых вариантах, например при обучении вождению наземных транспортных средств, тренажеры реализуют на персональных компьютерах.
Самые совершенные на сегодняшний день устройства созданы для обучения пилотированию космических кораблей и военных летательных аппаратов. Моделированием и визуализацией объектов в таких тренажерах заняты несколько специализированных графических станций, построенных на мощных RISC-процессорах и скоростных видеоадаптерах с аппаратными ускорителями трехмерной графики. Общее управление системой и просчет сценариев взаимодействия возложены на суперкомпьютер, состоящий из десятков и сотен процессоров. Стоимость таких комплексов выражается девятизначными цифрами, но их применение окупается достаточно быстро, так как обучение на реальных аппаратах в десятки раз дороже.
Программные средства обработки трехмерной графики
На персональных компьютерах основную долю рынка программных средств обработки трехмерной графики занимают три пакета. Эффективней всего они работают на самых мощных машинах (в двух- или четырехпроцессорных конфигурациях Pentium II/III, Xeon) под управлением операционной системы Windows NT.
Программа создания и обработки трехмерной графики 3D Studio Max фирмы Kinetix изначально создавалась для платформы Windows. Этот пакет считается «полупрофессиональным». Однако его средств вполне хватает для разработки качественных трехмерных изображений объектов неживой природы.
Отличительными особенностями пакета являются поддержка большого числа аппаратных ускорителей трехмерной графики, мощные световые эффекты, большое число дополнений, созданных сторонними фирмами. Сравнительная нетребовательность к аппаратным ресурсам позволяет работать даже на компьютерах среднего уровня. Вместе с тем по средствам моделирования и анимации пакет 3D Studio Max уступает более развитым программным средствам.
Программа Softimage 3D компании Microsoft изначально создавалась для рабочих станций SGIи лишь сравнительно недавно была конвертирована под операционную систему Windows NT. Программу отличают богатые возможности моделирования, наличие большого числа регулируемых физических и кинематографических параметров. Для рендеринга применяется качественный и достаточно быстрый модуль Mental Ray. Существует множество дополнений, выпущенных “третьими” фирмами, значительно расширяющих функции пакета. Эта программа считается стандартом «де-факто» в мире специализированных графических станций SGI, а на платформе IBM PC выглядит несколько тяжеловато и требует мощных аппаратных ресурсов.
Наиболее революционной с точки зрения интерфейса и возможностей является программа Мауа, разработанная консорциумом известных компаний (Alias, Wavefront, TDI). Пакет существует в вариантах для разных операционных систем, в том числе и Windows NT. Инструментарий Мауа сведен в четыре группы: Animation (анимация), Modeling (моделирование), Dynamic (физическое моделирование), Rendering (визуализация). Удобный настраиваемый интерфейс выполнен в соответствии с современными требованиями. На сегодняшний день Мауа является наиболее передовым пакетом в классе средств создания и обработки трехмерной графики для персональных компьютеров.
| | следующая лекция ==> | |
Растровая и векторная графика | | | Алгоритм вывода прямой линии |
Дата добавления: 2016-05-28 ; просмотров: 3395 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Источник: poznayka.org
Математические основы 3D графики Вектора
Несмотря на то, что трехмерная компьютерная графика появилась сравнительно недавно, попытки воссоздать на фотографиях, картинах и кинопленке трехмерный мир предпринимались достаточно давно, задолго до появления компьютеров. Человеческое зрение устроено таким образом, что человек видит два независимых изображения, которые позволяют воспринимать мир в трех измерениях.
Именно благодаря этому мы можем видеть объемные предметы и определять, насколько они смещены в пространстве относительно друг друга и насколько удалены от нас. Когда-то для имитации трехмерных изображений использовался стереоскопом. Оно имело прорези для глаз, через которые зритель рассматривал две картинки, помещенные рядом. Эти изображения были получены одновременно, но точки их съемки немного различались. В результате, когда человек через стереоскоп смотрел на одну картинку одним глазом, а на другую — вторым, ему казалось, что он видит трехмерное изображение.
В начале ХХ века появились первые стереоскопические фотоаппараты, имели два объектива, расположенных на расстоянии 65 мм друг от друга. Давали возможность без проблем получать стереоизображения. Примерно в то же время была запатентована технология, позволяющая использовать стереоскоп для показа трехмерных фильмов.
Вместо статических изображений применялись две кинопленки, изображения были получены в результате одновременной съемки одних и тех же объектов с разных точек. В начале 1950 годов в Америке были очень популярны фильмы, для просмотра которых использовались поляризованные стереоочки с синими и красными стеклами. Два изображения проецировались на экран через ортогональный поляризационный фильтр, накладываясь друг на друга зритель, надевший очки с такими же фильтрами, видел каждым глазом только тот спектр, который проходил через соответствующий фильтр. Таким образом достигался эффект стереоскопии.
При возникновении компьютеров появилась возможность создания настоящих трехмерных эффектов. Первооткрывателем в этой области был один из самых известных людей в мировом кинематографе — Джордж Лукас. Его фильмы «Звездные войны» прославились невиданными спецэффектами. В 1975 году Лукас основал собственную компанию ILM, которая занималась разработкой спецэффектов. В 1985 году в фильме «Молодой Шерлок Холмс появился первый персонаж, созданный при помощи компьютера.
Студия Pixar в 1986 году создала графический компьютер Pixar Image Computer, который мог выводить на экран изображение с разрешением 1280 x 1024 пикселов в цвете и 2048 x 2048 пикселов в черно-белом режиме. Позже разработала средство для визуализации компьютерной анимации RenderMan, которое до сих пор самое лучшее. В 1995 году был представлен первый полнометражный компьютерный мультфильм «История игрушек». В 2001 году «Корпорация монстров», в котором впервые герои с реалистичной шерстью, «Шреке» — огромные леса с детальной прорисовкой деревьев и листьев на них.
Сегодня созданием полнометражных анимационных фильмов занимаются не только студии Pixar и DreamWorks, но и многие другие известные компании, в том числе Warner Bros. и Sony. Компьютерная графика нашла применение и во многих других сферах, которые далеки от кинематографа. Например, с ее помощью моделируются фотореалистичные здания и интерьеры, которые в реальности не существуют.
Она также помогает медикам исследовать организм человекаи т.д. Широко используется в сфере развлечений, с ее помощью выполняются все современные компьютерные игры. Благодаря тому, что за последние двадцать лет было изобретено множество технологий, упрощающих работу с компьютерной графикой, и тому, что мощности компьютеров за это время возросли во много раз, создание фильмов и спецэффектов больше не является уделом только профессионалов.
Этапы создания трехмерного проекта
Для создания компьютерной графики используются специальные программы, которые называются 3D-редакторами. Они предоставляют в распоряжение пользователя трехмерное пространство, в котором можно создавать, перемещать и вращать 3D-объекты.
Кроме того, в современных 3D-редакторах имеются специальные инструменты, которые заставляют объекты самостоятельно двигаться, то есть создают на их основе анимацию. Программа 3ds Max — это одно из самых популярных в мире приложений для разработки трехмерной графики, при помощи которого созданы многие известные фильмы, игры и рекламные ролики.
Трехмерная графика — это что-то среднее между компьютерной игрой и съемкой настоящего фильма. Процесс создания трехмерного проекта, как и реального фильма, делится на несколько обязательных и последовательных этапов. Они одинаковы, независимо от того, в каком 3D-редакторе выполняется проект и какой это проект. Трехмерный проект часто называют сценой.
В своей работе 3D-художники делают декорации для своей виртуальной съемочной площадки, создают актеров — трехмерных персонажей, заставляют их двигаться и разговаривать, устанавливают освещение и выбирают точку съемки. Приходится «накладывать грим» на актеров, а, кроме того, раскрашивать все предметы виртуального мира, делая их похожими на настоящие.
Моделирование
В трехмерном пространстве 3ds Max не существует никаких предметов. Виртуальный мир наполняется разными объектами, которые создает пользователь в 3D-редакторе. Это относится к трехмерным персонажам, зданиям, горам, лесам и любым другим вещам виртуального мира. Процесс создания трехмерных объектов называется моделированием, а сами объекты — моделями.
В отличие от рисованного изображения, трехмерную модель можно вращать и перемещать в трех измерениях, глядя на нее со всех сторон. В зависимости от того, какой именно объект нужно создать, на его моделирование может уйти от нескольких секунд до нескольких месяцев.
Анимация
В отличие от моделирования, анимация не является обязательным этапом создания трехмерных проектов. Например, если дизайнер работает над проектом интерьера квартиры, ему не нужно заставлять объекты двигаться, поскольку для такого проекта важно показать внешний вид и размещение предметов в помещении. Если же создается рекламный ролик или какой-нибудь эффект наподобие взрыва, то без анимации не обойтись. Анимация подразумевает изменение положения объектов, которые присутствуют в трехмерном пространстве, во времени. В процессе создания анимации 3D-художнику необходимо
разместить уже созданные им объекты в каждом кадре.
Съемка
Конечный продукт трехмерной анимации, является видео, которое может «сниматься» с разных точек. Например, карточный домик можно показать издалека, чтобы он был виден целиком, а можно приблизить, чтобы в кадр попала только его часть. Выбор точки съемки в трехмерной анимации не менее важен, чем в настоящем кино или на телевидении.
Для съемки анимации, созданной в 3D-редакторе, применяются виртуальные камеры. Как и реальные, виртуальные камеры можно перемещать, а также переключаться между ними в процессе анимации. Например, первые 50 кадров анимации можно наблюдать через первую камеру, а затем переключаться на вид из второй. Виртуальные камеры обладают теми же свойствами, что и настоящие: они могут фиксировать картинку под разным углом зрения, имитировать эффект глубины резкости и т.д. 3D-художник, работающий над анимационным проектом, должен уметь правильно подобрать расположение камер, чтобы точка съемки была наиболее удачной, а также продумать, как камеры будут перемещаться в процессе анимации.
Освещение
Виртуальное пространство, в котором работают 3D-художники, в отличие от реального мира, не имеет источников освещения. Чтобы увидеть, что происходит в виртуальном мире, его нужно осветить. Для
имитации освещения в трехмерной графике используются специальные объекты, которые так и называются — источники света. Чтобы освещение 3D-объектов было похоже на настоящее, приходится учитывать множество факторов: где расположен источник света, с какой силой он светит, от каких предметов отражается и т. д.
Текстурирование
Объекты, созданные в трехмерном пространстве, на этапе моделирования отличаются друг от друга только формой. Чтобы 3D-модель напоминала реальный предмет, недостаточно точно повторить его форму, нужно еще и раскрасить ее соответствующим образом. Процесс раскраски трехмерных объектов называется текстурированием.
Это слово происходит от термина «текстура», которым обозначается рисунок, накладываемый на 3D-модель. В общем смысле слово «текстура» имеет несколько другое значение и обозначает особенности строения твердого вещества, обусловленные характером расположения его составных частей. В трехмерной графике текстурой может служить как фотография реального объекта, наложенная на 3D-модель, так и двумерный рисунок, созданный в программе типа Adobe Photoshop.
Визуализация
Последовательность выполнения предыдущих этапов создания трехмерного проекта может быть различной. Однако визуализация всегда является последним этапом работы над проектом. Можно сказать, что без визуализации работа в 3D-редакторе не имеет никакого смысла, поскольку без нее нельзя получить конечный результат. Этап визуализации тесно связан с этапом съемки.
Как только вы расставили камеры и подобрали их параметры, вы можете начать снимать виртуальный фильм, то есть визуализировать его. Визуализацию трехмерного проекта можно сравнить со съемкой видеокамерой, однако готовое видео или статическое изображение в этом случае записывается не на кассету, а в файл. Визуализацию также называют рендерингом, или просчетом.
Математические основы 3D графики Вектора
Вектор — линия с постоянным направлением и длиной, которую можно перемещать в координатной системе.
Векторное уравнение
Пусть имеется точка A с координатами (Ax,Ay,Az), и точка B с координатами (Bx,By,Bz),тогда вектор с началом в точке A и концом в точке B есть AB = (Bx-Ax,By-Ay,Bz-Az)= (X,Y,Z). Нужно встать в точку A и протопать в направлении X расстояние, равное (Bx-Ax), после чего проделать еще 2 прогулки в направлении Y и Z.
Длина вектора
Расстояние от начала координат до вершины. Вычисление длины вектора необходимо, например, для phong shading и vertex normal calculation.
Сложение векторов
Результат — вектор: a + b = (Ax+Bx,Ay+By,Az+Bz).
Источник: megalektsii.ru