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

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

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

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

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

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

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

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

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

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

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

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

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

Наиболее популярными пакетами сугубо для моделирования являются: Pixologic Zbrush; Autodesk Mudbox, Autodesk 3Ds Max; Robert McNeel & Assoc. Rhinoceros 3D; Trimble SketchUp. Blender Компас (САПР) Cinema4D 3D-Coat Maya

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

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

Освещение Заключается в создании, направлении и настройке виртуальных источников света. При этом в виртуальном мире источники света могут иметь негативную интенсивность, отбирая свет из зоны своего «отрицательного освещения». Как правило, пакеты 3D-графики предоставляют следующие типы источников освещения: Omni light (Point light) — всенаправленный; Spot light — конический (прожектор), источник расходящихся лучей; Directional light — источник параллельных лучей; Area light (Plane light) — световой портал, излучающий свет из плоскости; Photometric — источники света, моделируемые по параметрам яркости свечения в физически измеримых единицах, с заданной температурой накала.

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

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

Рендеринг

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

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

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

Наиболее популярными системами рендеринга являются: PhotoRealistic RenderMan (PRMan) Mental ray V-Ray CoronaRenderer Arnold Render FinalRender Brazil R/S Cycles Turtle Maxwell Render Fryrender Indigo Renderer LuxRender POV-Ray

Вследствие большого объёма однотипных вычислений рендеринг можно разбивать на потоки (распараллеливать). Поэтому для рендеринга весьма актуально использование многопроцессорных систем. В последнее время активно ведётся разработка систем рендеринга, использующих GPU вместо CPU, и уже сегодня их эффективность для таких вычислений намного выше. К таким системам относятся: Refractive Software Octane Render AAA studio FurryBall RandomControl ARION (гибридная) Cycles V-Ray GPU Next LuxRender Iray Многие производители систем рендеринга для CPU также планируют ввести поддержку GPU (LuxRender, YafaRay, mental images iray).

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

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

3D-моделирование фотореалистичных изображений Программные пакеты, позволяющие создавать трёхмерную графику, то есть моделировать объекты виртуальной реальности и создавать на основе этих моделей изображения, очень разнообразны. Последние годы устойчивыми лидерами в этой области являются коммерческие продукты, такие, как: Autodesk 3ds Max Autodesk Maya Autodesk Softimage Blender Cinema 4D Houdini Modo LightWave 3D Caligari Truespace Unreal Engine Unity GitHub SFM а также сравнительно новые Rhinoceros 3D, Nevercenter Silo и ZBrush.

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

SketchUp