Способ учета удаленности элемента изображения в компьютерной трехмерной графике
Z-буферизация — Данные в Z буфере Z буферизация в компьютерной трёхмерной графике способ учёта удалённости элемента изображения. Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если… … Википедия
Z-буфер — Данные в Z буфере Z буферизация в компьютерной трёхмерной графике, способ учёта удалённости элемента изображения. Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если… … Википедия
Буфер глубины — Данные в Z буфере Z буферизация в компьютерной трёхмерной графике, способ учёта удалённости элемента изображения. Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если… … Википедия
Океан-О (космический аппарат) — Океан О Общие данные Производитель … Википедия
РАСТРОВАЯ ГРАФИКА — (raster graphics), вид компьютерной графики (см. КОМПЬЮТЕРНАЯ ГРАФИКА), используемой в приложениях, в частности, для рисования, близкого по технике к традиционному процессу (на бумаге или холсте). Данные в памяти ЭВМ хранятся в виде «карты»… … Энциклопедический словарь
МЫШЬ — устройство ручного ввода, обеспечивающее значительные удобства оператору при внесении нужной информации в графических данных на экран (см.) и одновременно в процессор и по конструкции напоминающее наличием «хвостика» (кабеля, соединяющего с… … Большая политехническая энциклопедия
Доллар США — (US USD) Доллар США это денежная единица Соединенных Штатов Америки Доллар США : курс и номинал денежной единицы США, история и перспективы развития резервной валюты мира Содержание >>>>>>>>> … Энциклопедия инвестора
Truevision TGA — Расширение .tga, .tpic MIME image/x targa, image/x tga Разработан Truevision Тип формата растровая графика Truevision TGA (TGA) растровый графический формат. Первоначально был создан компанией Truevision Inc. для графических адаптеров… … Википедия
ГОСТ Р ИСО/МЭК 19762-2-2011: Информационные технологии. Технологии автоматической идентификации и сбора данных (АИСД). Гармонизированный словарь. Часть 2. Оптические носители данных (ОНД) — Терминология ГОСТ Р ИСО/МЭК 19762 2 2011: Информационные технологии. Технологии автоматической идентификации и сбора данных (АИСД). Гармонизированный словарь. Часть 2. Оптические носители данных (ОНД) оригинал документа: 04.02.13 ( n, k)… … Словарь-справочник терминов нормативно-технической документации
Важнейшие открытия в физике — История технологий По периодам и регионам: Неолитическая революция Древние технологии Египта Наука и технологии древней Индии Наука и технологии древнего Китая Технологии Древней Греции Технологии Древнего Рима Технологии исламского мира… … Википедия
1971 год - Гольдштейн и Нагель впервые реализовали метод трассировки лучей с использованием логических операций для формирования трехмерных изображений.
Трассировка лучей — технология построения изображения трёхмерных моделей в компьютерных программах, при которых отслеживается обратная траектория распространения луча (от экрана к источнику).
1970 год - интенсивное развитие индустрии компьютерных игр, компьютерная графика начинает широко использоваться на телевидении и в киноиндустрии.
1974 год - Э.Кэтмул создает первые алгоритмы текстурирования криволинейных поверхностей.
Рельефное текстурирование — метод в компьютерной графике для придания более реалистичного и насыщенного вида поверхности объектов («эффект бугристой поверхности»).
Сфера без рельефной текстуры.
Сфера с наложенной рельефной текстурой
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кальдин Дмитрий Александрович, Мурашев Денис Аркадьевич, Клинаев Юрий Васильевич, Терин Денис Владимирович
Система высокоточного трехмерного моделирования резки для пятикоординатных фрезерных обрабатывающих центров
Современные виртуальные экскурсии и средства разработки виртуальных экскурсий в музейной деятельности
Интерактивные 3D-системы виртуальной реальности как одно из направлений развития дистанционных образовательных технологий в высшей школе
Текст научной работы на тему «Оптимизация алгоритмов компьютерного моделирования трехмерного физического пространства»
ФГБОУ ВПО «Саратовский государственный технический университет
Энгельсский технологический институт (филиал) ФГБОУ ВПО «Саратовский государственный технический университет имени Гагарина
Энгельсский технологический институт (филиал) ФГБОУ ВПО «Саратовский государственный технический университет имени Гагарина
Энгельсский технологический институт (филиал) ФГБОУ ВПО «Саратовский государственный технический университет имени Гагарина
Оптимизация алгоритмов компьютерного моделирования трехмерного физического пространства
В природе существует множество взаимосвязанных объектов, визуальное моделирование которых вместе с окружающим физическим пространством является одним из эффективных методов их изучения. Такие технологии моделирования основаны на реализации математического описания трёхмерных объектов в динамике их взаимодействия с помощью специальных программ, - так называемых «движков». Наибольшее развитие такие программы получили в игровых приложениях. Игровой движок — это центральный программный компонент интерактивных приложений с графикой, обрабатываемой в реальном времени [1]. Основной задачей движка является обеспечение полноценного функционирования моделируемого трёхмерного окружения.
Не затрагивая индустрию компьютерных игр, можно выделить следующие направления развития и применения алгоритмов виртуализации:
• моделирование физических процессов в сложных системах, близких
к окружающему пространству нашей или другой планетной системы;
• проведение экспериментов с людьми, но без их участия, например, в
медицинских целях; • тренировка навыков специализированного персонала, например, пожарных, врачей, военных и т.п., - разработка компьютерных тренажёров;
В настоящее время развитию данного направления компьютерного моделирования в нашей стране не уделяется должного внимания. Не за горами то время, когда виртуальные миры, виртуальная реальность окажутся достаточно правдоподобными и похожими на окружающий нас мир в силу технических возможностей.
Основной частью движка давно принято считать визуализатор, поскольку именно то, что мы видим и формирует у нас самое глубокое впечатление. Для отображения виртуальной трёхмерной среды на экране компьютера необходимо программно реализовать определённый алгоритм и формат представления данных о трёхмерной пространстве. О проблемах моделирования пространства
Геометрическое описание окружающей среды не является сложной задачей и в наипростейших случаях математическое моделирование пространственного расположения физических объектов сводится к описанию объектов трёхмерного пространства координатами их точек с той или иной точностью. Но настолько подробное описание, при всей его полезности и информативности, не может достаточно удобно обрабатываться. Одной из причин этого являются потребные значительные вычислительные мощности для обработки, хранения и обеспечения передачи координатной и иной информации (цвет, чёткость, яркость, контрастность и т.п.), в зависимости от качества компьютерной визуализации реального объекта и технических требований к приложению моделирования.
Чтобы обеспечить визуализацию моделей трёхмерного пространства в режиме реального времени необходимы различные ухищрения и допущения при разработке моделей в плане их упрощения, но без потери адекватности.
Рассмотрим наиболее распространённые из них.
Двоичное разбиение пространства (Binary Space Partition, BSP). BSP-дерево — это структура данных, используемая в трехмерной графике. В BSP-дереве каждый узел связан с разбивающей прямой или плоскостью в 2-мерном или 3-мерном пространстве соответственно. При этом все объекты, лежащие с фронтальной стороны плоскости относятся к фронтальному поддереву, а все объекты, лежащие с оборотной стороны плоскости относятся к оборотному поддереву [2]. Таким образом, мы не обрабатываем всю модель мира в каждом проходе алгоритма, а лишь только видимую её часть. Недостатком данного алгоритма принято считать необходимость замкнутости моделируемого пространства. Ниже проиллюстрировано дерево для двухмерного случая пространства.
Рис. 1. Данные в ВБР-дереве Z-буферизация — в компьютерной трёхмерной графике способ учёта удалённости элемента изображения. Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если реализуется аппаратно. Основной недостаток Z-буферизации состоит в потреблении большого объёма памяти: в работе используется так называемый буфер глубины или Z-буфер [2]. Наглядное представление хранимых данных отражено ниже.
Рис. 2. Данные в Z-буфере
Ray casting, Метод «бросания лучей» — один из методов рендеринга в компьютерной графике, при котором сцена строится на основе замеров пересечения лучей с визуализируемой поверхностью [3]. Обладая отличной скоростью, этот метод отличается крайне низкой точностью вычислений, что ограничивает его применение лишь для узкого круга локальных задач.
Для создания оптимальной и адекватной модели окружающего пространства необходимо чётко представлять аппаратные возможности современных компьютеров и тенденции их развития. Анализируя этапы развития вычислительной техники за последние два десятка лет [4], можно заключить, что приоритетными являются следующие преимущества:
• многопоточность вычислительных операций,
• высокая производительность вычислений на графических адаптерах,
• доступность больших объёмов, как оперативной, так и
энергонезависимой видов памяти.
Ориентируясь на эти особенности, можно с большей уверенностью заниматься разработкой новых и усовершенствованием уже существующих алгоритмов.
За базовую структуру хранения окружающего пространства примем двоичные деревья. Но чтобы обеспечить наибольшую производительность при большей насыщенности и точности объектов виртуального мира необходимо переопределить логическую модель ветвей и листьев «дерева».
Ориентируясь на многопоточность вычислений, следует хранить в них не просто координаты объектов, а более широкие структуры, группы объектов. Поскольку время является лимитирующим фактором, правильнее будет параллельно обработать несколько объектов, необязательно только нужных.
Имея в своём распоряжении достаточный объём оперативной памяти, можно интегрировать в двоичное дерево алгоритм z-буферизации, что уже используется в современных продуктах [5]. Но помимо параметра удалённости объектов, следует хранить информацию о важности и размере объекта. Например, на расстоянии 100 м от наблюдателя, десятиэтажное здание будет хорошо видно и его нужно видеть, а вот спичечный коробок на таком же расстоянии будет не заметен (или вовсе не нужен, если модель строится для изучения архитектуры). Не обрабатываемые бесполезные объекты освобождают ресурсы вычислительных систем для более детального моделирования нужных объектов или для увеличения числа моделей.
2 ■ BSP + многопоточность
3 ■ BSP + z-буферизация
5 ■ BSP + все оптимизации
Рис. 3. Диаграмма производительности Описанные оптимизации алгоритма двоичного разбиения пространства были реализованы и протестированы. Использовалось виртуальное пространство со среднестатистическим набором объектов больших и малых размеров. Тестирование проводилось на современной платформе на базе двухъядерного процессора производства фирмы Intel 2012 года. Анализ проводился по количеству кадров изображения просчитанных вычислительной системой за секунду. Взяты средние
значения по результатам 10 тестов. Результаты отражены в диаграмме.
Проведённые эксперименты говорят о том, что некоторые улучшения скорости обработки удаётся получить, прибегнув к комбинации алгоритмов и проведя их оптимизацию и расширение.
С другой стороны, одновременное использование всех оптимизаций не даёт результат равный сумме приростов производительности в каждом отдельном случае. Это объясняется перекрёстными издержками каждого метода (затраты времени на служебные операции), что и приводит к этой нелинейности.
Важно заметить и то, что не все алгоритмы успешно поддаются распараллеливанию.
Усиление влияния тех или иных оптимизаций, в зависимости от области применения и объектов моделирования, должно дать больший прирост производительности.
Развитие и совершенствование методов компьютерного моделирования, по мере совершенствования аппаратной базы вычислительных средств, является весьма перспективным направлением исследований в плане достижения в программных технологиях моделирования адекватности виртуальной реальности и окружающего нас мира.
4. Леонид Черняк Многоядерные процессоры и грядущая параллельная революция. - «Открытые системы» , № 04, 2007
І І этап. 1980-е годы.
Компьютерная графика развивается как прикладная дисциплина.
Разрабатываются методы ее применения в самых различных областях человеческой деятельности.
І І І этап. 1990-е годы.
Методы компьютерной графики становятся основным средством обеспечения диалога "человек-компьютер".
Синтез 3D-изображения выполняется путем аналитического расчета различных параметров изображения для создания визуальных эффектов, обеспечивающих ощущение его объемности и реальности. В частности, в процессе синтеза 3D-изображения выполняются:
оценка расстояния до предмета путем анализа информации о его размерах (чем меньше объект — тем он дальше);
оценка последовательности наложения предметов один на другой (кто выше — тот ближе);
определение глубины пространства за счет использования эффекта перспективы, т. е. визуального сближения параллельных линий, уходящих вдаль;
анализ световых эффектов на предмете (теней, бликов и т. п.).
Для получения этих эффектов процесс синтеза трехмерного изображения объекта в виде его двухмерной проекции на экране монитора строится по модели, называемой 3D-конвейером. Выделяют следующие основные этапы 3D-конвейера.
Построение геометрической модели поверхности объекта путем задания трехмерных координат его опорных точек и уравнений соеди няющих их линий. Полученная геометрическая модель представляет собой так называемую каркасную модель объекта (Wireframe).
Разбиение поверхности полученного объекта на элементарные плоские элементы (прямоугольники или треугольники) — тесселяция (Tessela-tiori), или триангуляция. Это приводит к тому, что поверхность объекта представляет собой совокупность плоских граней — многоугольников, в частности треугольников, как показано на рис. 4.17. Поверхность объекта воспроизводится точнее при увеличении числа и уменьшении размеров многоугольников (ср. рис. 4.17, а, б).
Рис. 4.17. Тесселяция объекта с помощью различного числа треугольников: а — 420 треугольников; б — 2668 треугольников
Моделирование движения объекта: его перемещение, вращение и изменение размеров (формы) — трансформация (transformation) — сводится к стандартному преобразованию координат вершин отдельных граней в виде многоугольников и реализуется путем выполнения множества различных алгебраических опера ций с использованием тригонометрических функций. На рис. 4.18 показана трансформация формы объекта путем изгиба и скручивания.
Расчет освещенности (Lighting) и затенения (Shading) объекта производится в два этапа. Сначала выполняется расчет освещенности каждого элементарного многоугольника с учетом его удаленности от источника света и угла падения светового луча. Чтобы поверхность объекта не выглядела состоящей из множества отдельных плоских граней, как это показано на рис. 4.19, а, применяют методы затенения, т.е. дополнительно производят интерполяцию значений освещенности, позволяющую плавно изменять освещенность каждой грани и скрыть резкие переходы между ними (рис. 4.19, б).
Рис. 4.18. Трансформация формы объекта путем изгиба и скручивания
Проецирование синтезированного трехмерного объекта на плоскостьэкрана, т.е. первое, предварительное преобразование трехмерного объекта в совокупность двухмерных.
Рис. 4.19. Изображение объекта, рассчитанное: а — без использования механизма интерполяции; б — с использованием метода затенения
При этом в Z-буфере сохраняется совокупность данных о расстоянии каждой из вершин элементарного многоугольника, образующего грани, до плоскости проецирования. Это позволяет в дальнейшем определить, какие части объекта окажутся видимыми, а какие — нет. Наличие Z-буфера — важнейшее отличие работы с трехмерной графикой от работы с двухмерной.
Обработка данных о вершинах элементарных многоугольников, полученных на предыдущих этапах (Triangle Setup), заключающаяся в преобразовании формы представления координат вершин: из чисел с плавающей точкой (вещественных чисел) в целые числа, а также в сортировке вершин и других действиях.
Удаление скрытых поверхностей — HSR (Hidden Surface Removal), т. е. исключение из проецирования тех элементов поверхности объекта, которые оказываются невидимыми с точки наблюдения.
Закраска элементарных треугольников, или текстурирование, выполняется наложением текстур (Texture Mapping). Текстура (Texture) — это элемент обшивки объекта, т.е. изображение участка его поверхности, которое хранится в виде квадратной растровой картинки, состоящей из текселов (Texel — Texture Element —элемент текстуры). После наложения текстуры (рис. 4.20, а) каркасная модель как бы покрывается своеобразным покрытием —текстурой и становится похожей на реальный объект (рис. 4.20, б). В процессе текстурирования каждый многоугольник, составлявший каркасную модель, заменяется на элемент текстуры, а значение каждого пиксела двухмерного изображения вычисляется по значению соответствующего тексела текстуры.
При текстурировании производится обработка растровой графики, что приводит к необходимости применять различные приемы коррекции изображения, например применение текстур с различным разрешением — м и п м э п п и н г.
Рис. 4.20. Текстурирование объекта: а — текстура; б — каркасная модель после наложения текстуры
MIP-текстурирование, или мипмэппинг (MIP— Multum In Parvo — много в одном), применяется для устранения пикселизации при приближении к SD-объекту. MIP-текстурирование заключается в том, что в памяти акселератора хранятся несколько копий одной и той же текстуры, но с различным разрешением LOD (Level Of Detalization — уровень детализации). Каждая последующая копия текстуры содержит в четыре раза больше пикселов, чем предыдущая. Совокупность всех копий одной и той же текстуры называют MIP-каскадом, пример которого дан на рис. 4.19.
Рис. 4.21. Пример МIР-каскада
В процессе «прорисовки» ближних к наблюдателю поверхностей используются более крупные текстуры, а при прорисовке дальних — более мелкие. Применение мипмэппинга требует значительных объемов памяти акселератора. Для хранения текстуры не в локальной памяти 3D-акселератора, а в RAM PC и при необходимости быстро их подгружать используется локальная шина AGP с высокой пропускной способностью.
9. Моделирование эффектов прозрачности и полупрозрачности заключается в том, что на основе информации о взаимной прозрачности объектов и среды выполняется коррекция цвета пикселов — так называемое альфа-смешение (Alpha-blending) и затуманивание (Fogging).
10. Коррекция дефектов изображения путем сглаживания — антиалиасинг (Anti-aliasing). Антиалиасинг применяется для устранения дефектов изображения типа «лестничного» эффекта на наклонных линиях, муара. Различают краевой (Edge Anti-aliasing) иполный (Full-screen Anti-aliasing— FSAA) антиалиасинг. В первых моделях игровых ускорителей использовался только краевой антиалиасинг, для современных 3D -акселераторов обязательным является полный антиалиасинг.
Краевой антиалиасинг заключается в усреднении цвета пикселов на краях (ребрах) грани на основе взвешенного суммирования цветов прилегающих граней. Техника взвешенного суммирования заключается в определении весовых коэффициентов, с которыми суммируются цвета при определении цвета краевого пиксела. При этом полагают, что каждая точка (линия) на краю грани имеет фиксированную, ненулевую площадь, а значения весовых коэффициентов зависят от того, какую часть этой площади перекрывают прилегающие грани.
Полный антиалиасинг, или субпикселный антиалиасинг, используется для полного устранения всех дефектов. Суть данного метода в том, что коррекция дефектов выполняется с так называемым виртуальным разрешением, которое выше исходного. При этом каждый пиксел представляется состоящим из нескольких виртуальных субпикселов, над которыми производится антиалиасинг, как показано на рис. 4.22. После коррекции, когда цвета всех субпикселов определены, исходное разрешение восстанавливается.
Интерполяция недостающих цветов — (Dithering) используется в том случае, когда в текущем видеорежиме 3D-акселератора для кодирования цвета пиксела используется менее 24 бит (например, в режиме High Color при 16-бит ном цвете).
Окончательное формирование кадрового буфера (Frame Buffer) — области памяти 3D -акселератора, в которую помешается спроецированное двухмерное изображение. Кадровый буфер используется для формирования выходного, аналогового видеосигнала 3D -ускорителя.
Рис. 4.22. «Виртуальное разрешение» при выполнении полного антиалиасинга
Для ускорения процесса создания изображения используется механизм двойной буферизации, при котором выделяется память одновременно для двух смежных кадров: построение следующего кадра начинается еще до того, как закончится отображение предыдущего. В результате обеспечивается более плавная смена кадров.
13. Постобработка (Post-processing) применяется в том случае, когда требуется реализовать какие-либо двухмерные эффекты над подготовленным кадром как единым целым.
Этапы 1 — 6 3D -конвейера образуют его геометрическую стадию, на которой выполняются интенсивные тригонометрические вычисления с помощью CPU. Однако существует тенденция обеспечения современных игровых 3D -акселераторов специальным процессором, обеспечивающим аппаратное ускорение выполнения геометрической стадии 3D -конвейера.
Программным интерфейсом для 3D -акселераторов служит так называемый интерфейс прикладного программирования (Appli-cation Program Interface — API). API занимает промежуточное положение между высокоуровневыми прикладными программами и низкоуровневыми командами различных 3D-акселераторов и обеспечивает эффективное преобразование запросов прикладной программы в оптимизированную последовательность низкоуровневых команд. Благодаря API, разработчики прикладных программ избавлены от необходимости работать с низкоуровневыми командами акселератора.
В настоящее время существуют несколько платформ API, отличающихся областями применения.
DirectX разработана фирмой Microsoft, используется в игровых приложениях, работающих под управлением операционной системы Windows 95/98, и включает в себя несколько узконаправленных API:
DirectDraw обеспечивает использование аппаратных средств ускорения обычной, двухмерной графики;
Direct3D отвечает за работу графической системы в режиме создания трехмерных изображений;
DirectInput обеспечивает аппаратно независимый ввод информации в ПК через клавиатуру, мышь и джойстик;
DirectPlay используется при совместной игре на нескольких компьютерах, объединенных в сеть или соединенных непосредственно, через параллельный или последовательный порты;
DirectSound управляет использованием ресурсов звуковой системы ПК.
В архитектуре Direct3D заложен принцип проверки функциональных возможностей установленного аппаратного обеспечения. В соответствии с этим принципом прикладная программа сначала запрашивает Direct3D-coвместимый драйвер об аппаратно поддерживаемых данным акселератором 3D-функциях, а затем в зависимости от ответа активизирует поддерживаемые функции. Это избавляет от необходимости производить ручную настройку.
DirectX является жестко регламентированным, закрытым стандартом, который не допускает изменений до выхода в свет своей новой версии.
Open GL используется в основном в профессиональных приложениях (CAD, системы трехмерного моделирования, симуляторы и т.п.), работающих под управлением операционной системы Windows NT. Вместе с тем существуют и игры, ориентированные на OpenGL, например Quake.
API OpenGL построен на основе концепции открытого стандарта, имеющего небольшой базовый набор функций и множество расширений, реализующих более сложные функции. Производитель Chipset карты 3D -акселератора обязан создать BIOS и драйверы, выполняющие базовые функции OpenGL, но не обязан обеспечивать поддержку всех расширений. В результате возникают проблемы, связанные с написанием производителями драйверов для своих изделий, которые поставляются как в полном, так и в усеченном виде.
К числу OpenGL-совместимых драйверов относятся следующие:
ICD (Installable Client Driver — драйвер приложения-клиента) обеспечивает максимальное быстродействие, поскольку содержит низкоуровневые коды, обеспечивающие поддержку не только базового набора функций, но и его расширений.
MCD (Mini Client Driver) содержит оптимизированный код лишь для некоторых этапов 3D -конвейера, поэтому акселератор под его управлением работает медленнее.
Мини-порт — группа специализированных OpenGL-совместимых драйверов, каждый из которых специально разработан для работы с какой-либо одной программой или игрой. Такой мини-порт применяется, когда, например, возникает необходимость поиграть в QuakeGL или Quake II на ПК с Windows 95 и 3D-акселератором, не рассчитанным на использование OpenGL.
Раппер (Wrapper — устройство для оборачивания, завертывания, окутывания) — мини-порт, который может работать как ICD за счет перевода инструкций OpenGL в инструкции Direct3D, обеспечивая при этом самую низкую скорость работы по сравнению с драйверами других типов.
Game Engine — «игровой движок» — драйвер, разработанный для конкретной 3D-платы и обеспечивающий максимальную производительность за счет непосредственного использования низкоуровневых команд акселератора, без использования API.
Принципиальным отличием API OpenGL от DirectX является то, что OpenGL ориентирован на корректность создаваемых изображений, тогда как для DirectX важны скорость прорисовки и естественность изображения.
Кроме того, существуют Native API, создаваемые производителями 3D -акселераторов исключительно для своих Chipset с целью наиболее эффективного использования их возможностей.
Для настройки видеосистемы с целью обеспечения максимальной производительности при работе с трехмерной графикой пользователь ПК должен:
при выборе 3D -платы четко представить область ее будущего применения: игры или решение профессиональных задач;
установить в систему требуемый API;
проконтролировать настройку параметров драйвера и/или прикладной программы, задействовав необходимые функции 3D-aкселерации;
используя тесты и оценивая качество изображения визуально, подобрать набор функций, обеспечивающих наилучшее качество изображения.
При работе с программами, ориентированными на DirectX, пользователь не выполняет перечисленные выше настройки, поскольку они производятся автоматически.
Потребности работы с трехмерными изображениями или ЗD-графикой (3Dimensions — 3 измерения), имеются в широком спектре приложений — от игр до систем автоматического проектирования, используемых в архитектуре, машиностроении и других областях. Конечно же, компьютер оперирует не самими трехмерными объектами, а их математическими описаниями. Трехмерное приложение оперирует объектами, описанными в некоторой системе координат. Чаще всего здесь используется ортогональная, она же декартова, система координат, в которой положение каждой точки задается ее расстоянием от начала координат по трем взаимно перпендикулярным осям X, Y и Z. В некоторых случаях используется и сферическая система координат, в которой положение точки задается удалением от центра и двумя углами направления. Большинство устройств визуализации, имеет лишь плоский (двумерный) экран, с помощью которого необходимо создать иллюзию трехмерного изображения.
Графический конвейер (Graphic Pipeline) — это некоторое программно-аппаратное средство, которое преобразует действительное описание объектов в матрицу ячеек видеопамяти растрового дисплея. Его задача — создать иллюзию этого изображения.
Взаимное расположение объектов относительно друг друга и их видимость зафиксированным наблюдателем обрабатывается на первой стадии графического конвейера, называемой трансформацией (Transformation). На этой стадии выполняются вращения, перемещения и масштабирование объектов, а затем и преобразование из глобального пространства в пространство наблюдения (world-to-viewspace transform), а из него и преобразование в «окно» наблюдения (viewspace-to-window transform), включая и проецирование с учетом перспективы. При преобразовании из глобального пространства в пространство наблюдения (до него или после) выполняется удаление невидимых поверхностей, что значительно сокращает объем информации, участвующей в дальнейшей обработке.
На следующей стадии конвейера (Lighting) определяется освещенность (и цвет) каждой точки проекции объектов, обусловленной установленными источниками освещения и свойствами поверхностей объектов.
На стадии растеризации (Rasterization) формируется растровый образ в видеопамяти. На этой стадии на изображения поверхностей наносятся текстуры и выполняется интерполяция интенсивности цвета точек, улучшающая восприятие сформированного изображения.
Весь процесс создания растрового изображения трехмерных объектов называется рендерингом (rendering). Рендеринг модели может производиться только поэлементно. Результатом создания объемов является набор многоугольников (обычно четырехугольников или треугольников, с которыми манипулировать проще), аппроксимирующих поверхности объектов. Плоское растровое представление должно формироваться с учетом взаимного расположения элементов (их поверхностей) — те из них, что ближе к наблюдателю, естественно, будут перекрывать изображение более удаленных элементов. Многоугольники, оставшиеся после удаления невидимых поверхностей, сортируются по глубине: реалистичную картину удобнее получать, начиная обработку с наиболее удаленных элементов. Для учета взаимного расположения применяют так называемый Z-буфер, названный по имени координаты третьего измерения. Этот буфер представляет собой матрицу ячеек памяти, каждая из которых соответствует ячейке видеопамяти, хранящей цвет одного пиксела. В процессе рендеринга для очередного элемента формируется его растровое изображение (bitmap) и для каждого пиксела этого фрагмента вычисляется параметр глубины Z (координатой его можно назвать лишь условно). В видеопамять этот фрагмент поступает с учетом результата попикселного сравнения информации из Z-буфера, с его собственными значениями. Если глубина Z данного пиксела фрагмента оказывается меньше величины Z той ячейки видеопамяти, куда должен попасть этот фрагмент, это означает, что выводимый элемент оказался ближе к наблюдателю, чем ранее обработанные, отображение которых уже находится в видеопамяти. В этом случае выполняется изменение пиксела видеопамяти, а в ячейку Z-буфера видеопамяти помещается новая величина, взятая от данного фрагмента. Если же результат сравнения иной, то текущий пиксел фрагмента оказывается перекрытым прежде сформированными элементами, и его параметр глубины в Z-буфер не попадет. Z-буфер позволяет определить взаимное расположение текущего и ранее сформированного пиксела, которое учитывается при формировании нового значения пиксела в видеопамяти. От разрядности Z-буфера зависит разрешающая способность графического конвейера по глубине.
В последнее время стали использовать и трехмерные текстуры (3D textures) — трехмерные массивы пикселов. Они позволяют, например, имитировать объемный туман, динамические источники света (языки пламени).
Реализация рендеринга требует значительного объема вычислений и оперирования с большими объемами информации, причем конечная цель потока обработанных данных — видеопамять графического адаптера. Решением проблемы вывода трехмерной графики, как и раньше, явилось усиление «интеллекта» графической карты — появились ЗD-акселераторы, реализующие значительную часть графического конвейера. На долю центрального процессора обычно выпадает начало конвейера, а его окончание (растеризация) выполняется акселератором графической карты.
Как ни странно, основным двигателем прогресса ЗD-технологий являются игры — именно любители компьютерных игр являются главными (самыми массовыми) потребителями ЗD-акселераторов. Более «серьезные» применения движущейся трехмерной графики — различные тренажеры-имитаторы полетов и езды — по сути тоже являются играми, только для серьезных людей. Трехмерная анимация, применяемая в современном телевидении и кинематографии, пока что реализуется не на массовых персональных компьютерах, а на более мощных рабочих станциях, но и там используются практически все вышеописанные элементы технологии.
Технологии построений, выполняемых ЗD-акселераторами, постоянно совершенствуются, и описать все применяемые приемы просто невозможно. Все новшества нацелены на достижение фотореалистических изображений игровых сцен с большой скоростью смены кадров (до 100 кадров/с), на экранах с большим разрешением (до 2048 х 1536) и в полноцветном режиме (True Color, 32 бита на пиксел). Конечно же, эти цели достигаются не ускорением расчетов для каждого элемента модели, а разными приемами вроде текстур.
1978 год - Сайрус и Бэк развивают алгоритмы клиппирования (отсечения) линий.
1979 год - Кэй и Гринберг впервые реализуют изображение полупрозрачной поверхности.
1980 год - разрабатываются общие принципы трассировки лучей, включающие отражение, преломление, затенение и методы антиэлайзинга.
1980-е гг. - появляется целый ряд компаний, занимающихся прикладными разработками в области компьютерной графики. В 1982 г. Дж.Кларк создает Silicon Graphics, тогда же возникает Ray Tracing Corporation, Adobe System, в 1986 г. компания Pixar отделяется от Lukasfilm.
1990-е гг. - в связи с возникновением сети Internet у компьютерной графики появляется еще одна сфера приложения.
5. Этапы развития компьютерной графики.
І этап. 1960-1970-е годы.
Компьютерная графика формировалась как научная дисциплина.
В это время разрабатывались основные методы и алгоритмы: отсечение, растровая развертка графических примитивов, закраска узорами, реалистическое изображение пространственных сцен (удаление невидимых линий и граней, трассировка лучей, излучающие поверхности), моделирование освещенности и т.д.
1975 год - появляется метод закрашивания Фонга.
1977 год - Дж.Блин предлагает алгоритмы реалистического изображения шероховатых поверхностей (микрорельефов).
1977 год - Ф.Кроу разрабатывает методы устранения ступенчатого эффекта при изображении контуров (антиэлайзинг).
1977 год - Дж.Брезенхем создает эффективные алгоритмы построения растровых образов отрезков, окружностей и эллипсов.
1978 год – развитие метода Z-буфера.
Читайте также: