ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 28.04.2024

Просмотров: 77

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

15 ресурсам компьютера вообще и к производительности в частности.
4. Трассировка луча (Ray Tracing) - Наиболее качественный уровень представления трехмерных поверхностей, доступный для настольных компьютеров. Состоит в том, что "нарисованный" луч света, попадая на такую же искусственную поверхность, ведет себя точно так же, как и настоящий - отражается и меняет свое направление. Результат очень реалистичен, с чрезвычайно точными тенями, отражениями и даже преломлением.
Превращения (Transforms)
Операции изменения позиции, размера, или ориентации объекта в пространстве. В общем случае - перемещение, масштабирование и вращение.
Деформации (Deforms)
Операции подобные превращениям, однако, более сложные, так как их исполнение приводят к перемене внешнего вида объекта. К деформациям можно отнести искривление, поворот, рассогласование и т. п.
Отсечение (Clipping)
Отсечение тех многоугольников, которые не попадают в поле зрения пользователя.
Распределение (Mapping)
Распределение, (иначе - распределение текстур, Texture Mapping) - процесс назначения объекту атрибутов придающих ему реалистичность. До того, как объекту будет назначена определенная текстура, его составляющие окрашены либо в несколько простейших цветов, либо в серый цвет. Распределение придает объекту или поверхности специфический цвет или назначает текстуру.
Важнейшая характеристика для оценки трехмерных сцен - реалистичность, однако, простое моделирование трехмерных объектов не всегда позволяет добиться реалистичности. В этом случае, на помощь приходит распределение текстур. Представьте себе скалу - стена из нескольких прямоугольников разной величины с плоскими серыми поверхностями, выглядит весьма неубедительно, будто это стена сложенная из стандартных бетонных плит. Но стоит только добавить к ним текстуру, имитирующую поверхность скалы, как прежние блоки действительно выглядят похожими на скалу.
Дизеринг (dithering) механизм получения изображения в HiColor-режимах.
Мультитекстурирование
Мультитекстурирование (multitexturing) - метод рендеринга с использованием нескольких текстур за минимальное число проходов. Мультитекстурирование позволяет конвейеризировать наложение текстур с использованием нескольких
(обычно двух) блоков текстурирования.

16
Конвейер рендеринга
Рендеринг выполняется по многоступенчатому механизму, называемому конвейером рендеринга. Конвейер рендеринга может быть разделен на три стадии: тесселяция, геометрическая обработка и растеризация. Если взять произвольный 3D-ускоритель, то он не будет ускорять все стадии конвейера, и даже более того, стадии могут лишь частично ускоряться им. Тесселяция - процесс разбиения поверхности объектов на треугольники. Эта стадия проводится полностью программно вне зависимости от технического уровня и цены 3D-аппаратуры. Геометрическая обработка делится на несколько фаз и может частично ускоряться 3D-ускорителем. Трансформация - преобразование координат (вращение, перенос и масштабирование всех объектов). Расчет освещенности - определение цвета каждой вершины с учетом всех световых источников. Проецирование - преобразование координат в систему координат экрана. Triangle setup - предварительная обработка потока вершин перед растеризацией. Растеризация наиболее интенсивная операция, обычно реализуемая на аппаратном уровне. Растеризатор выполняет непосредственно рендеринг и является нaиболее сложной ступенью конвейера. Если стадия геометрической обработки работает с вершинами, то растеризация включает операции над пиксела-ми. Растеризация включает в себя затенение и дизеринг.
Z-буферизция (Z-Buffering)
Сравнительно новое свойство, применяемое для облегчения управлением положения трехмерных объектов в пространстве. Часто используется для затуманивания. Состоит в том, что кроме двумерных координат (x, y) пиксела, хранится еще и значение его глубины. Область видеопамяти, в которой хранятся значения глубины для каждого пиксела, называется z-буфер.
Фреймбуфер
Фреймбуфер - понятие путанное, так как может означать несколько вещей в зависимости от контекста. Обычно фреймбуфер - это область памяти, где хранятся пикселы. Фреймбуфер в этом случае делится (обычно пополам) на передний и обратный буфер. Передний буфер - это то, что видит пользователь в конкретный момент. При рендеринге передний буфер остается неизменным до полного формирования нового кадра. При этом вся работа ведется с невидимым обратным буфером, который как бы хранит будущий кадр, который пользователь увидит через долю секунды. Когда новый кадр отрисован, то обратный буфер становится передним, и 3D-ускоритель приступает к новому кадру. Такая работа называ-ется двойной буферизацией. Иногда фреймбуфером называют всю видеопамять (когда говорят "эта плата имеет фреймбуфер 8
Мбайт"), иногда - видеопамять для z-буфера, переднего буфера и обратного буфера (фреймбуфер Voodoo 2).
2D-разрешение
2D-разрешение - это то разрешение, которое стоит, к примеру, на экране


17
(desktop) Windows 95. Для расчета того, сколько видеопамяти требуется для какого-либо 2D-разрешения, нужно умножить ширину экрана в точках на его высоту и на размер одного пиксела в байтах. 3D-разрешение - это то разрешение, на котором 3D-ускоритель может выполнять рендеринг трехмерной сцены. Расчеты в 3D более сложны, так как, кроме переднего буфера, здесь есть еще обратный буфер, z-буфер и в некоторых случаях другие буферы. Рендеринг может выполняться по-разному, в одном случае z-буфера не будет, в другом случае будет два обратных буфера. Но, традиционно говоря о
3D-разрешении, имеется в виду ситуация "по умолчанию": передний буфер, обратный буфер и z-буфeр.
Коррекция
перспективы
Способность корректировать текстуры таким образом, чтобы у наблюдателя создавалось впечатление перспективы.
Сегодня, при создании игр используют сравнительно большие треугольники, а для придания реалистичности изображения применяют карты текстур, что более эффективно, нежели использование огромной массы мелких треугольников. Хотя такой подход требует от компьютера весьма интенсивной работы, он все же выгоднее альтернативных методов, которые так и не избавились от видимых искажений и "плавающих" текстур.
Мипмэппинг
(MIP-mapping)
Текстура, нарисованная с несколькими уровнями детализации. Чем дальше от наблюдателя накладывается текстура, тем меньший уровень детализации используется. Это дает, во-первых, уменьшение времени обработки - обрабатывать текстуру с низкой детализацией гораздо легче. Во-вторых, текстура, нарисованная художником, всегда будет выглядеть лучше, чем сильно сжатая или силь-но растянутая.
Билинейная
фильтрация
Билинейная фильтрация (bi-linear filtering) - метод текстурирования, при котором выполняется интерполя-ция текстуры. Смысл билинейной фильтрации состоит в том, что каждый тексел данной структуры окрашивается в цвет, полученный, как средне взвешенное от значений цветов четырех соседних текселей.
Трилинейная
фильтрация (tri-linear filtering)
Более сложный метод текстурирования, при котором помимо интерполяции текстуры выполняется интерполяция между уровнями детализации текстуры.
Трилинейная фильтрация дает более качественное изоб-ражение, чем обычная билинейная с мипмэппингом.
Антиалиасинг
(Anti-Aliasing)
Поскольку цифровые изображения, в основном, представляют собой матрицу из точек, строки этой матрицы, будучи проведенными не строго по


18 горизонтали или вертикали прорисовывают объект неровными, зубчатыми линиями (этот эффект еще называют stairstepping). Наиболее распространенный метод борьбы с этим эффектом состоит в том, что пикселы в зубчиках заполняются цветом представляющим собой смесь цвета самой линии и цвета фона. Края линии, таким образом, смягчаются, и она выглядит более чистой, лишенной зубчиков.
Затуманивание
(Fogging)
Один из наиболее распространенных эффектов. Отдаленные объекты или их детали, как бы скрываются в тумане и проясняются по мере приближения зрителя к ним. Эффект используется не только для моделирования атмосферного явления - уменьшая число деталей разработчики делают сцену менее сложной, тем самым снижая нагрузку на процессор и графический акселератор.
Альфа
-смешение (Alpha Blending)
Техника создания эффекта полупрозрачности путем объединения исходного пиксела с пикселом, уже находящимся во фреймбуфере. Применяется для создания многочисленных визуальных эффектов, так или иначе обыгрывающих полупрозрачность каких-либо объектов, например воды, стекла или ударной волны от взрыва, тени, тумана, бликов, всполохов света, огня. Это очень общий термин, многие другие функции, где нужно объединять пикселы, такие как прозрачные текстуры, мультитекстурирование, антиалиасинг, также используют альфа-смешение.
Наложение
рельефа (bump-mapping)
Продвинутая методика моделирования рельефных поверхностей. Для того чтобы подчеркнуть бугорки и впадины рельефа с помощью светотени, то надо затемнить либо осветлить стенки этих бугорков и впадин. Другой метод состоит в симуляции рельефности глянцевой или зеркальной поверхности отражением окружающей среды. Это и делает техника наложения рельефа.
Геометрический
процессор
Геометрическим процессором называется ускоритель, который ускоряет всю стадию геометрической обработки, в том числе трансформацию и освещение. Реализация геометрического процессора довольно дорога, и, как уже было сказано, он является объектом реклам-ных спекуляций. Определить, реализован ли геометрический процессор, довольно легко - надо выяснить, поддерживает ли 3D-ускоритель операции с матрицами. Без такой поддержки не может идти речи об ускорении фазы трансформации. Геометрическими процессорами являются, например, FGX-1.
Сравнение
OpenGL и Direct 3D
Главное концептуальное отличие OpenGL от Direct 3D это то, что OpenGL - открытый стандарт, для которого любой производитель может писать свои расширения. Direct 3D - жестко регламентированный стандарт, не


19 допускающий никаких нововведений до появления новой версии. OpenGL - в оригинальном виде это набор функций, которые производитель должен реализовать в драйверах для типа и платы и которые разработчик может использовать в своих программах. Но ради переносимости многие функциональные возможности не введены прямо в стандарт, а выделены в расширение, и любой производитель сам может решить поддержать то или иное расширение. И даже если он не будет поддерживать ни одно расширение, кроме оригинального OpenGL, все равно будет считаться, что он полностью соответствует этому стандарту. Любой член OpenGL написал свои расширения.
Есть расширения от Intel, Microsoft и тому подобное. Direct 3D имеет архитектуру, оснащенную на проверке функциональных возможностей, так называемой CAPS TEST. Direct 3D регламентирует все возможности, доступные производителям, которые могут использовать в своих 3D - ускорителях и разработкам ПО, которые используют эти возможности.
Программа (игра) запрашивает у драйвера, какие возможности предоставляет 3D - ускоритель и в зависимости от ответа включаются те или иные эффекты. При этом ни какого расширения не допускается. Microsoft лицензирует программные технологии, например, технологию наложения рельефа у компании TriTech, технологию компрессии текстур у компании S3 и другие. Direct 3D - закрытый стандарт (после публикации он не расширяется).
3.
Переход
от двумерной графики к трехмерной.
Работа с трехмерной графикой без знания основных принципов и соответствующей теории моделирования может иметь печальный результат.
Само собой, нет ничего более интересного, чем исследование функциональных возможностей программного обеспечения, однако понимание основ сохранит новичку время и нервы, а также оградит от неприятностей в будущем.
Для начала следует разобраться в общих концепциях двух- и трехмерной графики. При наличии некоторого опыта работы с Adobe Illustrator или какими- либо другими программами для работы с графикой, можно успешно применять уже полученные знания о моделировании к двухмерным формам. Основное различие между двухмерными и трехмерными объектами — это глубина.
Двухмерные изображения характеризуются только высотой и шириной, а вот глубина отсутствует. Хотя двухмерные объекты можно создать и так, чтобы они казались трехмерными. В таком случае, если понадобится изменить перспективу или угол просмотра, объект придется перерисовать заново
(рис.1.1).


20
Рис. 1.1. а) Для создания изображения, выглядящего трехмерным, можно использовать программы двухмерного моделирования (и хорошие карандаши), б) К сожалению, для поворота объекта под любым углом пользователю придется рисовать его заново.
Поскольку трехмерные объекты имеют глубину (по крайней мере, на экране компьютера), их достаточно "нарисовать" всего один раз, после чего объект можно рассматривать под любым углом и с любых сторон, не создавая их заново. В программах трехмерного моделирования автоматически определяется информация о соответствующей подсветке и тени, падающей на сцену.
Подобная информация напрямую зависит от способа установки объекта и источников освещения (рис. 1.2).
Рис. 1.2. После создания объекту придается цвет и освещение, накладываются текстуры, а затем он визуализируется под любым углом
В программах трехмерного моделирования созданный объект не только перерисовывается под любым углом: его изображение создается с учетом цвета, текстуры и освещения, выбранного пользователем при формировании модели. Благодаря всем этим преимуществам неудивительно, что художники редко возвращаются к традиционному искусству после знакомства с трехмерным пространством.
Хотя двух- и трехмерное моделирование кардинально отличаются друг от друга, многие из уже знакомых пользователю двухмерных инструментов для рисования также реализованы и в программах по работе с трехмерной графикой. В них доступны такие инструментальные средства, как ручной карандаш, перо Безье, окружности, дуги, ломаные линии, многоугольники, лассо и другие инструменты, работающие аналогично их двухмерным "коллегам". Инструментарий программ трехмерного моделирования отличается тем, что он применяется не для создания завершенной формы в двухмерной

21 среде, а используется в качестве исходной точки для формирования трехмерного объекта. Наиболее часто используемые трехмерные формы, полученные из двухмерных объектов, — это объекты, созданные с помощью таких операций, как лофтинг, развертка, вращение и выдавливание, однако на данный момент важно запомнить, что такие объекты существенно зависят от двухмерных методов рисования.
Еще одно сходство между программным обеспечением двухмерного и трехмерного моделирования — это концепция слоев. Трехмерные слои (layers) представляют собой подобие чистого ацетатного листа, на который можно наносить рисунки. Также существует возможность добавления элементов вверху или внизу первоначального слоя, для чего применяются дополнительные слои (или ацетатные листы) с двухмерными изображениями
(рис. 1.3).
Поскольку все слои располагаются отдельно друг от друга, внесенные в один уровень изменения никак не повлияют на остальные. На слой заднего плана можно размещать эталонные изображения и копировать их на передний слой подобно тому, как эскизы копируются на бумагу с помощью стекла и направленного освещения. Одно из основных преимуществ работы со слоями заключается в возможности их "включения" и "выключения" для уменьшения количества элементов на экране. Слой также можно "осветлить" (сделать полупрозрачным) для того, чтобы оставить его видимым, но менее бросающимся в глаза.
Хотя слои в программах трехмерного моделирования несколько отличаются от своих двухмерных собратьев, с их помощью можно скрывать или блокировать некоторые объекты для упрощения дальнейшего выделения и редактирования конкретного объекта.
Рис. 1.3. Программы двухмерного рисования позволяют создавать рисунки на слоях, подобных ацетатным листам. Затем пользователь может редактировать отдельные элементы, не путаясь в мешанине ненужных слоев
Как и в двухмерном пространстве, в программах трехмерного моделирования для определения совокупности объектов, которые можно обрабатывать как единое целое, используются группы (groups). Благодаря группированию пользователь получает возможность выбрать взаимосвязанную совокупность объектов, а затем временно объединить их в отдельный модуль.