Трёхмерная графика

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Трехмерность»)
Перейти к навигации Перейти к поиску
Пример 3D-графики
Трёхмерная графика
Основы
Основные виды применения
Связанные темы

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

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

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

Применение

[править | править код]

Трёхмерная графика активно применяется для создания изображений на плоскости экрана или листа печатной продукции в науке и промышленности, например, в системах автоматизации проектных работ (САПР; для создания твердотельных элементов: зданий, деталей машин, механизмов), архитектурной визуализации (сюда относится и так называемая «виртуальная археология»), в современных системах медицинской визуализации.

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

Трёхмерная графика обычно имеет дело с виртуальным, воображаемым трёхмерным пространством, которое отображается на плоской, двухмерной поверхности дисплея или листа бумаги. В настоящее время известно несколько способов отображения трёхмерной информации в объёмном виде, хотя большинство из них представляет объёмные характеристики весьма условно, поскольку работают со стереоизображением. Из этой области можно отметить стереоочки, виртуальные шлемы, 3D-дисплеи, способные демонстрировать трёхмерное изображение. Несколько производителей продемонстрировали готовые к серийному производству трёхмерные дисплеи. Но, чтобы насладиться объёмной картинкой, зрителю необходимо расположиться строго по центру. Шаг вправо, шаг влево, равно как и неосторожный поворот головы, карается превращением трёхмерности в несимпатичное зазубренное изображение. Решение этой проблемы уже созрело в научных лабораториях. Германский Институт Фраунгофера демонстрировал 3D-дисплей, при помощи двух камер отслеживающий положение глаз зрителя и соответствующим образом подстраивающий изображение, в этом году[когда?] пошёл ещё дальше. Теперь отслеживается положение не только глаз, но и пальца, которым можно «нажимать» трёхмерные кнопки. А команда исследователей Токийского университета создали систему, позволяющую почувствовать изображение. Излучатель фокусируется на точке, где находится палец человека, и в зависимости от его положения меняет силу акустического давления. Таким образом, становится возможным не только видеть объёмную картинку, но и взаимодействовать с изображёнными на ней предметами.

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

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

Для получения трёхмерного изображения на плоскости требуются следующие шаги:

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

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

[править | править код]
Схема проецирования сцены на экран компьютера.

Моделирование сцены (виртуального пространства моделирования) включает в себя несколько категорий объектов:

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

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

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

Наиболее популярными пакетами сугубо для моделирования являются:

Для создания трёхмерной модели человека или существа может быть использована как прообраз (в большинстве случаев) скульптура.

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

[править | править код]

Текстурирование подразумевает проецирование растровых или процедурных текстур на поверхности трёхмерного объекта в соответствии с картой UV-координат, где каждой вершине объекта ставится в соответствие определённая координата на двухмерном пространстве текстуры.

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

  • Omni light (Point light) — всенаправленный;
  • Spot light — конический (прожектор), источник расходящихся лучей;
  • Directional light — источник параллельных лучей;
  • Area light (Plane light) — световой портал, излучающий свет из плоскости;
  • Photometric — источники света, моделируемые по параметрам яркости свечения в физически измеримых единицах, с заданной температурой накала.

Существуют также другие типы источников света, отличающиеся по своему функциональному назначению в разных программах трёхмерной графики и визуализации. Некоторые пакеты предоставляют возможности создавать источники объёмного свечения (Sphere light) или объёмного освещения (Volume light), в пределах строго заданного объёма. Некоторые предоставляют возможность использовать геометрические объекты произвольной формы.

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

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

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

  • Z-буфер (используется в OpenGL и DirectX 10);
  • Сканлайн (scanline) — он же Ray casting («бросание луча», упрощённый алгоритм обратной трассировки лучей) — расчёт цвета каждой точки картинки построением луча из точки зрения наблюдателя через воображаемое отверстие в экране на месте этого пикселя «в сцену» до пересечения с первой поверхностью. Цвет пикселя будет таким же, как цвет этой поверхности (иногда с учётом освещения и т. д.);
  • Трассировка лучей (рейтрейсинг, англ. raytracing) — то же, что и сканлайн, но цвет пикселя уточняется за счёт построения дополнительных лучей (отражённых, преломлённых и т. д.) от точки пересечения луча взгляда. Несмотря на название, применяется только обратная трассировка лучей (то есть как раз от наблюдателя к источнику света), прямая крайне неэффективна и потребляет слишком много ресурсов для получения качественной картинки;
  • Глобальное освещение (англ. global illumination, radiosity) — расчёт взаимодействия поверхностей и сред в видимом спектре излучения с помощью интегральных уравнений.

Грань между алгоритмами трассировки лучей в настоящее время практически стёрлась. Так, в 3D Studio Max стандартный визуализатор называется Default scanline renderer, но он считает не только вклад диффузного, отражённого и собственного (цвета самосвечения) света, но и сглаженные тени. По этой причине чаще понятие Raycasting относится к обратной трассировке лучей, а Raytracing — к прямой.

Наиболее популярными системами рендеринга являются:

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

Многие производители систем рендеринга для CPU также планируют ввести поддержку GPU (LuxRender, YafaRay, mental images iray).

Самые передовые достижения и идеи трёхмерной графики (и компьютерной графики вообще) докладываются и обсуждаются на ежегодном симпозиуме SIGGRAPH, традиционно проводимом в США.

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

[править | править код]

3D-моделирование фотореалистичных изображений

[править | править код]

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

а также сравнительно новые Rhinoceros 3D, Nevercenter Silo и ZBrush.

Среди открытых продуктов, распространяемых свободно, числится пакет Blender (позволяет создавать 3D-модели, анимацию, различные симуляции и др. c последующим рендерингом), K-3D и Wings3D.

Бесплатная программа SketchUp компании Google позволяет создавать модели, совместимые с географическими ландшафтами ресурса Google Планета Земля, а также просматривать в интерактивном режиме на компьютере пользователя несколько тысяч архитектурных моделей, которые выложены на бесплатном постоянно пополняемом ресурсе Google Cities in Development (выдающиеся здания мира), созданные сообществом пользователей.

Визуализация трёхмерной графики в играх и прикладных программах

[править | править код]

Есть ряд программных библиотек для визуализации трёхмерной графики в прикладных программах — DirectX, OpenGL и так далее.

Есть ряд подходов по представлению 3D-графики в играх — полное 3D, псевдо-3D.

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

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

  • Deep learning super sampling (DLSS[англ.]) — семейство технологий улучшения и масштабирования изображений в реальном времени, разработанных компанией Nvidia, которые являются эксклюзивными для линейки видеокарт RTX, и доступны в ряде видеоигр (последняя версия DLSS 3.0).
  • FidelityFX Super Resolution (FSR, производная GPUOpen[англ.]) — конкурирующая технология от AMD (последняя версия FSR 3.0); в отличие от DLSS, доступен на любом «железе», но в то же время компания рекомендует хотя бы минимальную видеокарту с RT-ядрами; поддерживается в ограниченном числе игр;
  • Intel XeSS[англ.] — технология от Intel, основанная на ИИ;
  • LSFG — встроен в программу Lossless Scaling от Valve (работает на любых видеокартах, даже встроенных)[1].

Моделирование деталей и механизмов для производства

[править | править код]
Трёхмерная модель нефтегазопромыслового оборудования.

Существуют конструкторско-технологические пакеты CAD/CAE/CAM, предполагающие создание моделей деталей и конструкций, их расчёт, оформление по ним конструкторско-технологической документации и, при необходимости, последующее формирование программ для станков ЧПУ и 3D-принтеров. Общеупотребительным для данных групп программного обеспечения является термин «система автоматизированного проектирования» (САПР).

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

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

Моделирование зданий и сооружений

[править | править код]

Отдельным направлением трёхмерного направления является информационное моделирование зданий (BIM/ТИМ). Так же как и производственные системы проектирования, программы для BIM оперируют точным построением моделей, наполнения их различного рода атрибутивными свойствами и возможностью представления их в различных представлениях (разрезы, виды, спецификации).

Трёхмерные дисплеи

[править | править код]

Трёхмерные, или стереоскопические дисплеи, (3D displays, 3D screens) — дисплеи, посредством стереоскопического или какого-либо другого[2] эффекта создающие иллюзию реального объёма у демонстрируемых изображений.

В настоящее время подавляющее большинство трёхмерных изображений показывается при помощи стереоскопического эффекта, как наиболее лёгкого в реализации, хотя использование одной лишь стереоскопии нельзя назвать достаточным для объёмного восприятия. Человеческий глаз как в паре, так и в одиночку одинаково хорошо отличает объёмные объекты от плоских изображений[источник не указан 4416 дней].

Стереоскопические дисплеи

[править | править код]

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

Существует также относительно новый класс стереодисплеев, не требующих использования дополнительных устройств, но имеющих массу ограничений. В частности, это конечное и очень небольшое количество ракурсов, в которых стереоизображение сохраняет чёткость. Стереодисплеи, выполненные на базе технологии New Sight x3d, обеспечивают восемь ракурсов, Philips WOWvx — девять ракурсов. В октябре 2008 года компания Philips представила прототип стереодисплея с разрешением 3840×2160 точек и с рекордными 46 ракурсами «безопасного» просмотра. Вскоре после этого, однако, Philips объявил о приостановке разработок и исследований в области стереодисплеев[3].

Ещё одна проблема стереодисплеев — это малая величина зоны «комфортного просмотра» (диапазон расстояний от зрителя до дисплея, в котором изображение сохраняет чёткость). В среднем она ограничена диапазоном от 3 до 10 метров.

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

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

Существует технология отображения трёхмерного видео на светодиодных экранах.

Наголовные дисплеи, видеоочки

[править | править код]

Прочие дисплеи

[править | править код]

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

Существуют также устройства, в которых на быстро вращающейся пластине закреплены светодиоды.

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

Кинотеатры с 3D

[править | править код]

Использование для обозначения стереоскопических фильмов терминов «трёхмерный» или «3D» связано с тем, что при просмотре таких фильмов у зрителя создаётся иллюзия объёмности изображения, ощущение наличия и третьего измерения — глубины и новой размерности пространства уже в 4D. Кроме того, существует ассоциативная связь с расширяющимся использованием средств компьютерной трёхмерной графики при создании таких фильмов (ранние стереофильмы снимались как обычные фильмы, но с использованием двухобъективных стереокамер).

На сегодняшний день просмотр фильмов в формате «3D» стал очень популярным явлением.

Основные используемые в настоящее время технологии показа стереофильмов[4]:

Дополненная реальность и 3D

[править | править код]

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

Толчком к широкому распространению технологии послужило создание в 2008 году открытой библиотеки FLARToolKit для технологии Adobe Flash.

Примечания

[править | править код]

Литература

[править | править код]
  • Дж. Ли, Б. Уэр. Трёхмерная графика и анимация. — 2-е изд. — М.: Вильямс, 2002. — 640 с.
  • Д. Херн, М. П. Бейкер. Компьютерная графика и стандарт OpenGL. — 3-е изд. — М., 2005. — 1168 с.
  • Э. Энджел. Интерактивная компьютерная графика. Вводный курс на базе OpenGL. — 2-е изд. — М.: Вильямс, 2001. — 592 с.
  • Г. Снук. 3D-ландшафты в реальном времени на C++ и DirectX 9. — 2-е изд. — М.: Кудиц-пресс, 2007. — 368 с. — ISBN 5-9579-0090-7.
  • В. П. Иванов, А. С. Батраков. Трёхмерная компьютерная графика / Под ред. Г. М. Полищука. — М.: Радио и связь, 1995. — 224 с. — ISBN 5-256-01204-5.