Рендеринг или синтез изображения - это процесс создания фотореалистичного или нефотореалистичного изображения из 2D или 3D модели с помощью компьютерной программы. Полученное изображение называется рендером. Несколько моделей могут быть определены в файле сцены, содержащем объекты на строго определенном языке или в структуре данных. Файл сцены содержит информацию о геометрии, точке обзора, текстуре, освещении и затенении, описывающую виртуальную сцену. Данные, содержащиеся в файле сцены, затем передаются программе рендеринга для обработки и вывода в файл цифрового изображения или растрового графического изображения. Термин «рендеринг» аналогичен представлению художника о сцене. Термин «рендеринг» также используется для описания процесса вычисления эффектов в программе редактирования видео для получения окончательного видеовыхода.
Рендеринг - одна из основных подтем компьютерной 3D-графики, и на практике она всегда связана с другими. Это последний важный шаг в графическом конвейере, придающий моделям и анимации их окончательный вид. С ростом сложности компьютерной графики с 1970-х годов она стала более самостоятельной темой.
Рендеринг используется в архитектуре, видеоиграх, симуляторах, визуальных эффектах кино и телевидения, а также в визуализации дизайна, каждый из которых использует различный баланс функций и методов. Доступно большое количество рендереров. Некоторые из них интегрированы в более крупные пакеты моделирования и анимации, некоторые являются автономными, а некоторые являются бесплатными проектами с открытым исходным кодом. Внутри рендерер - это тщательно спроектированная программа, основанная на нескольких дисциплинах, включая физику света, визуальное восприятие, математику и разработку программного обеспечения.
Хотя технические детали методов рендеринга различаются, общие проблемы, которые необходимо преодолеть при создании 2D-изображения на экране из 3D-представления, хранящегося в файле сцены, решаются графическим конвейером в устройстве рендеринга, таком как графический процессор. Графический процессор - это специально разработанное устройство, которое помогает процессору выполнять сложные вычисления рендеринга. Если сцена должна выглядеть относительно реалистичной и предсказуемой при виртуальном освещении, программное обеспечение визуализации должно решить уравнение визуализации. Уравнение рендеринга не учитывает все явления освещения, а вместо этого действует как общая модель освещения для компьютерных изображений.
В случае 3D-графики сцены могут быть предварительно визуализированы или сгенерированы в реальном времени. Предварительный рендеринг - это медленный, ресурсоемкий процесс, который обычно используется для создания фильмов, где сцены могут быть сгенерированы заранее, в то время как рендеринг в реальном времени часто выполняется для 3D-видеоигр и других приложений, которые должны динамически создавать сцены. Аппаратные 3D- ускорители могут улучшить производительность рендеринга в реальном времени.
Когда предварительное изображение ( обычно каркасный эскиз) завершено, используется рендеринг, который добавляет растровые текстуры или процедурные текстуры, источники света, рельефное отображение и относительное положение по отношению к другим объектам. Результатом является законченное изображение, которое видит потребитель или предполагаемый зритель.
Для анимации фильмов необходимо визуализировать несколько изображений (кадров) и сшить их вместе в программе, способной создавать анимацию такого рода. Большинство программ для редактирования 3D-изображений умеют это делать.
Отрендеренное изображение можно понять с точки зрения ряда видимых функций. Исследования и разработки в области визуализации были в значительной степени мотивированы поиском способов их эффективного моделирования. Некоторые относятся непосредственно к конкретным алгоритмам и методам, а другие создаются вместе.
Многие рендеры алгоритмы были исследованы, и программное обеспечение, используемое для рендеринга, может использовать ряд различных методов для получения окончательного изображения.
Отслеживание каждой частицы света в сцене почти всегда совершенно непрактично и потребует колоссального количества времени. Даже отслеживание участка, достаточно большого для создания изображения, занимает непомерно много времени, если выборка не ограничена разумно.
Таким образом, появилось несколько рыхлых семейств более эффективных методов моделирования легкого транспорта:
Четвертый тип техники переноса света, излучение, обычно не реализуется как метод рендеринга, а вместо этого рассчитывает прохождение света, когда он покидает источник света и освещает поверхности. Эти поверхности обычно отображаются на дисплее с использованием одного из трех других методов.
Наиболее продвинутое программное обеспечение сочетает в себе два или более методов для получения достаточно хороших результатов по разумной цене.
Другое различие заключается между алгоритмами порядка изображения, которые перебирают пиксели плоскости изображения, и алгоритмами порядка объектов, которые перебирают объекты в сцене. Как правило, порядок объектов более эффективен, поскольку в сцене обычно меньше объектов, чем пикселей.
Высокоуровневое представление изображения обязательно содержит элементы в другом домене, нежели пиксели. Эти элементы называются примитивный с. Например, на схематическом чертеже сегменты линий и кривые могут быть примитивами. В графическом пользовательском интерфейсе окна и кнопки могут быть примитивами. При рендеринге 3D-моделей треугольники и многоугольники в пространстве могут быть примитивами.
Если попиксельный (порядок изображений) подход к рендерингу непрактичен или слишком медленный для некоторой задачи, то подход к рендерингу «примитив за примитивом» (порядок объектов) может оказаться полезным. Здесь один цикл через каждый из примитивов определяет, на какие пиксели изображения он влияет, и соответствующим образом изменяет эти пиксели. Это называется растеризацией и является методом рендеринга, используемым всеми текущими видеокартами.
Растеризация часто выполняется быстрее, чем рендеринг по пикселям. Во-первых, большие области изображения могут не содержать примитивов; растеризация игнорирует эти области, но рендеринг по пикселям должен проходить через них. Во-вторых, растеризация может улучшить когерентность кэша и уменьшить избыточную работу за счет использования того факта, что пиксели, занятые одним примитивом, имеют тенденцию быть смежными в изображении. По этим причинам, когда требуется интерактивный рендеринг, обычно выбирают растеризацию ; однако попиксельный подход часто позволяет получать изображения более высокого качества и является более универсальным, поскольку он не зависит от стольких предположений об изображении, как растеризация.
Более старая форма растеризации характеризуется отображением всего лица (примитива) как одного цвета. В качестве альтернативы растеризация может быть выполнена более сложным способом, сначала визуализируя вершины лица, а затем визуализируя пиксели этой грани как смешение цветов вершин. Эта версия растеризации обогнала старый метод, поскольку он позволяет графике плавно перемещаться без сложных текстур (растеризованное изображение при использовании лицом к лицу имеет тенденцию иметь очень блочный эффект, если не покрыто сложными текстурами; грани не гладкие, потому что нет постепенного изменения цвета от одного примитива к другому). Этот новый метод растеризации использует более сложные функции затенения графической карты и по-прежнему обеспечивает лучшую производительность, поскольку более простые текстуры, хранящиеся в памяти, занимают меньше места. Иногда дизайнеры используют один метод растеризации для одних граней, а другой - для других, в зависимости от угла, под которым эта грань встречается с другими соединенными гранями, тем самым увеличивая скорость и не влияя на общий эффект.
При отбрасывании лучей смоделированная геометрия анализируется пиксель за пикселем, строка за строкой, с точки зрения наружу, как будто лучи отбрасываются наружу. Там, где объект пересекается, значение цвета в точке можно оценить с помощью нескольких методов. В простейшем случае значение цвета объекта в точке пересечения становится значением этого пикселя. Цвет может быть определен из текстуры-карты. Более сложный метод - изменить значение цвета с помощью коэффициента освещенности, но без вычисления отношения к моделированному источнику света. Чтобы уменьшить артефакты, можно усреднить несколько лучей, немного различающихся по направлениям.
Приведение лучей включает в себя вычисление «направления взгляда» (от положения камеры) и постепенное отслеживание этого «отбрасывания лучей» через «твердые трехмерные объекты» в сцене с накоплением результирующего значения из каждой точки в трехмерном пространстве. Это связано и похоже на «трассировку лучей», за исключением того, что трассировка лучей обычно не «отражается» от поверхностей (где «трассировка лучей» указывает, что она отслеживает путь света, включая отражения). «Распространение луча» подразумевает, что луч света следует по прямому пути (который может включать прохождение через полупрозрачные объекты). Приведение лучей - это вектор, который может исходить от камеры или от конечной точки сцены («назад вперед» или «спереди назад»). Иногда конечное значение света получается из «передаточной функции», а иногда используется напрямую.
Дополнительно может быть использовано грубое моделирование оптических свойств: выполняется простой расчет луча от объекта к точке обзора. Другой расчет выполняется для угла падения световых лучей от источника (ов) света, и на основе этого, а также заданных интенсивностей источников света вычисляется значение пикселя. В другом моделировании используется освещение, построенное на основе алгоритма излучения или их комбинации.
Трассировка лучей предназначена для имитации естественного потока света, интерпретируемого как частицы. Часто методы трассировки лучей используются для аппроксимации решения уравнения рендеринга путем применения к нему методов Монте-Карло. Некоторые из наиболее часто используемых методов - это трассировка пути, двунаправленная трассировка пути или перенос света в Метрополисе, но также используются полуреалистичные методы, такие как трассировка лучей в белом стиле или гибриды. Хотя большинство реализаций позволяют свету распространяться по прямым линиям, существуют приложения для моделирования релятивистских эффектов пространства-времени.
При окончательном рендеринге производственного качества работы с трассировкой лучей для каждого пикселя обычно снимается несколько лучей, и они отслеживаются не только до первого объекта пересечения, но, скорее, через ряд последовательных `` отскоков '' с использованием известных законов оптика, такая как «угол падения равен углу отражения» и более продвинутые законы, касающиеся преломления и шероховатости поверхности.
Когда луч либо встречает источник света, либо, что более вероятно, после того, как было оценено установленное ограничивающее количество отскоков, тогда поверхностное освещение в этой конечной точке оценивается с использованием методов, описанных выше, и изменения по пути через различные отскоки оцениваются как оцените значение, наблюдаемое с точки зрения. Все это повторяется для каждого образца, для каждого пикселя.
При трассировке лучей распределения в каждой точке пересечения может быть порождено несколько лучей. Однако при отслеживании пути на каждом пересечении срабатывает только один луч или ни один луч, используя статистический характер экспериментов Монте-Карло.
Как метод грубой силы, трассировка лучей была слишком медленной, чтобы ее можно было рассматривать в реальном времени, и до недавнего времени она была слишком медленной, чтобы рассматривать ее для короткометражных фильмов любого уровня качества, хотя она использовалась для последовательностей спецэффектов и в рекламе., где требуется небольшая порция высококачественного (возможно, даже фотореалистичного ) материала.
Однако усилия по оптимизации для уменьшения количества вычислений, необходимых для частей работы, где детализация невысока или не зависит от функций трассировки лучей, привели к реальной возможности более широкого использования трассировки лучей. В настоящее время имеется оборудование для трассировки лучей с аппаратным ускорением, по крайней мере, на стадии прототипа, а также некоторые демонстрации игр, демонстрирующие использование программного обеспечения в реальном времени или аппаратной трассировки лучей.
Излучение - это метод, который пытается имитировать способ, которым непосредственно освещенные поверхности действуют как непрямые источники света, которые освещают другие поверхности. Это обеспечивает более реалистичное затенение и, кажется, лучше передает « атмосферу » внутренней сцены. Классический пример - это способ, которым тени «обнимают» углы комнаты.
Оптическая основа моделирования заключается в том, что некоторый рассеянный свет из данной точки на данной поверхности отражается в большом спектре направлений и освещает область вокруг себя.
Техника моделирования может различаться по сложности. Многие визуализации имеют очень грубую оценку радиационного излучения, просто очень слабо освещая всю сцену с фактором, известным как окружение. Однако, когда расширенная оценка яркости сочетается с высококачественным алгоритмом трассировки лучей, изображения могут демонстрировать убедительный реализм, особенно для сцен внутри помещений.
В расширенном моделировании радиосигнала рекурсивные алгоритмы конечных элементов «отражают» свет взад и вперед между поверхностями в модели, пока не будет достигнут некоторый предел рекурсии. Таким образом, окраска одной поверхности влияет на окраску соседней поверхности, и наоборот. Результирующие значения освещенности по всей модели (иногда в том числе для пустых пространств) сохраняются и используются в качестве дополнительных входных данных при выполнении расчетов в модели с отливом или трассировкой лучей.
Из-за итеративного / рекурсивного характера этой техники сложные объекты особенно медленно эмулируются. До стандартизации быстрых вычислений радиосветимости некоторые цифровые художники использовали технику, в общих чертах называемую ложным светом, затемняя области текстурных карт, соответствующие углам, стыкам и выемкам, и применяя их через самоосвещение или диффузное отображение для рендеринга строк развертки. Даже сейчас расширенные расчеты излучения могут быть зарезервированы для расчета атмосферы комнаты, исходя из света, отражающегося от стен, пола и потолка, без изучения вклада, который сложные объекты вносят в излучение - или сложные объекты могут быть заменены при вычислении излучения. с более простыми объектами аналогичного размера и текстуры.
Расчеты радиации не зависят от точки обзора, что увеличивает объем вычислений, но делает их полезными для всех точек обзора. Если в сцене происходит небольшая перестановка объектов с радиосъёмностью, одни и те же данные о радиосъёмности можно повторно использовать для нескольких кадров, что делает радиосъёмность эффективным способом улучшить плоскостность приведения лучей без серьёзного влияния на общее время рендеринга для каждого кадра..
Из-за этого радиосигнал является основным компонентом ведущих методов рендеринга в реальном времени и использовался от начала до конца для создания большого количества хорошо известных недавних полнометражных анимационных 3D-мультипликационных фильмов.
Одна из проблем, с которой должна иметь дело любая система рендеринга, независимо от того, какой подход она использует, - это проблема выборки. По сути, процесс визуализации пытается изобразить непрерывную функцию от пространства изображения до цветов с использованием конечного числа пикселей. Как следствие теоремы выборки Найквиста – Шеннона (или теоремы Котельникова), любая отображаемая пространственная форма волны должна состоять как минимум из двух пикселей, что пропорционально разрешению изображения. Проще говоря, это выражает идею о том, что изображение не может отображать детали, пики или впадины в цвете или интенсивности, которые меньше одного пикселя.
Если используется наивный алгоритм рендеринга без какой-либо фильтрации, высокие частоты в функции изображения вызовут уродливое сглаживание в конечном изображении. Наложение обычно проявляется в виде неровностей или неровных краев объектов, на которых видна пиксельная сетка. Чтобы удалить сглаживание, все алгоритмы рендеринга (если они предназначены для создания красивых изображений) должны использовать какой-то фильтр нижних частот для функции изображения для удаления высоких частот, процесс, называемый сглаживанием.
Из-за большого количества вычислений незавершенная работа обычно визуализируется только в деталях, соответствующих той части работы, которая разрабатывается в данный момент времени, поэтому на начальных этапах моделирования могут использоваться каркасные модели и моделирование лучей, даже если целевой выход - это трассировка лучей с лучистостью. Также обычно визуализируют только части сцены с высокой детализацией и удаляют объекты, которые не важны для того, что в настоящее время разрабатывается.
Для реального времени целесообразно упростить одно или несколько общих приближений и настроить точные параметры рассматриваемого ландшафта, который также настраивается на согласованные параметры, чтобы получить максимальную «отдачу от вложенных средств».
Реализация реалистичного рендерера всегда имеет какой-то базовый элемент физического моделирования или эмуляции - некоторые вычисления, которые напоминают реальный физический процесс или абстрагируют его.
Термин « физически основанный » указывает на использование более общих физических моделей и приближений, которые широко применяются вне рендеринга. Определенный набор связанных техник постепенно утвердился в сообществе рендеринга.
Основные концепции довольно просты, но их трудно вычислить; и единый элегантный алгоритм или подход были труднодостижимыми для средств рендеринга более общего назначения. Чтобы удовлетворить требования надежности, точности и практичности, реализация будет представлять собой сложную комбинацию различных методов.
Исследования в области визуализации связаны как с адаптацией научных моделей, так и с их эффективным применением.
Это ключевая академическая / теоретическая концепция рендеринга. Он служит наиболее абстрактным формальным выражением неперцептуального аспекта рендеринга. Все более полные алгоритмы можно рассматривать как решения конкретных формулировок этого уравнения.
Значение: в определенном положении и направлении исходящий свет (L o) представляет собой сумму излучаемого света (L e) и отраженного света. Отраженный свет представляет собой сумму входящего света (L i) со всех направлений, умноженного на отражение от поверхности и угол падения. Соединяя внешний свет с внутренним светом через точку взаимодействия, это уравнение обозначает весь «перенос света» - все движение света - в сцене.
Функция двунаправленного распределения коэффициента отражения (BRDF) выражает простую модель взаимодействия света с поверхностью следующим образом:
Взаимодействие света часто аппроксимируется даже более простыми моделями: диффузное отражение и зеркальное отражение, хотя оба они ТАКЖЕ могут быть BRDF.
Рендеринг практически полностью связан с аспектом физики света, связанным с частицами, известным как геометрическая оптика. Рассмотрение света на его базовом уровне как частиц, отскакивающих вокруг, является упрощением, но подходящим: волновые аспекты света незначительны в большинстве сцен, и их значительно сложнее смоделировать. Известные явления волнового аспекта включают дифракцию (как видно на цветах компакт-дисков и DVD ) и поляризацию (как видно на ЖК-дисплеях ). Оба типа эффектов, если необходимо, создаются путем корректировки модели отражения с учетом внешнего вида.
Хотя ему уделяется меньше внимания, понимание визуального восприятия человека имеет важное значение для рендеринга. Это главным образом связано с тем, что дисплеи изображений и человеческое восприятие имеют ограниченные диапазоны. Средство визуализации может имитировать широкий диапазон яркости и цвета света, но текущие дисплеи - киноэкран, компьютерный монитор и т. Д. - не могут справиться с такими большими объемами, и что-то нужно отбросить или сжать. Человеческое восприятие также имеет пределы, поэтому для создания реализма не нужно давать изображения большого диапазона. Это может помочь решить проблему подгонки изображений к дисплеям и, кроме того, подсказать, какие сокращения можно использовать при моделировании рендеринга, поскольку некоторые тонкости не будут заметны. Связанная с этим тема - отображение тонов.
Математика, используемая при рендеринге, включает: линейную алгебру, исчисление, числовую математику, обработку сигналов и методы Монте-Карло.
Рендеринг для фильмов часто происходит в сети тесно связанных компьютеров, известной как ферма рендеринга.
Текущее состояние в области описания трехмерных изображений для создания фильмов - это язык описания сцены Mental Ray, разработанный на Mental Images и RenderMan Shading Language, разработанный в Pixar (сравните с более простыми трехмерными форматами файлов, такими как VRML, или API, такими как OpenGL и DirectX, адаптированными для аппаратных 3D-ускорителей).
Другие средства визуализации (в том числе проприетарные) могут и иногда используются, но большинство других средств визуализации, как правило, пропускают одну или несколько часто необходимых функций, таких как хорошая фильтрация текстур, кэширование текстур, программируемые шейдеры, высокотехнологичные типы геометрии, такие как волосы, разбиение на части или поверхности с помощью тесселяция по запросу, кэширование геометрии, трассировка лучей с кэшированием геометрии, высококачественное отображение теней, скорость или реализация без патентов. Другие востребованные в наши дни функции могут включать интерактивный фотореалистичный рендеринг (IPR) и аппаратный рендеринг / затенение.