Трехмерная графика. Другие виды компьютерной графики Что такое компьютерная графика и ее виды

На сегодняшний день домашний компьютер во многих случаях является не только средством для работы с офисными приложениями, но и мощным мультимедийным центром, с помощью которого можно создавать и обрабатывать фотографии, смотреть видеоролики и фильмы, слушать музыку или наслаждаться современными трехмерными видеоиграми.

Мощное развитие цифровых технологий, и в частности цифровой фототехники, превратили современные домашние компьютеры в настоящие фотоархивы, а редактирование всевозможных изображений теперь является одним из самых любимых занятий многих пользователей.

Но как обидно бывает, когда вы пытаетесь открыть на компьютере графический файл, а он не открывается? Наверняка многие из вас уже сталкивались с подобной ситуацией. Так в чем же причина?

Конечно, цифровой фотографией или иллюстрациями на сайтах не исчерпывается весь мир компьютерной графики, которую в общем можно разбить на три большие группы - растровая графика , векторная графика и трехмерная графика . При этом изображения одного типа могут иметь разный формат, который зависит от программ и способов, с помощью которых они были созданы. Давайте разбираться.

Это самый распространенный тип изображений, которые формируются с помощью отдельных точек, называемых пикселями , которые в итоге образуют матрицу фиксированного размера. Каждый пиксель имеет свои геометрические параметры и цветовой оттенок. Из-за крохотного размера точек, человеческий глаз не может различить их по отдельности и в большинстве случаев изображение сформированное таким способом нам кажется однородным. Но стоит только сильно увеличить картинку, как вы увидите, что она состоит из множества разноцветных прямоугольников. К растровой графике относится большинство изображений, которые встречаются нам во время работы на компьютере, включая и цифровые фотографии.

На увеличенном изображении зрачка справа видно, что картинка состоит из множества разноцветных квадратиков.

Основным параметром растровой картинки является ее физическое разрешение, определяющееся количеством точек (пикселей) размещающихся по горизонтали и вертикали. Например, разрешение 1920x1080 означает, что ширина изображения составляет 1920 пикселов, а высота - 1080. Учтите, что при одинаковом размере изображения его разрешение может быть разным, и чем оно выше, тем качественнее картинка. В общем, чем из большего количества точек будет состоять рисунок, тем оно будет реалистичнее.

Растровые изображения, как правило, хранятся в сжатом виде, которое происходит с помощью специальных программных алгоритмов. При этом само сжатие может быть двух видов: без потерь или с потерями. В первом случае картинку можно будет восстановить до оригинального состояния, то есть в котором она была до сжатия, а во втором, как вы понимаете, нет.

Наиболее распространенными форматами, обеспечивающими сжатие без потерь, являются BMP, PNG и GIF. В самом же широко используемом формате JPEG (JPG, JPE) используется сжатие с потерями. Еще один популярный формат TIFF имеет разные настройки сжатия, а вот RAW наиболее часто используется для хранения информации, получаемой с цифровых камер, без внесения в нее каких либо изменений. Практически все полупрофессиональные или профессиональные фотокамеры позволяют сохранять изображения именно в этом формате для последующей его обработки.

Программ, позволяющих создавать, редактировать и тем более просто просматривать растровые картинки великое множество. Но, наверное, самой популярной и профессиональной из них является графический редактор Adobe Photoshop (собственный формат PSD). Возможности этого инструмента воистину впечатляют и смогут удовлетворить потребности самых продвинутых пользователей. При этом Photoshop имеет в своем арсенале некоторые инструменты для работы с векторными и трехмерными изображениями, о которых мы поговорим ниже. Для тех же, кто не готов выкладывать почти тысячу долларов за данный продукт, можно попробовать в деле его облегченный вариант Photoshop Elements, стоимостью $100. Еще одним популярным продуктом в этой категории является редактор GIMP, который часто называют бесплатной альтернативой Photoshop, хотя сами разработчики с этим не согласны.

Впрочем, многим пользователям (особенно начинающим) для просмотра и редактирования растровых изображений хватит тех возможностей, которые предоставляют приложения, встроенные в систему Windows. К их услугам простенький редактор Paint и штатное средство для просмотра фотографий. В более продвинутых редакциях Windows для воспроизведения и каталогизации картинок можно использовать стильную оболочку Windows Media Center.

Для систематизации и упорядочивания коллекций, хранящихся на компьютере фотографий, рисунков и картинок, можно использовать бесплатное приложение Picasa или XnView, а так же более функциональный, но платный (чуть более 1000 рублей) графический редактор ACDSee. Хотя, как уже упоминалось, выбор программного обеспечения для работы с растровыми изображениями очень широк и недостатка, как в платных, так и бесплатных приложениях у пользователей нет.

Векторная графика

В этом случае рисунок состоит уже не из точек, а из различных геометрических объектов - простых фигур, линий, кривых и тех же точек. Большим плюсом такого построения изображений является их масштабируемость без потери качества. То есть если увеличить векторную картинку, она растянется и не распадется на отдельные пиксели, сохранив при этом плавность линий.

Одним из основных недостатков векторной графики является тот факт, что далеко не каждый объект может быть изображен с ее применением. Иногда для создания изображения подобного оригиналу может потребоваться огромное количество объектов различной сложности, что сильно увеличивает размер картинки и время ее отображения. Так же при особо малых разрешениях рисунка его масштабирование может осуществляться некорректно.

Векторная графика наиболее часто используется в простых изображениях, которые не нуждаются в фотореализме. Например, формат PDF использует модель именно этого типа графики.

С большой долей уверенности можно сказать, что самой знаменитой и популярной программой для работы с векторными изображениями является Corel Draw, а файлы, создаваемые с ее помощью, имеют собственный формат CDR. Хотя такие приложения как Adobe Illustrator (собственный формат AI, EPS), Xara Designer (собственный формат XAR), бесплатный Inkscape(собственный формат SVG) и другие имеют так же не малое количество поклонников.

Стоит отметить, что большинство популярных векторных редакторов не ограничиваются возможностями работы только в собственном (иногда закрытом) формате, а поддерживают огромное количество других, как векторных, так и растровых форматов изображений. Например, Corel Draw способен работать с более тридцатью самыми популярными форматами графических файлов.

Трехмерная графика (3 D )

Раздел компьютерной графики, предназначенный для отображения объемных объектов. По сути, трехмерное изображение является геометрической проекцией объемной модели на плоскость. Для его получения сначала происходит моделирование - создание математической 3D-модели сцены и объектов в ней, а затем визуализация (рендеринг) - построение проекции на основе выбранной физической модели.

Одним из основных призваний трехмерной графики является создание движения 3D-модели в пространстве, называемое анимацией, которая в наше время является неотъемлемой частью не только для современных компьютерных игр, но и телевидения, кинематографа, а так же научного и промышленного моделирования. Так же трехмерная графика широко применяется в архитектурной визуализации и печатной продукции.

Самыми популярными программами, используемыми для создания 3D графики и анимации, являются пакеты компании Autodesk: 3DS Max (собственный формат MAX) и Maya (собственный формат MA). Стоит отметить и универсальное комплексное приложение Maxon Cinema 4D (собственный формат C4D) с более простым интерфейсом, чем у продуктов Autodesk и поддержкой русского языка, что делает его особенно привлекательным для русскоязычной аудитории.

Процесс трехмерного моделирования, визуализации и анимации является очень ресурсоемкой задачей, так что если вы решите попробовать свои силы на этом поприще, придется раскошелиться на высокопроизводительный компьютер. Более того, и само программное обеспечение стоит очень недешево. Например, за 3DS MAX просят около 4000 евро. Хотя Autodesk пошла навстречу тем людям, которые не собираются извлекать коммерческую выгоду при использовании этой программы, выпустив для них бесплатную версию, которая становится доступна после регистрации на сайте компании.

Заключение

Наверное, было бы неправильно не сказать несколько слов о компьютерных ресурсах, которые требуются для комфортной работы с графикой. Если в основном вы планируете заниматься лишь просмотром изображений или осуществлять их простое редактирование, то для этих задач подойдет даже самый простой и маломощный ПК. А вот для работы с такими тяжеловесами, как Adobe Photoshop или Corel Draw понадобится достаточно мощный процессор и большой объем оперативной памяти (от 4 Гб). Но самой требовательной к системным ресурсам является трехмерная графика. Здесь для комфортной работы потребуется не только топовый процессор в сочетании с немалым объемом «оперативки» (8 Гб и более), но и мощная видеокарта, со своей собственной видеопамятью и графическим чипом. Недаром, самыми дорогими компьютерами считаются, те, которые ориентированы на любителей современных 3D-игр и людей профессионально работающих с 3D-графикой.

В заключении же хотелось бы сказать следующее. Не смотря на то, что компьютерная графика бывает разных типов, мы с вами, пользователи, видим на экране монитора именно растровую двухмерную картинку. Дело в том, что подавляющее большинство дисплеев, в силу их технологических особенностей, являются матрицей, состоящей из ячеек (пикселей), с помощью которых и формируется видимое изображение. Для вывода векторной графики на подобных устройствах используются программные или встроенные в видеокарту (аппаратные) преобразователи.

А вот трехмерная графика - это лишь плод нашего воображения. Ведь экран монитора может формировать только плоскую (2D) картинку, которая является лишь проекцией объемных объектов, пространство для которых мы придумываем сами. То же самое, касается и новомодных 3D-телевизоров или 3D-мониторов. На самом деле эти устройства показывают обычное двухмерное изображение, которое может быть построено особым способом, при просмотре которого через специальные очки, создается иллюзия объема.

Читатйте также:

За последний десяток лет графические карты, позже названные 3D-акселераторами ,
прошли немалый путь развития — от первых SVGA-ускорителей, о 3D вообще ничего
не знавших, и до самых современных игровых "монстров", берущих на себя
все функции, связанные с подготовкой и формированием трехмерного изображения,
которое производители именуют "кинематографическим". Естественно, с
каждым новым поколением видеокарт создатели добавляли им не только дополнительные
мегагерцы и мегабайты видеопамяти, но и множество самых разных функций и эффектов.
Давайте же посмотрим, чему , а главное, зачем научились акселераторы
последних лет, и что это дает нам, любителям трехмерных игр.

Но сначала нелишним будет выяснить, какие действия производит программа (или игра)
для того, чтобы получить в итоге трехмерную картинку на экране монитора. Набор
таких действий принято называть 3D-конвейером — каждый этап в конвейере
работает с результатами предыдущего (здесь и далее курсивом выделены термины,
которые более подробно освещены в нашем "Глоссарии 3D-графики" в конце
статьи).

На первом, подготовительном, этапе программа определяет, какие объекты (3D-модели, части трехмерного мира, спрайты и прочее), с какими текстурами и эффектами, в каких местах и в какой фазе анимации нужно отобразить на экране. Также выбираются положение и ориентация виртуальной камеры, через которую зритель смотрит на мир. Весь этот исходный материал, подлежащий дальнейшей обработке, называется 3D-сценой .

Далее наступает очередь собственно 3D-конвейера. Первым шагом в нем является тесселяция — процесс деления сложных поверхностей на треугольники. Следующие обязательные этапы — взаимосвязанные процессы трансформации координат точек или вершин , из которых состоят объекты, их освещения , а также отсечения невидимых участков сцены.

Рассмотрим трансформацию координат . У нас имеется трехмерный мир, в котором расположены разные трехмерные же объекты, а в итоге нужно получить двумерное плоское изображение этого мира на мониторе. Поэтому все объекты проходят несколько стадий преобразования в разные системы координат, называемых еще пространствами (spaces ). Вначале локальные, или модельные, координаты каждого объекта преобразовываются в глобальные , или мировые, координаты. То есть, используя информацию о расположении, ориентации, масштабе и текущем кадре анимации каждого объекта, программа получает уже набор треугольников в единой системе координат. Затем следует преобразование в систему координат камеры (camera space ), с помощью которой мы смотрим на моделируемый мир. После чего отсчет будет начинаться из фокуса этой камеры — по сути как бы "из глаз" наблюдателя. Теперь легче всего исключить из дальнейшей обработки целиком невидимые (отбраковка, или culling ) и "обрезать" частично видимые (отсечение, или clipping ) для наблюдателя фрагменты сцены.

Параллельно производится освещение (lighting ). По информации о расположении, цвете, типе и силе всех размещенных в сцене источников света рассчитывается степень освещенности и цвет каждой вершины треугольника. Эти данные будут использованы позже при растеризации . В самом конце, после коррекции перспективы, координаты трансформируются еще раз, теперь уже в экранное пространство (screen space ).

На этом заканчивается трехмерная векторная обработка изображения и наступает очередь двумерной, т. е. текстурирования и растеризации . Сцена теперь представляет собой псевдотрехмерные треугольники, лежащие в плоскости экрана, но еще с информацией о глубине относительно плоскости экрана каждой из вершин. Растеризатор вычисляет цвет всех пикселов, составляющих треугольник, и заносит его в кадровый буфер . Для этого на треугольники накладываются текстуры, часто в несколько слоев (основная текстура, текстура освещения, детальная текстура и т. д.) и с различными режимами модуляции . Также производится окончательный расчет освещения с использованием какой-либо модели затенения , теперь уже для каждого пиксела изображения. На этом же этапе выполняется окончательное удаление невидимых участков сцены. Ведь треугольники могут располагаться на разном расстоянии от наблюдателя, перекрывать друг друга полностью или частично, а то и пересекаться. Сейчас повсеместно применяется алгоритм с использованием Z-буфера . Результирующие пикселы заносятся в Z-буфер, и как только все изображение будет готово, его можно отображать на экране и начинать строить следующее.

Теперь, когда нам понятно устройство 3D-конвейера в общем виде, давайте взглянем
на архитектурные различия разных поколений 3D-ускорителей. Каждая стадия 3D-конвейера
очень ресурсоемка, требует миллионов и миллиардов операций для получения одного
кадра изображения, причем двумерные этапы текстурирования и растеризации гораздо
"прожорливее" геометрической обработки на ранних, векторных, стадиях
конвейера. Так что перенос как можно большего количества стадий в "видеожелезо"
благотворно влияет на скорость обработки 3D-графики и значительно разгружает CPU.
Первое поколение ускорителей брало на свои плечи только последний этап — текстурирование
и растеризацию, все предыдущие шаги программа должна была просчитать сама с помощью
CPU. Рендеринг происходил куда быстрее, чем при полном отсутствии 3D-акселерации,
ведь видеокарта уже выполняла наиболее тяжелую часть работы. Но все же с увеличением
сложности сцен в 3D-играх программная трансформация и освещение становились узким
горлышком, препятствующим увеличению скорости. Поэтому в 3D-акселераторы начиная
с первых моделей NVidia GeForce и ATI Radeon был добавлен блок, именуемый T &L-блоком .
Как видно из названия, он отвечает за трансформацию и освещение ,
т. е. теперь и за начальные стадии 3D-конвейера. Его даже правильнее называть
TCL-блоком (Transformation Clipping Lighting ), поскольку
отсечение — тоже его задача. Таким образом, игра, использующая аппаратный T&L,
практически полностью освобождает центральный процессор от работы над графикой,
а значит, появляется возможность "нагрузить" его другими расчетами,
будь то физика или искусственный интеллект.

Казалось бы, все хорошо и чего еще желать? Но не стоит забывать, что любой перенос функций "в железо" означает отказ от гибкости, присущей программным решениям. И с появлением аппаратного T&L у программистов и дизайнеров, желающих реализовать какой-то необычный эффект, осталось лишь три варианта действий: они могли либо полностью отказаться от T&L и вернуться к медленным, но гибким программным алгоритмам, либо пытаться вмешиваться в этот процесс, выполняя постобработку изображения (что не всегда возможно и уж точно очень медленно)… либо ждать реализации нужной функции в следующем поколении видеокарт. Производителей аппаратуры такой расклад тоже не устраивал — ведь каждое дополнительное T&L-расширение приводит к усложнению графического чипа и "раздуванию" драйверов видеокарт.

Как мы видим, не хватало способа гибко, на "микроуровне", управлять видеокартой. И такая возможность была подсказана профессиональными пакетами для создания 3D-графики. Называется она шейдер (shader ). По сути, шейдер — это небольшая программа, состоящая из набора элементарных операций, часто применяющихся в 3D-графике. Программа, загружаемая в акселератор и непосредственно управляющая работой самого графического процессора. Если раньше программист был ограничен набором заранее определенных способов обработки и эффектов, то теперь он может составлять из простых инструкций любые программы, позволяющие реализовывать самые разные эффекты.

По своим функциям шейдеры делятся на две группы: вершинные (vertex shaders )
и пиксельные (pixel shaders ). Первые заменяют собой всю функциональность
T&L-блока видеокарты и, как видно из названия, работают с вершинами треугольников.
В последних моделях акселераторов этот блок фактически убран — его эмулирует
видеодрайвер с помощью вершинных шейдеров. Пиксельные же шейдеры предоставляют
гибкие возможности для программирования блока мультитекстурирования и работают
уже с отдельными пикселами экрана.

Шейдеры также характеризуются номером версии — каждая последующая добавляет к предыдущим все новые и новые возможности. Наиболее свежей спецификацией пиксельных и вершинных шейдеров на сегодняшний день является версия 2.0, поддерживаемая DirectX 9, — на нее и будут ориентироваться как производители акселераторов, так и разработчики новых игр. На их поддержку аппаратурой стоит обращать внимание и пользователям, желающим приобрести современную игровую видеокарту. Тем не менее экспансия игр, построенных на шейдерных технологиях, только начинается, так что и более старые вершинные шейдеры (1.1), и пиксельные (1.3 и 1.4) будут использоваться еще как минимум год, хотя бы для создания сравнительно простых эффектов — пока DirectX 9-совместимые акселераторы не получат большего распространения.

Первые шейдеры состояли всего из нескольких команд, и их нетрудно было написать на низкоуровневом языке ассемблера. Но с ростом сложности шейдерных эффектов, насчитывающих иногда десятки и сотни команд, возникла необходимость в более удобном, высокоуровневом языке написания шейдеров. Их появилось сразу два: NVidia Cg (C for graphics) и Microsoft HLSL (High Level Shading Language) — последний является частью стандарта DirectX 9. Достоинства и недостатки этих языков и прочие нюансы будут интересны только программистам, так что подробнее на них мы останавливаться не станем.

Теперь давайте посмотрим, что необходимо для того, чтобы получить все те возможности,
которые дает столь полезная технология, как шейдеры последнего поколения. А нужно
следующее:

  • самая свежая версия DirectX, на данный момент это DirectX 9.0b;
  • видеокарта с поддержкой DirectX 9;
  • самые свежие драйверы видеокарты (в более старых некоторые функции могут отсутствовать);
  • игра, использующая все эти возможности.

Тут же хотелось бы развеять вероятные заблуждения. Некоторые трактуют популярный ныне термин "DirectX 9-совместимая видеокарта" следующим образом: "такая видеокарта будет работать и раскрывать все свои возможности только под API DirectX 9", или же "DirectX 9 стоит устанавливать на компьютер только с такой видеокартой". Это не совсем верно. Подобное определение скорее означает: "данная видеокарта обладает возможностями, требуемыми от нее спецификацией DirectX 9".

Глоссарий 3D-графики

Имитация меха с помощью шейдеров

Набор библиотек, интерфейсов и соглашений для работы с 3D-графикой. Сейчас широко
используются два 3D API: открытый и кросс-платформенный OpenGL (Open Graphics
Library) и Microsoft Direct3D (он же DirectX Graphics), являющийся частью универсального
мультимедийного API DirectX.

3D-акселератор, или 3D-ускоритель (3D-accelerator)

Видеокарта, способная брать на себя обработку трехмерной графики, освобождая таким образом центральный процессор от этой рутинной работы.

3D-конвейер, или конвейер рендеринга (3D-pipeline, или rendering pipeline)

Многоступенчатый процесс преобразования внутренних данных программы в изображение на экране. Обычно включает как минимум трансформацию и освещение, текстурирование и растеризацию.

3D-сцена

Часть виртуального трехмерного мира, подлежащая рендерингу в данный момент времени.

Depth of Field (глубина резкости)

"Киноэффект", имитирующий глубину резкости (фокусное расстояние) реальной кинокамеры, при этом объекты, находящиеся в фокусе, имеют четкий вид, а остальные выглядят размытыми.

Displacement mapping (текстурирование картами смещения)

Метод моделирования мелких деталей рельефа. При его использовании специальной
текстурой — картой смещения — задается, насколько различные части поверхности
будут выпуклыми или вдавленными относительно базового треугольника, к которому
применяется этот эффект. В отличие от рельефного текстурирования этот метод является
"честным" и действительно изменяет геометрическую форму объекта. Пока
только некоторые новейшие 3D-акселераторы непосредственно поддерживают карты смещения.

MIP-mapping

Вспомогательный метод улучшения качества и повышения скорости текстурирования, заключающийся в создании нескольких вариантов текстуры с уменьшенным разрешением (например, 128 128, 64 64, 32 32 и т. д.), называемых MIP-уровнями. По мере удаления объекта будут выбираться все более "мелкие" варианты текстуры.

Motion-blur (он же временной антиалиасинг)

Довольно новая методика более реалистичной передачи движения за счет "смазывания" изображения объектов в направлении их перемещения. Зрители привыкли к данному эффекту, характерному для кино, поэтому без него картинка кажется неживой даже при высоких FPS. Реализуется motion-blur через многократную отрисовку объекта в кадр в разных фазах его движения или же "размазыванием" изображения уже на пиксельном уровне.

Z-буфер (Z-buffer)

Z-буферизация — один из методов удаления невидимых участков изображения. При
его использовании для каждого пиксела на экране в видеопамяти хранится расстояние
от этой точки до наблюдателя. Само расстояние называется глубиной сцены, а этот
участок памяти — Z-буфером. При выводе очередного пиксела на экран его глубина
сравнивается с сохраненной в Z-буфере глубиной предыдущего пиксела с такими же
координатами, и если она больше, то текущий пиксел не рисуется — он будет невидимым.
Если же меньше, то его цвет заносится в буфер кадра (frame buffer), а новая глубина
— в Z-буфер. Таким образом гарантируется перекрывание дальних объектов более
близкими.

Альфа-канал (alpha channel) и альфа-смешивание (alpha-blending).

В текстуре наряду с информацией о цвете в RGB-формате для каждого пиксела, может храниться степень его прозрачности, называемая альфа-каналом. При рендеринге цвет нарисованных ранее пикселов будет с разной степенью "проступать" и смешиваться с цветом выводимого пиксела, что позволяет получить изображение с различным уровнем прозрачности. Это и называется альфа-смешиванием. Такой прием используется очень часто: для моделирования воды, стекла, тумана, дыма, огня и прочих полупрозрачных объектов.

Антиалиасинг (antialiasing)

Метод борьбы со "ступенчатым" эффектом и резкими границами полигонов, возникающими из-за недостаточного разрешения изображения. Чаще всего реализуется путем рендеринга изображения в разрешении, гораздо большем установленного, с последующей интерполяцией в нужное. Поэтому антиалиасинг до сих пор очень требователен к объему видеопамяти и скорости 3D-акселератора.

Детальные текстуры (detail textures)

Прием, позволяющий избежать расплывания текстур на близком расстоянии от объекта
и добиться эффекта мелкого рельефа поверхности без чрезмерного увеличения размера
текстур. Для этого используется основная текстура нормального размера, на которую
накладывается меньшая — с регулярным шумовым рисунком.

Кадровый буфер (frame buffer)

Участок видеопамяти, в котором производится работа по формированию изображения. Обычно используются два (реже три) буфера кадра: один (передний, или front-buffer) отображается на экране, а во второй (задний, или back-buffer) выполняется рендеринг. Как только очередной кадр изображения будет готов, они поменяются ролями: второй буфер будет показан на экране, а первый перерисован заново.

Карты освещенности (lightmap)

Простой и до сих пор часто применяющийся метод имитации освещения, заключающийся в наложении на основную текстуру еще одной — карты освещенности, светлые и темные места которой соответственно осветляют или затеняют изображение базовой. Карты освещенности рассчитываются заранее, еще на этапе создания 3D-мира, и хранятся на диске. Этот метод хорошо подходит для больших, статически освещенных поверхностей.

Карты среды (environment mapping)

Имитация отражающих поверхностей с помощью специальной текстуры — карты среды, представляющей собой изображение окружающего объект мира.

Мультитекстурирование (multitexturing)

Наложение нескольких текстур за один проход акселератора. Например, основной текстуры,
карты освещенности и карты с детальной текстурой. Современные видеокарты умеют
обрабатывать как минимум 3—4 текстуры за раз. Если мультитекстурирование не поддерживается
(или необходимо наложить больше слоев текстур, чем это может сделать акселератор
"в один прием"), то используется несколько проходов, что, естественно,
гораздо медленнее.

Освещение (lighting)

Процесс расчета цвета и степени освещенности пиксела каждого треугольника
в зависимости от расположенных рядом источников света с использованием одного
из методов затенения. Часто применяются следующие методы:

  • плоское затенение (flat shading). Треугольники имеют одинаковую освещенность по всей поверхности;
  • затенение Гуро (Gouraud shading). Информация об уровне освещенности и цвете, рассчитанная для отдельных вершин треугольника, просто интерполируется по поверхности всего треугольника;
  • затенение Фонга (Phong shading). Освещение рассчитывается индивидуально для каждого пиксела. Наиболее качественный метод.

Пиксел (pixel)

Отдельная точка на экране, минимальный элемент изображения. Характеризуется глубиной цвета в битах, определяющей максимально возможное количество цветов, и собственно значением цвета.

Пространство (space), или система координат

Некоторая часть трехмерного мира, в которой отсчет ведется от какого-то своего начала координат. Обязательно есть система мировых (world) координат, относительно начала которой измеряются положение и ориентация всех других объектов в 3D-мире, при этом у каждого из них есть своя система координат.

Процедурные текстуры

Текстуры, которые генерируются различными алгоритмами "на лету", а не рисуются художниками заранее. Процедурные текстуры могут быть как статическими (дерево, металл и др.), так и анимированными (вода, огонь, облака). Преимуществами процедурных текстур являются отсутствие повторяющегося рисунка и меньшие затраты видеопамяти для анимации. Но есть и недостаток — необходим расчет с использованием CPU или шейдеров.

Рельефное текстурирование (bump mapping)

Эффект придания поверхности шероховатостей рельефа с помощью дополнительной текстуры, называемой картой рельефа (bump map). Геометрия поверхности при этом не меняется, так что эффект хорошо различим только при наличии динамических источников света.

Рендеринг (rendering)

Процесс визуализации трехмерного изображения. Состоит из множества этапов, в совокупности называемых конвейером.

Тексел (texel)

Пиксел, но не экрана, а текстуры. Минимальный ее элемент.

Текстурирование, или наложение текстур (texturing, или texture mapping)

Самый распространенный метод реалистичного моделирования поверхностей — наложение на них текстур с изображением. При этом, конечно же, учитываются расстояние, перспектива, ориентация треугольника.

Текстура (texture)

Двумерное изображение — bitmap, "натягиваемое" на 3D-объект. С помощью текстур задаются самые различные параметры материала, из которого состоит объект: его рисунок (наиболее традиционное применение), степень освещенности разных его частей (карта освещенности, или lightmap), способность отражать свет (specular map) и рассеивать его (diffuse map), неровности (bump map) и др.

Тесселяция (tesselation)

Процесс деления сложных полигонов и кривых поверхностей, описанных математическими функциями, на приемлемые для 3D-акселератора треугольники. Шаг этот зачастую необязательный, скажем, 3D-модели в большинстве игр обычно и так уже состоят из треугольников. Но вот, например, закругленные стены в Quake III: Arena — пример объекта, для которого тесселяция необходима.

Точка, или вершина (vertex)

Точка в пространстве, заданная тремя координатами (x, y, z). Отдельные точки редко используются, но они являются основой для более сложных объектов: линий, треугольников, точечных спрайтов. Кроме самих координат, к точке могут "привязываться" другие данные: координаты текстуры, свойства освещения и тумана и т. д.

Трансформация

Общий термин для обозначения процесса многоступенчатого преобразования 3D-объектов в двумерное изображение на экране. Представляет собой перевод набора вершин из одной системы координат в другую.

Треугольник (triangle)

Практически вся трехмерная графика состоит из треугольников как самых простых и удобных для обработки примитивов — три точки всегда однозначно задают плоскость в пространстве, чего не скажешь о более сложных многоугольниках. Все другие многоугольники и криволинейные поверхности разбиваются на треугольники (по сути — плоские участки), котрые затем используются для вычисления освещенности и наложения текстур. Процесс этот называется тесселяцией.

Фильтрация текстур (texture filtering)

Метод улучшения качества текстурирования при изменении расстояния до наблюдателя. Простейший метод — билинейная (bilinear) фильтрация — использует усредненное значение цвета четырех смежных текселов текстуры. Более сложный — трилинейная (trilinear) фильтрация — задействует также информацию из MIP-уровней. Самый современный и качественный (а заодно и самый медленный) метод — анизотропная (anisotropic) фильтрация, который подсчитывает результирующее значение, применяя целый набор (обычно от 8 до 32) текселов, расположенных рядом.

Шейдер (шейдер)

Небольшая программа для графического процессора (GPU) акселератора, задающая
ему способ обработки трехмерной графики.

Некоторые возможности, реализуемые

С помощью шейдеров

  • Оптически точное (попиксельное) освещение и мягкие тени от всех объектов,
    произвольные модели освещения;
  • различные эффекты отражения и преломления лучей для моделирования
    воды, льда, стекла, витражей, подводных бликов и т. д.;
  • реалистичная рябь и волны на воде;
  • "кинематографические" эффекты Depth of Field (глубина
    резкости
    ) и Motion blur ;
  • качественная, детальная анимация скелетных моделей (состоящих из системы
    управляющих анимацией модели "косточек"), мимика;
  • так называемый "нефотореалистичный рендеринг" (Non-Photorealistic
    Rendering, NPR): имитация стилей рисования различных художников, эффект
    карандашного наброска или классической, рисованной 2D-анимации;
  • реалистичная имитация ткани, меха и волос;
  • процедурные текстуры (в том числе анимационные), не требующие затрат
    CPU и загрузки каждого кадра в видеопамять;
  • полноэкранные фильтры постобработки изображения: дымка, гало, капли
    дождя на стекле, шумовой эффект и т. д.;
  • объемный рендеринг: более реалистичные дым и огонь;
  • многое другое.
Интересные ссылки

www.scene.org
Громадный архив творчества сотен "демомейкерских" групп и отдельных
мастеров демо-сцены за последние годы. Для тех, кто не знаком с этим явлением,
поясним: "demo" в данном случае называется программа, генерирующая
в реальном времени небольшой (обычно 5—10 минут) ролик с графикой, звуком
и музыкой. Демо последних лет активно используют самые свежие технические
наработки и, конечно же, шейдеры.

www.nvidia.com/view.asp?PAGE=demo_catalog
Каталог "больших" технологических демок от NVidia.

www.nvidia.com/search.asp?keywords=Demo
Все технодемки NVidia, в том числе очень простые, состоящие из одного
эффекта.

www.cgshaders.org
Примеры шейдерных эффектов, написанных на языке Cg.

Урок "Компьютерная графика"

Компьютерная графика - раздел информатики, пред метом которого является создание и обработка на компьютере с гра­фических изображений (рисунков, чертежей, фотографий и пр.)

История компьютерной графики

О компьютерной графике заговорили после опытов Джей У. Форрестера (инженер компьютерной лаборатории Массачусетского технологического института) в 1951 году.

К предшественникам компьютерных рисунков можно отнести первые не­затейливые картинки из точек и букв, получаемые на телетайпах телеграфа, а позже - на печатающих устройствах, подключенных к ЭВМ.

Итак, в начале были точки и простые линии. Этот набор стремительно обогащался. 1970-е годы стали временем широкого использования машинной графики. Одно из важнейших отличий современных ПК состоит в воз­можности вывода на экран графического изображения.

В доступный для многих инструмент компьютерная графика превратилась благодаря Айвену Сазерленду, автору одной из первых графических систем.

Направления компьютерной графики

Направление

Назначение

Программное обеспечение

Научная

Визуализация объектов научных исследований, графическая обработка результатов расчетов, проведение вычислительных экспериментов с наглядным представлением их результатов.

Деловая

Создание иллюстраций, используемых составления иллюстрации статистических отчетов и пр.

Используется в работе учреждений.

Электронные таблицы

Конструкторская

Создание плоских и трехмерных изображений.

Используется в работе инженеров-конструкторов.

Системы автоматизированного проектирования (САПР)

Иллюстративная

Создание произвольных рисунков и чертежей.

Графические редакторы

Создание реалистических изображений. Используется для создания рекламных роликов, мультфильмов, компьютерных игр, видеоуроков, видеопрезентаций и пр.

Графические редакторы (со сложным математическим аппаратом)

Компьютерная анимация

Создание движущихся изображений на экране монитора. Слово «анимация» означает «оживление».

Аналоговый и дискретный способы представления

ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ

Человек способен воспринимать и хранить информацию в форме образов (зрительных, звуковых, осязательных, вкусовых, обонятельных ).

Зрительные образы могут быть сохранены в виде изображений (рисунков, фотографий, …)

При аналоговом представлении физическая величина принимает бесконечное множество значений, причем ее значения изменяются непрерывно .

При дискретном представлении физическая величина принимает конечное множество значений, причем ее величина изменяется скачкообразно .

Все органы чувств человека имеют дело с аналоговыми сигналами.

Любая информация, используемая в технических системах, также начинается и заканчивается аналоговым сигналом.

Таким образом, представление об аналоговом способе следует рассматривать в качестве необходимой предпосылки перехода к цифровым технологиям.

Растровая графика

Качество кодирования изображения зависит от :

Размера точки - чем меньше её размер, тем больше количество точек в изображении

- количества цветов (палитры) - чем большее количество возможных состояний точки, тем качественнее изображение

Достоинства растровой графики:

1. Каждому видеопикселю можно придать любой из миллионов цветовых оттенков. Если размеры пикселей приближаются к размерам видеопикселей, то растровое изображение выглядит не хуже фотографии. Таким образом, растровая графика эффективно представляет изображения фотографического качества.

2. Компьютер легко управляет устройствами вывода, которые используют точки для представления отдельных пикселей. Поэтому растровые изображения могут быть легко распечатаны на принтере.

Недостатки растровой графики:

1. В файле растрового изображения запоминается информация о цвете каждого видеопикселя в виде комбинации битов. Простые растровые картинки занимают небольшой объем памяти (несколько десятков или сотен килобайтов). Изображения фотографического качества часто требуют нескольких мегабайтов. Таким образом, для хранения растровых изображений требуется большой объем памяти.

Самым простым решением проблемы хранения растровых изображений является увеличение емкости запоминающих устройств компьютера. Современные жесткие и оптические диски предоставляют значительные объемы памяти для данных. Оборотной стороной этого решения является стоимость, хотя цены на эти запоминающие устройства в последнее время заметно снижаются.

Другой способ решения проблемы заключается в сжатии графических файлов, т. е. использовании программ, уменьшающих размеры файлов растровой графики за счет изменения способа организации данных. Существует несколько методов сжатия графических данных.

2. Проблемой растровых файлов является масштабирование:

- при существенном увеличении изображения появляется зернистость, ступенчатость

При большом уменьшении существенно снижается количество точек, поэтому исчезают наиболее мелкие детали, происходит потеря четкости

Для обработки растровых файлов используют редакторы: MS Paint, Adobe Photoshop

Векторная графика

Векторные изображения формируются из объектов (точка, линия, окружность, прямоугольник...), которые хранятся в памяти компьютера в виде графических примитивов и описывающих их математических формул.

Достоинства векторной графики

1. При кодировании векторного изображения хранится не само изображение объекта, а координаты точек, используя которые программа каждый раз воссоздает изображение заново.

Поэтому объем памяти векторных изображений очень мал по сравнению с растровой графикой .

RECTANGLE 1, 1, 200, 200, Red, Green

Несжатое растровое описание квадрата требует примерно в 1333 раза большей памяти, чем векторное.

2. Векторные изображения могут быть легко масштабированы без потери качества.

Это возможно, так как масштабирование изображений производится с помощью простых математических операций (умножения параметров графических примитивов на коэффициент масштабирования).

Недостатки векторной графики

1. Векторная графика не предназначена для создания изображений фотографического качества. В векторном формате изображение всегда будет выглядеть, как рисунок.

В последних версиях векторных программ внедряется все больше элементов "живописности" (падающие тени, прозрачности и другие эффекты, ранее свойственные исключительно программам точечной графики).

2. Векторные изображения иногда не выводятся на печать или выглядят на бумаге не так, как хотелось бы.

Это происходит оттого, что векторные изображения описываются тысячами команд.

В процессе печати эти команды передаются принтеру, а он может, не распознав какой-либо примитив, заменить его другим – похожим, понятным принтеру.

Информация о векторном изображении кодируется как обычная буквенно-цифровая и обрабатывается специальными программами: CorelDRAW, Adobe Illustrator.

Фрактальная графика

Изображение строится по формуле. В памяти компьютера хранится не изображение, а только формула, с помощью которой можно получить бесконечное количество различных изображений.

Фракталы - это геометрические объекты с удивительными свойствами: любая часть фрактала содержит его уменьшенное изображение.

То есть, сколько фрактал не увеличивай, из любой его части на вас будет смотреть его уменьшенная копия.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Подобные документы

    Компьютерная графика как наука, предметом изучения которой является создание, хранение и обработка моделей и их изображений с помощью ЭВМ. Области применения графических редакторов: Adobe Photoshop и Illustrator, Corel Draw. Растровая и векторная графика.

    презентация , добавлен 17.01.2012

    Компьютерная графика как область информатики, занимающаяся проблемами получения различных изображений на компьютере. Области применения компьютерной графики. Двумерная графика: фрактальная, растровая и векторная. Особенности трёхмерной графики.

    реферат , добавлен 05.12.2010

    Представление графических данных. Растровая, векторная и фрактальная виды компьютерной графики. Цвет и цветовые модели: метод кодирования цветовой информации для ее воспроизведения на экране монитора. Основные программы для обработки растровой графики.

    реферат , добавлен 01.08.2010

    Механизм графического представления данных. Виды компьютерной графики: фрактальная, трехмерная, растровая, векторная. Разрешение экранного изображения, понятие линиатуры. Связь между параметрами изображения и размером файла. Динамический диапазон.

    реферат , добавлен 27.12.2012

    Сферы применения машинной графики. Виды компьютерной графики. Цветовое разрешение и цветовые модели. Программное обеспечение для создания, просмотра и обработки графической информации. Графические возможности текстовых процессоров, графические редакторы.

    контрольная работа , добавлен 07.06.2010

    Понятия компьютерной графики. Преимущества формата GIF. Отличительные особенности программы "Corel Draw". Команды главного меню Adobe Photoshop. Инструменты и их действия. Описание применения графического редактора Photoshop для обработки снимков.

    курсовая работа , добавлен 18.04.2015

    Компьютерная графика - область информатики, занимающаяся проблемами получения различных изображений. Виды компьютерной графики: растровая, векторная, фрактальная. Программы для создания компьютерной анимации, область применения, форматы хранения.

    Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

    Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

    Подобные документы

      Понятия компьютерной графики. Преимущества формата GIF. Отличительные особенности программы "Corel Draw". Команды главного меню Adobe Photoshop. Инструменты и их действия. Описание применения графического редактора Photoshop для обработки снимков.

      курсовая работа , добавлен 18.04.2015

      Понятие векторной и растровой графики, форматы растровых изображений TIF, JPG, GIF. Характеристика программ графики Adobe PhotoDeluxe, Paint Shop Pro, Adobe Photoshop, CorelDraw, AutoCAD. Создание приложений по расчету стоимости продукции с учетом скидки.

      курсовая работа , добавлен 08.12.2010

      Общие сведения о графических редакторах, понятия компьютерной растровой и векторной графики, форматов. Обзор и сравнительный анализ современных программ обработки и просмотра графических изображений: Paint, Corel Draw, Adobe Photoshop, MS PowerPoint.

      дипломная работа , добавлен 09.08.2010

      Технология компьютерной графики, форматы графических файлов. Общие сведения о компании и программных продуктах Adobe Systems Inc, элементы интерфейса. Краткое описание учебника Adobe Photoshop CS3, программное обеспечение, используемое для его создания.

      дипломная работа , добавлен 23.06.2010

      Импорт и копирование растровых образов в CorelDRAW. Преобразование объектов CorelDRAW в растровые образы. Эффекты растровых образов. Применение растровых цветовых масок.

      реферат , добавлен 21.12.2003

      Виды компьютерной графики. Photoshop – программа для создания и обработки растровой графики. Пакет программ для работы с векторной графикой CorelDraw. Обработка растровых изображений с использованием Photoshop. Этапы создания коллажа на тему "Музыка".

      курсовая работа , добавлен 27.12.2014

      Средства для работы с растровой графикой. Источники получения растровых изображений, их преимущества и недостатки. Растровые графические редакторы: Paint, Microsoft Picture-It, Adobe PhotoDeluxe, Paint Shop Pro, Microsoft PhotoDraw, Adobe Photoshop.

      презентация , добавлен 12.02.2014

      Понятие компьютерной графики. Основные характеристики цифровых фильтров, поддерживаемых программой Adobe Photoshop и принципы художественной обработки изображений на их основе. Принципы работы с многослойными изображениями в программе Photoshop.

      курсовая работа , добавлен 10.06.2014