Трехмерная (3D) графика
Позволяет строить объемные модели объектов в виртуальном пространстве. А затем необходимо создать проекцию объемной модели на плоский экран компьютера.
Преобладает векторный способ построения изображений, но используется и растровая графика. Программы трехмерной графики на порядок сложнее двумерной, она требует лучших параметров компьютера. А для ее демонстрации, например, в играх требуются мощные видеокарты. Но с ее помощью можно создавать самые разные объекты и сцены, изменяя по воле разработчика освещение, прозрачность, искривляя поверхности и рисунки на них, имитируя взрывы, дождь, огонь и прочее.
Можно выделить несколько этапов построения векторной 3D модели.
1. Каркасная аппроксимация. Строится трехмерный каркас модели (яблока, автомобиля, человека – чего угодно) из опорных линий. Обычно каркас строится на основе плоских четырехугольников, иногда применяются треугольники (см. рисунки ). Очевидно, что чем больше используется плоскостей, тем выше качество полученного 3D объекта.
Как будет показано далее, в разделе «Векторная графика», прямые линии и плоскости – это упрощенная стадия моделирования объекта. Более качественные результаты получаются при использовании криволинейных плоскостей и ребер, которые описываются полиномами. В частности, в 3D графике применяются NURBS кривые (см. тот же раздел «Векторная графика»).
2. Создание перспективы. Происходит за счет деформация каркасов так, чтобы близкие предметы смотрелись больше, дальние – меньше. Для построения требуемой экранной перспективы надо правильно выбрать точку и угол просмотра сцены (рисунок ).
3. Текстурирование[4]. Отдельные поверхности каркаса покрываются определенным цветом и текстурой. В принципе, если поверхность большая, то ее имеет смысл окрашивать цветовым градиентом, или нанести на нее растровую картинку, как это делается в 2D векторной графике.
Программы 3D-графики обладают большим набором текстур с разнообразными свойствами: шероховатых, гладких, матовых, по-разному отражающих свет. Всего возможно несколько видов взаимодействия света с поверхностью (см. рисунок).
· Зеркальное отражение, когда угол падения света на абсолютно гладкую поверхность в точности равен углу отражения.
· Диффузное отражение, наблюдается для матовых (негладких) поверхностей. На матовой поверхности угол падения тоже равен углу отражения. Но для каждого микроучастка углы падения/отражения различны, в результате свет рассеивается во все стороны. Могут быть равномерное рассеивание и преимущественное рассеивание в каком-либо направлении.
· Поглощение света. Полному поглощению соответствует черный цвет. При частичном поглощении объект приобретает цвет, отличный от цвета падающего света: отраженные цвета формируются как разность между падающими и поглощенными.
· Преломление света, наблюдается в прозрачных объектах, при прохождении сквозь которые луч света параллельно смещается. Смещение зависит от толщины материала и его показателя преломления.
Вид конкретной поверхности является результатом взаимодействия этих четырех вариантов, наложенных на соответствующую текстуру. Число конкретных вариантов получается неограниченным.
4. Установка и настройка источников света.В 3D графике используются следующие варианты источников света.
· Прожектор (spotlight) – пучок света имеет форму конуса, свет распространяется только в одном направлении. Чем дальше от источника света, тем большая площадь освещается. Чем ближе объект к свету, тем большую тень он отбрасывает. Это самый распространенный тип освещения.
· Направленное освещение (directional). Источник света находится в бесконечно удаленной точке (например, Солнце) и лучи от него распространяются параллельно. Тени от объектов будут одинаковыми.
· Точечное освещение или всенаправленное (omni). Источник света имеет конечные пространственные координаты, свет от него распространяется равномерно во все стороны.
· Рассеянный свет(ambient) –все объекты равномерно освещены (например, пейзаж в пасмурную погоду). Источника света как объекта нет, настраивается общая освещенность сцены.
Часто применяют не один, а несколько источников света. Основной источник располагают за камерой, под небольшим углом к ней. Чтобы ясно были видны контуры предметов, добавляют рассеянный свет. Можно также добавить свет, идущий на камеру. Тогда контуры объектов будут очерчены.
Существует много других параметров. Тени можно сделать резкими и размытыми, настроить разную величину затухания, и т.д.
5. Добавление анимации, звука и других опций, если это необходимо.
6. Визуализация, то есть вывод на экран. Эта операция называется рендеринг. .
7. Ручная корректировка. Перечисленные операции осуществляются автоматически, затем на экране человек поправляет то, что ему не нравится, и снова компьютер пересчитывает картинку по всем перечисленным выше этапам. Пересчет часто представляет собой сложную и длительную операцию, цикл может продолжаться часами и даже сутками.
При построении растровых трехмерных изображений можно провести усложнение кодировки пикселя. В каждом пикселе помимо его цвета добавляются еще несколько параметров.
1. Z-координата, называемая также аппликата. Как минимум один байт добавляется для кодировки положения пикселя по Z-оси, перпендикулярной плоскости экрана. Тогда в одной и той же точке экрана будет размещаться 256 пикселей, различающихся по Z-координате, то есть положенных один на другой.
2. Прозрачность. Еще как минимум байт добавляется для кодировки прозрачности пикселя. Прозрачный пиксель невидим, его как будто и нет. Если пиксель непрозрачен, то все, что находится «под ним», становится невидимым. Если пиксель частично прозрачен, возникает эффект «тумана» или «стекла».
При необходимости задаются и другие параметры, так что в один пиксель может кодироваться даже 128 битами или 16 байтами!
Дата добавления: 2018-05-10; просмотров: 2585;