3D-рендеринг — это процесс трехмерной компьютерной графики , заключающийся в преобразовании трехмерных моделей в двухмерные изображения на компьютере . 3D-рендеринг может включать фотореалистичные эффекты или нефотореалистичные стили .
Рендеринг — это заключительный процесс создания фактического 2D-изображения или анимации из подготовленной сцены. Это можно сравнить с фотографированием или съемкой сцены после завершения настройки в реальной жизни. [1] Было разработано несколько различных и часто специализированных методов рендеринга. Они варьируются от отчетливо нереалистичного каркасного рендеринга через рендеринг на основе полигонов до более продвинутых методов, таких как: рендеринг сканирующих линий , трассировка лучей или излучательность . Рендеринг может занять от долей секунды до дней для одного изображения/кадра. В целом, различные методы лучше подходят либо для фотореалистичного рендеринга, либо для рендеринга в реальном времени . [2]
Рендеринг для интерактивных медиа, таких как игры и симуляции, рассчитывается и отображается в реальном времени со скоростью приблизительно от 20 до 120 кадров в секунду. При рендеринге в реальном времени цель состоит в том, чтобы показать как можно больше информации, которую глаз может обработать за долю секунды (т. е. «за один кадр»: в случае анимации со скоростью 30 кадров в секунду кадр охватывает одну тридцатую секунды).
Основная цель — достичь максимально возможной степени фотореализма при приемлемой минимальной скорости рендеринга (обычно 24 кадра в секунду, поскольку это минимум, который должен видеть человеческий глаз, чтобы успешно создать иллюзию движения). Фактически, эксплуатация может применяться к способу, которым глаз «воспринимает» мир, и в результате финальное изображение не обязательно будет изображением реального мира, но достаточно близким к нему, чтобы человеческий глаз мог его воспринять.
Программное обеспечение для рендеринга может имитировать такие визуальные эффекты, как блики объектива , глубина резкости или размытость изображения . Это попытки имитировать визуальные явления, возникающие из-за оптических характеристик камер и человеческого глаза. Эти эффекты могут придать сцене элемент реализма, даже если эффект является всего лишь имитированным артефактом камеры. Это основной метод, используемый в играх, интерактивных мирах и VRML .
Быстрое увеличение вычислительной мощности компьютеров позволило достичь все более высокой степени реализма даже для рендеринга в реальном времени, включая такие методы, как HDR-рендеринг . Рендеринг в реальном времени часто является полигональным и поддерживается графическим процессором компьютера . [3]
Анимации для неинтерактивных медиа, таких как художественные фильмы и видео, могут занимать гораздо больше времени для рендеринга. [4] Рендеринг не в реальном времени позволяет использовать ограниченную вычислительную мощность для получения более высокого качества изображения. Время рендеринга отдельных кадров может варьироваться от нескольких секунд до нескольких дней для сложных сцен. Рендеринговые кадры сохраняются на жестком диске , а затем переносятся на другие носители, такие как кинопленка или оптический диск. Затем эти кадры отображаются последовательно с высокой частотой кадров, обычно 24, 25 или 30 кадров в секунду (fps), для достижения иллюзии движения.
Когда целью является фотореализм, применяются такие методы, как трассировка лучей , трассировка пути , картирование фотонов или излучательность . Это основной метод, используемый в цифровых медиа и художественных работах. Были разработаны методы для имитации других естественных эффектов, таких как взаимодействие света с различными формами материи. Примерами таких методов являются системы частиц (которые могут имитировать дождь, дым или огонь), объемная выборка (для имитации тумана, пыли и других пространственных атмосферных эффектов), каустика (для имитации фокусировки света неровными светопреломляющими поверхностями, такими как световая рябь, видимая на дне бассейна) и подповерхностное рассеяние (для имитации света, отражающегося внутри объемов твердых объектов, таких как человеческая кожа ).
Процесс рендеринга является вычислительно дорогим, учитывая сложное разнообразие моделируемых физических процессов. Мощность компьютерной обработки быстро росла с годами, позволяя достичь все более высокой степени реалистичного рендеринга. Киностудии, которые производят компьютерную анимацию, обычно используют ферму рендеринга для своевременной генерации изображений. Однако снижение стоимости оборудования означает, что вполне возможно создавать небольшие объемы 3D-анимации на домашней компьютерной системе, учитывая затраты, связанные с использованием ферм рендеринга. [5] Выходные данные рендерера часто используются как всего лишь одна небольшая часть завершенной сцены кинофильма. Многие слои материала могут быть рендерингованы отдельно и интегрированы в финальный кадр с помощью программного обеспечения для композитинга .
Модели отражения/рассеивания и затенения используются для описания внешнего вида поверхности . Хотя эти вопросы могут показаться проблемами сами по себе, они изучаются почти исключительно в контексте рендеринга. Современная 3D-компьютерная графика в значительной степени опирается на упрощенную модель отражения, называемую моделью отражения Фонга (не путать с затенением Фонга ). В преломлении света важным понятием является показатель преломления ; в большинстве реализаций 3D-программирования термин для этого значения — «показатель преломления» (обычно сокращается до IOR).
Затенение можно разделить на две разные техники, которые часто изучаются независимо:
Популярные алгоритмы затенения поверхности в трехмерной компьютерной графике включают в себя:
Отражение или рассеяние — это отношение между входящим и исходящим освещением в данной точке. Описания рассеяния обычно даются в терминах функции распределения двунаправленного рассеяния или BSDF. [8]
Затенение определяет, как различные типы рассеивания распределены по поверхности (т. е. какая функция рассеивания применяется где). Описания такого рода обычно выражаются с помощью программы, называемой шейдером . [ 9] Простым примером затенения является текстурное отображение , которое использует изображение для указания диффузного цвета в каждой точке поверхности, придавая ей более очевидную детализацию.
Некоторые методы затенения включают в себя:
Транспорт описывает, как освещение в сцене попадает из одного места в другое. Видимость является основным компонентом светового транспорта.
Затененные трехмерные объекты должны быть сглажены так, чтобы устройство отображения, а именно монитор, могло отображать их только в двух измерениях, этот процесс называется 3D-проекцией . Это делается с помощью проекции и, для большинства приложений, перспективной проекции . Основная идея перспективной проекции заключается в том, что объекты, которые находятся дальше, становятся меньше по отношению к тем, которые находятся ближе к глазу. Программы создают перспективу, умножая константу расширения, возведенную в степень отрицательного расстояния от наблюдателя. Константа расширения, равная единице, означает, что перспективы нет. Высокие константы расширения могут вызвать эффект «рыбьего глаза», при котором изображение начинает искажаться. Ортогональная проекция используется в основном в приложениях CAD или CAM , где научное моделирование требует точных измерений и сохранения третьего измерения.
Движки рендеринга могут работать вместе или быть интегрированы с программным обеспечением для 3D-моделирования, но есть и отдельное программное обеспечение. Некоторые движки рендеринга совместимы с несколькими программными обеспечениями для 3D-моделирования, в то время как некоторые являются эксклюзивными для одного. Именно он отвечает за преобразование подготовленной 3D-сцены в 2D-изображение или анимацию. Движки 3D-рендеринга могут быть основаны на различных методах, таких как трассировка лучей, растеризация, трассировка пути, также в зависимости от скорости и ожидаемого результата они бывают разных типов — в реальном времени и не в реальном времени, что было описано выше
Библиотеки САПР могут содержать такие ресурсы, как 3D-модели , текстуры , карты рельефа , HDRI и различные источники освещения компьютерной графики для визуализации. [11]