Трехмерная графика что это

Что такое 3D-графика и как она устроена

Мы каждый день видим 3D-графику, но не задумываемся, как она устроена изнутри. Давайте заглянем за ширму.

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Современные компьютеры генерируют графику, которая почти неотличима от того, как видим жизнь мы. И если вам всегда было интересно, как создаются реалистичные шедевры (или вы занимаетесь чем-то похожим), то будет полезно узнать, как вообще работает 3D.

Давайте разберёмся, как обычные точки превращаются в 3D-графику:

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Создание 3D-моделей

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Кажется, что это просто гладкий шар, но на самом деле он состоит из множества точек — вершин (англ. vertices — вершины):

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Вершины соединяются друг с другом и образуют рёбра (англ. edge) и грани (англ. face):

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Всё это образует полигональную сетку (англ. polygon mesh или просто меш, геометрия) —- совокупность вершин, рёбер и граней (плоскостей), которая определяет форму объекта.

У каждой вершины есть свои координаты по осям X, Y и Z. А то, как грань отображается на мониторе, зависит от её положения относительно камеры и источников света:

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Изменяя меш, добавляя вершины и меняя их положение, мы можем создавать любые сложные объекты:

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Для создания твёрдых объектов (англ. hard surface) 3D-художники обычно меняют положение граней вручную, как это показано выше.

При работе с персонажами чаще используется скульптинг (англ. sculpting) — напоминает лепку из пластилина:

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Но геометрия — не последний этап создания 3D-модели. Например, у моделей, созданных скульптингом, плохая топология (то, как именно устроен меш) — слишком много задействовано вершин:

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Есть множество других важных моментов: анимирование, запекание текстур, составление карт нормалей и так далее. Всё это стоит вплотную изучить тем, кто собирается моделировать 3D. Сейчас же мы поговорим о более техническом вопросе.

Отображение 3D-моделей на экране

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

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

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Если луч попадает в объект, то дальше компьютер проверяет, в какой именно полигон было попадание, какой материал у объекта, как падает свет, на каком расстоянии находится объект от камеры и многие другие переменные.

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

Процесс перевода 3D-сцены в 2D-изображение называется рендерингом (англ. rendering) или отрисовкой.

Движение в 3D

Мы узнали, как выводится одно изображение, но ведь 3D бывает ещё и в фильмах и играх, где постоянно происходит какое-то движение. На самом деле мы до сих используем тот же принцип анимации, что и несколько веков назад.

В 1877 году был изобретён праксиноскоп — барабан, обклеенный изнутри последовательностью изображений. В его центре есть ещё один барабан поменьше, обклеенный зеркалами. Если смотреть в центр устройства, когда оно вертится, можно увидеть иллюзию движения:

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Сейчас это выглядит так:

Большинство современных мониторов могут выводить 60 картинок (кадров) в секунду (англ. Frames Per Second, FPS), благодаря чему создаётся ощущение плавности.

В случае с играми все кадры отрисовываются в реальном времени. То есть, пока пользователь играет, положение объектов на сцене меняется, компьютер 60 раз в секунду проверяет, как это всё выглядит, и обновляет изображение на мониторе.

Разумеется, это накладывает ограничения на качество изображения. Например, в играх только недавно появилась технология трассировки лучей (англ. Ray Tracing), которая позволяет программно рассчитывать рассеивание лучей света.

Вот, например, как выглядит сцена из Minecraft без RTX (технология трассировки лучей в видеокартах Nvidia):

Источник

Что такое 3D-графика

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

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

Что такое 3D-изображение

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

История развития 3D

Полноценное представление 3D-элементов на экране мир увидел в короткометражном фильме «A Computer Animated Hand», вышедшем в 1972 году. На скриншоте ниже вы видите то, как аниматоры смогли спроектировать человеческую руку и анимировать ее на экране.

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Это дало сильный толчок в развитии анимационных технологий и применении подобных эффектов в кинематографе. Одним из первых фильмов, в котором зритель мог увидеть анимацию человеческого лица, считается «Futureworld», вышедший в 1976 году. Сразу после этого трехмерная графика начала прогрессировать очень быстро. Появились специальные программы, кинокомпании стали набирать сотрудников соответствующих должностей и реализовывали самые разные эффекты в своих проектах. Обладатели персональных компьютеров уже в начале 80-х годов могли скачать программу под названием 3D Art Graphics, которая включала в себя набор различных трехмерных объектов и эффектов.

Создание трехмерной графики

Как же работает трехмерная графика на компьютерах и на какие этапы делится ее создание?

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

3D-моделирование. На компьютере создается модель, в точности передающая форму объекта, который нужно представить. Это может быть любой предмет, животное или человек. В общем, все, что нас окружает. Существует несколько видов трехмерного моделирования, каждый из которых имеет свои особенности и принципы, но сейчас не будем вдаваться в эту тему. Если хотите, можете ознакомиться с такими программами, как Blender или 3Ds Max, чтобы узнать, как трехмерные объекты рисуются при помощи программ.

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

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

3D-моделирование

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

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Источник

Трехмерная графика: что это такое, где применяется и кому необходима

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

Как работает 3D-графика

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

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

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

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

Примеры 3D-графики

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

Дизайнеры интерьеров и ландшафтов часто работают вместе со специалистами в области 3D, чтобы последние могли максимально точно изобразить то, каким будет конечный результат: как будет выглядеть комната, что будет включать экстерьер и так далее.

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Оба примеры выше сделали наши ученики.

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

На рендере одна из работ выпускника нашего бесплатного курса.

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

Вот какую работу проделали мы, чтобы продемонстрировать общий вид жилого комплекса:

Этапы создания трехмерного изображения

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Также у нас есть собственная библиотека 3D Hamster, которую мы регулярно пополняем.

Однако если объект какой-то уникальный, придется моделировать его полностью с нуля. Кроме этого, если идёт работа над сценой в целом, а не над единственным предметом, нужно органично расположить в пространстве все предметы и правильно выбрать ракурс.

Рассмотрим каждым отдельный этап с самого начала и до финальной обработки изображения.

Моделирование

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Текстурирование

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Вот хороший пример того, как превратить обычную однотонную стену в дизайнерское решение с помощью Realworld-текстурирования:

Настройка освещения

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Вот такой небольшой мультфильм сделал наш ученик Павел Нохрин:

Рендеринг

Постобработка

Области применения трехмерной графики и обучение

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

И тут следующий вопрос: а где учиться 3D-дизайну?

Можно, конечно, в вузах — это самый очевидный вариант, а для студентов бюджетных форм обучения еще и бесплатный.
Остается только надеяться, что полученные на первом курсе знания не устареют через 5 лет — как раз к получению диплома. А заодно — на то, что преподавание действительно качественное. Очевидно, что лучшие материалы дают эксперты-практики, а не теоретики. Только давайте честно: согласится ли реальный 3D-дизайнер оставить full-time работу в этой сфере, приносящую ему от 50 000 до 150 000 рублей в месяц (данные Trud.com за 2020 год по РФ) и пойти работать на тот же full-time в вуз за 55 000 рублей в месяц (средний оклад преподавателей по Москве)?

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

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

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

Более того, деньги могут заработать наши ученики уже во время обучения.
На каждом потоке у нас есть спонсор, который отбирает до 10 лучших работ из домашних заданий под свою задачу, и авторы этих рендеров получают символическую оплату.
Обычно она составляет 1000—1500 рублей, но ученикам первого потока 2021 года повезло вдвойне: автору лучшей работы спонсор заплатит 15 000 рублей.

Источник

Что такое 3D графика?

Вступление

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

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

С выходом таких игр, как F19, Formula 1 и т.п., в которых приходилось уже перерисовывать весь экран, предварительно заготавливая его в памяти, всем нам пришлось обзавестись, по крайней мере, 286 процессором. Но прогресс на этом не остановился. Желание уподобить виртуальный мир в игре реальному миру усилилось, и появился Wolf 3D.

Это, можно сказать, первая 3D-игра, в которой был смоделирован какой-никакой, но все же реалистичный мир. Для его реализации пришлось использовать верхнюю (более 640 Кб) память и загнать программу в защищенный режим. Для полноценной игры пришлось установить процессор 80386. Но и мир Wolf 3D страдал недостатками. Хотя стены и были не просто одноцветными прямоугольниками, но для их закраски использовались текстуры с небольшим разрешением, поэтому поверхности смотрелись прилично лишь на расстоянии. Конечно, можно было пойти по пути наращивания разрешения текстур, вспомним, например, DOOM. Тогда нам пришлось снова перейти на более новый процессор и увеличить количество памяти. Правда, все равно, хотя изображение и улучшилось, но ему были присущи все те же недостатки. Да и плоские объекты и монстры — кому это интересно. Тут то и взошла звезда Quake. В этой игре был применен революционный подход — z-буфер, позволивший придать объемность всем объектам. Однако вся игра все равно работала в невысоком разрешении и не отличалась высокой реалистичностью.

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

Тут то и вылез производитель игровых автоматов 3Dfx, сделавший эту сказку былью с помощью своего графического процессора Voodoo. Человечество сделало еще один шаг в виртуальный мир.

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

Модель

Для изображения трехмерных объектов на экране монитора требуется проведение серии процессов (обычно называемых конвейером) с последующей трансляцией результата в двумерный вид. Первоначально, объект представляется в виде набора точек, или координат, в трехмерном пространстве. Трехмерная система координат определяется тремя осями: горизонтальной, вертикальной и глубины, обычно называемых, соответственно осями x, y и z. Объектом может быть дом, человек, машина, самолет или целый 3D мир и координаты определяют положение вершин (узловых точек), из которых состоит объект, в пространстве. Соединив вершины объекта линиями, мы получим каркасную модель, называемую так из-за того, что видимыми являются только края поверхностей трехмерного тела. Каркасная модель определяет области, составляющие поверхности объекта, которые могут быть заполнены цветом, текстурами и освещаться лучами света.

Даже при таком упрощенном объяснении конвейера 3D графики становится ясно, как много требуется вычислений для прорисовки трехмерного объекта на двумерном экране. Можно представить, насколько увеличивается объем требуемых вычислений над системой координат, если объект движется.

Роль API

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

Для профессиональных приложений, работающих под управлением WindowsNT доминирует интерфейс OpenGL. Компания Autodesk, крупнейший производитель инженерных приложений, разработала свой собственный API, называемый Heidi.
Свои API разработали и такие компании, как Intergraph — RenderGL, и 3DFX — GLide.

Существование и доступность 3D интерфейсов, поддерживающих множество графических подсистем и приложений, увеличивает потребность в аппаратных ускорителях трехмерной графике, работающих в режиме реального времени. Развлекательные приложения, главный потребитель и заказчик таких ускорителей, но не стоит забывать и о прфессиональных приложениях для обработки 3D графики, работающих под управлением Windows NT, многие из которых переносятся с высокопроизводительных рабочих станций, типа Silicon Graphics, на PC платформу. Интернет приложения сильно выиграют от невероятной маневренности, интуитивности и гибкости, которые обеспечивает применение трехмерного графического интерфейса. Взаимодействие в World Wide Web будет гораздо проще и удобнее, если будет происходить в трехмерном пространстве.

Графический ускоритель

Внедрение малтимедиа создало новые проблемы, вызванные добавлением таких компонентов, как звук и цифровое видео к набору двумерных графических функций. Сегодня легко заметить, что многие продукты AVGA поддерживают на аппаратном уровне обработку цифрового видео. Следовательно, если на Вашем мониторе видео проигрывается в окне, размером с почтовую марку — пора установить в Вашей машине малтимедиа ускоритель. Малтимедиа ускоритель (multimedia accelerator) обычно имеет встроенные аппаратные функции, позволяющие масштабировать видеоизображение по осям x и y, а также аппаратно преобразовывать цифровой сигнал в аналоговый, для вывода его на монитор в формате RGB. Некоторые малтимедиа акселлераторы могут также иметь встроенные возможности декомпресси цифрового видео.

Разработчики графических подсистем должны исходить из требований, частично диктуемых размерами компьютерного монитора, частично под влиянием GUI, и частично под влиянием графического процессора. Первичный стандарт VGA с разрешением 640х480 пикселов был адекватен 14″ мониторам, наиболее распространенных в то время. Сегодня наиболее предпочтительны мониторы с размером диагонали трубки 17″, благодаря возможности выводить изображения с разрешением 1024х768 и более.

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

Игровые двигатели (Games engines)

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

Нет ничего более желанного для разработчика, чем иметь прямой доступ к аппаратным функциям компонентов системы. Несколько известных разработчиков создали свои собственные игровые двигатели, работающие с оптимальным использованием аппаратных ускорителей графики, которые принесли им известность и деньги. Например, двигатели Interplay для Descent II и id Software для Quake, обеспечивают истинную трехмерность действия, используя наполную аппаратные функции 3D, если они доступны.

Графика без компромисов

Технология 3D-графики

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

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

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

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

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

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

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

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

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

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

Но вернемся в наш гоночный автомобиль. Сама дорога уже выглядит реалистично, но проблемы наблюдаются с ее краями! Вспомните, как выглядит линия, проведенная на экране не параллельно его краю. Вот и у нашей дороги появляются «рваные края». И для борьбы с этим недостатком изображения применяется anti-aliasing.

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

Z-буферизация при аппаратной реализации сильно увеличивает производительность. Тем не менее, z-буфер занимает большие объемы памяти: например даже при разрешении 640×480 24-разрядный z-буфер будет занимать около 900 Кб. Эта память должна быть также установлена на 3D-видеокарте.

Разрешающая способность z-буфера — самый главный его атрибут. Она критична для высококачественного отображения сцен с большой глубиной. Чем выше разрешающая способность, тем выше дискретность z-координат и точнее выполняется рендеринг удаленных объектов. Если при рендеринге разрешающей способности не хватает, то может случиться, что два перекрывающихся объекта получат одну и ту же координату z, в результате аппаратура не будет знать какой объект ближе к наблюдателю, что может вызвать искажение изображения.
Для избежания этих эффектов профессиональные платы имеют 32-разрядный z-буфер и оборудуются большими объемами памяти.

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

Реальный мир состоит из прозрачных, полупрозрачных и непрозрачных объектов. Для учета этого обстоятельства, применяется alpha blending — способ передачи информации о прозрачности полупрозрачных объектов. Эффект полупрозрачности создается путем объединения цвета исходного пиксела с пикселом, уже находящимся в буфере.
В результате цвет точки является комбинацией цветов переднего и заднего плана. Обычно, коэффициент alpha имеет нормализованное значение от 0 до 1 для каждого цветного пиксела. Новый пиксел = (alpha)(цвет пиксела А) + (1 — alpha)(цвет пиксела В).

Очевидно, что для создания реалистичной картины происходящего на экране необходимо частое обновление его содержимого. При формировании каждого следующего кадра, 3D-акселератор проходит весь путь подсчета заново, поэтому он должен обладать немалым быстродействием. Но в 3D-графике применяются и другие методы придания плавности движению. Ключевой — Double Buffering.
Представьте себе старый трюк аниматоров, рисовавших на уголках стопки бумаги персонаж мультика, со слегка изменяемым положением на каждом следующем листе. Пролистав всю стопку, отгибая уголок, мы увидим плавное движение нашего героя. Практически такой же принцип работы имеет и Double Buffering в 3D анимации, т.е. следующее положение персонажа уже нарисовано, до того, как текущая страница будет пролистана. Без применения двойной буферизации изображение не будет иметь требуемой плавности, т.е. будет прерывистым. Для двойной буферизации требуется наличие двух областей, зарезервированных в буфере кадров трехмерной графической платы; обе области должны соответствовать размеру изображения, выводимого на экран. Метод использует два буфера для получения изображения: один для отображения картинки, другой для рендеринга. В то время как отображается содержимое одного буфера, в другом происходит рендеринг. Когда очередной кадр обработан, буфера переключаются (меняются местами). Таким образом, играющий все время видит отличную картинку.

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

Конвейер рендеринга может быть разделен на 2 стадии: геометрическая обработка и растеризация.

Трехмерная графика что это. Смотреть фото Трехмерная графика что это. Смотреть картинку Трехмерная графика что это. Картинка про Трехмерная графика что это. Фото Трехмерная графика что это

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

На второй стадии к изображению применяются все описанные эффекты в следующей последовательности: удаление скрытых поверхностей, наложение с учетом перспективы текстур (используя z-буфер), применение эффектов тумана и полупрозрачности, anti-aliasing. После этого очередная точка считается готовой к помещению в буфер со следующего кадра.

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

Заключение

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *