Лекция
Привет, Вы узнаете о том , что такое рендеринг , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое рендеринг , настоятельно рекомендую прочитать все из категории Компьютерная графика.
рендеринг — это процесс создания фотореалистичного или нефотореалистичного изображения из входных данных, таких как 3D-модели . Слово «рендеринг» (в одном из своих значений) изначально означало задачу, выполняемую художником при изображении реальной или воображаемой вещи (готовое произведение искусства также называется « рендеринг »). Сегодня «рендеринг» обычно означает создание изображения или видео из точного описания (часто созданного художником) с помощью компьютерной программы .
Программное приложение или компонент , выполняющий рендеринг, называется движком рендеринга , движком рендеринга , системой рендеринга , графическим движком или просто рендерером .
Различают рендеринг в реальном времени , при котором изображения генерируются и отображаются немедленно (в идеале достаточно быстро, чтобы создать впечатление движения или анимации), и офлайн-рендеринг (иногда называемый предварительным рендерингом ), при котором изображения или кадры фильмов или видео генерируются для последующего просмотра. Офлайн-рендеринг может использовать более медленный и высококачественный рендерер. Интерактивные приложения, такие как игры, должны в первую очередь использовать рендеринг в реальном времени, хотя они могут включать предварительно отрендеренный контент.
Рендеринг может создавать изображения сцен или объектов, определенных с использованием координат в трехмерном пространстве , видимых с определенной точки зрения . Такой трехмерный рендеринг использует знания и идеи из оптики , изучения зрительного восприятия , математики и разработки программного обеспечения , и имеет такие приложения, как видеоигры , симуляторы , визуальные эффекты для фильмов и телевидения, визуализация дизайна и медицинская диагностика . Реалистичный трехмерный рендеринг требует нахождения приближенных решений уравнения рендеринга , которое описывает, как свет распространяется в среде.
Изображение, полученное с помощью POV-Ray 3.6
Архитектурная визуализация, выполненная в нескольких стилях с помощью Blender
Рендеринг в реальном времени использует высокопроизводительные алгоритмы растеризации , которые обрабатывают список фигур и определяют, какие пиксели покрываются каждой фигурой. Когда требуется больше реализма (например, для архитектурной визуализации или визуальных эффектов ), вместо этого используются более медленные алгоритмы попиксельной обработки, такие как трассировка лучей . (Трассировка лучей также может использоваться выборочно во время растрового рендеринга для повышения реалистичности освещения и отражений.) Тип трассировки лучей, называемый трассировкой пути , в настоящее время является наиболее распространенной техникой для фотореалистичного рендеринга. Трассировка пути также популярна для создания высококачественных нефотореалистичных изображений, таких как кадры для 3D-мультфильмов. Как растеризация, так и трассировка лучей могут быть ускорены («ускорены») специально разработанными микропроцессорами, называемыми графическими процессорами .
Алгоритмы растеризации также используются для рендеринга изображений, содержащих только двумерные фигуры, такие как полигоны и текст . Приложения этого типа рендеринга включают цифровую иллюстрацию , графический дизайн , двумерную анимацию , настольные издательские системы и отображение пользовательских интерфейсов .
Исторически рендеринг назывался синтезом изображений , но сегодня этот термин, скорее всего, означает генерацию изображений с помощью искусственного интеллекта . Термин «нейронный рендеринг» иногда используется, когда нейронная сеть является основным средством генерации изображения, но при этом обеспечивается некоторая степень контроля над выходным изображением. Нейронные сети также могут помогать в рендеринге, не заменяя традиционные алгоритмы, например, удаляя шум из изображений с трассировкой пути.
Рендеринг, компьютерная визуализация (от английского слова rendering — визуализация, рисование, представление) — это процесс получения изображения по двухмерной или трехмерной модели (файлу сцены). Слово рендеринг употребляют для обозначения процесса визуализации, выполняемого с помощью программного обеспечения, а рендер - для обозначения готового изображения, то есть как синонимы к словосочетаниям: компьютерная визуализация - компьютерный рендеринг, визуализированный объект - рендер.
На данный момент разработано множество алгоритмов визуализации. Существующее программное обеспечение может использовать одновременно несколько алгоритмов для получения конечного изображения. Наблюдается четкий тренд по реализации алгоритмов рендеринга на аппаратном уровне.
Ключом к теоретическому обоснованию моделей рендеринга служит уравнение рендеринга. Оно является наиболее полным формальным описанием части рендеринга, не относящейся к восприятию конечного изображения. Все модели являются некоторым приближенным решением этого уравнения.
Физической основой уравнения есть закон сохранения энергии. Неформальное толкование таково: количество светового излучения (𝐿𝑜), выходящего из определенной точки в определенном направлении есть собственное излучение и отраженное излучение. Отраженное излучение представляет собой сумму по всем направлениям излучения, поступающего (𝐿𝑖), умноженного на коэффициент отражения с данным углом. Объединяя в одном поступающем уравнении с излучаемым в одной точке, это уравнение формирует описание всего светового потока в заданной системе. Разнообразные алгоритмы компьютерной графики решают это основное уравнение.
Визуализированное изображение можно понять с точки зрения ряда видимых особенностей. Исследования и разработки в области визуализации в значительной степени мотивированы поиском способов их эффективной имитации. Некоторые из них напрямую связаны с определенными алгоритмами и методами, в то время как другие производятся вместе.
Прежде чем визуализировать 3D-сцену или 2D-изображение, их необходимо описать таким образом, чтобы программное обеспечение для визуализации могло их понять. Исторически входными данными для 2D- и 3D-рендеринга обычно были текстовые файлы , которые людям проще редактировать и отлаживать, чем двоичные файлы. Для 3D-графики текстовые форматы в значительной степени вытеснены более эффективными двоичными форматами и API, которые позволяют интерактивным приложениям напрямую взаимодействовать с компонентом визуализации без создания файла на диске (хотя описание сцены обычно все еще создается в памяти перед визуализацией).
Традиционные алгоритмы рендеринга используют геометрические описания 3D-сцен или 2D-изображений. Приложения и алгоритмы, которые визуализируют данные , сканированные из реального мира, или научные симуляции , могут требовать различные типы входных данных.
Формат PostScript (который часто приписывают росту настольных издательских систем ) обеспечивает стандартизированный, совместимый способ описания 2D-графики и макета страницы . Формат масштабируемой векторной графики (SVG) также основан на тексте, а формат PDF использует язык PostScript внутри. Напротив, хотя многие форматы файлов 3D-графики были стандартизированы (включая текстовые форматы, такие как VRML и X3D ), различные приложения для рендеринга обычно используют форматы, адаптированные к их потребностям, и это привело к распространению фирменных и открытых форматов, причем двоичные файлы являются более распространенными.
Описание векторного графического изображения может включать:
Описание геометрической сцены может включать:
Существует множество форматов файлов для хранения отдельных 3D-объектов или « моделей ». Их можно импортировать в большую сцену или загружать по запросу с помощью программного обеспечения для рендеринга или игр. Реалистичная сцена может потребовать сотни предметов, таких как предметы домашнего обихода, транспортные средства и деревья, и 3D-художники часто используют большие библиотеки моделей. В производстве игр эти модели (вместе с другими данными, такими как текстуры, аудиофайлы и анимация) называются « активами ».
Научная и инженерная визуализация часто требует визуализации объемных данных, полученных с помощью 3D-сканирования или моделирования . Возможно, наиболее распространенным источником таких данных являются медицинские КТ и МРТ- сканы, которые необходимо визуализировать для диагностики. Объемные данные могут быть чрезвычайно большими и требуют специализированных форматов данных для их эффективного хранения, особенно если объем разреженный (с пустыми областями, не содержащими данных).
Перед рендерингом наборы уровней для объемных данных могут быть извлечены и преобразованы в сетку треугольников, например, с помощью алгоритма марширующих кубов . Также были разработаны алгоритмы, которые работают напрямую с объемными данными, например, для рендеринга реалистичных изображений того, как свет рассеивается и поглощается облаками и дымом, и этот тип объемного рендеринга широко используется в визуальных эффектах для фильмов. При рендеринге объемных данных с низким разрешением без интерполяции могут быть видны отдельные кубы или « воксели », эффект, который иногда намеренно используется для игровой графики.
Фотографии объектов реального мира можно включить в визуализированную сцену, используя их в качестве текстур для 3D-объектов. Фотографии сцены также можно сшить вместе для создания панорамных изображений или карт окружающей среды , которые позволяют визуализировать сцену очень эффективно, но только с одной точки зрения. Сканирование реальных объектов и сцен с использованием структурированного света или лидара создает облака точек , состоящие из координат миллионов отдельных точек в пространстве, иногда вместе с цветовой информацией. Эти облака точек можно визуализировать напрямую или преобразовать в сетки перед визуализацией. (Примечание: «облако точек» иногда также относится к минималистичному стилю визуализации, который можно использовать для любой 3D-геометрии, аналогично каркасной визуализации.)
Более поздний экспериментальный подход заключается в описании сцен с использованием полей сияния , которые определяют цвет, интенсивность и направление входящего света в каждой точке пространства. (Это концептуально похоже, но не идентично световому полю , записанному голограммой . ) Для любого полезного разрешения объем данных в поле сияния настолько велик, что его непрактично представлять непосредственно как объемные данные, и необходимо найти функцию аппроксимации . Нейронные сети обычно используются для генерации и оценки этих аппроксимаций, иногда с использованием видеокадров или коллекции фотографий сцены, снятых под разными углами, в качестве « обучающих данных ».
Алгоритмы, связанные с нейронными сетями, недавно использовались для поиска приближений сцены в виде 3D-гауссианов . Полученное представление похоже на облако точек , за исключением того, что оно использует нечеткие, частично прозрачные пятна различных размеров и ориентаций вместо точек. Как и в случае с нейронными полями излучения , эти приближения часто генерируются из фотографий или видеокадров.
Результат рендеринга может быть немедленно отображен на экране (много раз в секунду в случае рендеринга в реальном времени, например, в играх) или сохранен в формате файла растровой графики , например JPEG или PNG . Высокопроизводительные приложения рендеринга обычно используют формат файла OpenEXR , который может представлять более тонкие градации цветов и освещение с высоким динамическим диапазоном , позволяя впоследствии применять тональную компрессию или другие корректировки без потери качества.
Быстро отрендеренные анимации можно сохранять непосредственно в виде видеофайлов, но для высококачественного рендеринга отдельные кадры (которые могут быть отрендерены разными компьютерами в кластере или ферме рендеринга и на рендеринг могут уйти часы или даже дни) выводятся в виде отдельных файлов и позже объединяются в видеоклип.
Выходные данные рендерера иногда включают в себя не только значения цвета RGB . Например, спектр может быть выбран с использованием нескольких длин волн света, или может быть включена дополнительная информация, такая как глубина (расстояние от камеры) или материал каждой точки изображения (эти данные могут использоваться во время композитинга или при создании текстурных карт для рендеринга в реальном времени, или использоваться для удаления шума из изображения с трассировкой пути). Может быть включена информация о прозрачности, что позволяет компоновать визуализированные объекты переднего плана с фотографиями или видео. Иногда также полезно сохранять вклады различных источников света или зеркального и рассеянного освещения в виде отдельных каналов, чтобы освещение можно было настроить после рендеринга. Формат OpenEXR позволяет хранить множество каналов данных в одном файле. [
Выбор способа рендеринга 3D-сцены обычно подразумевает компромисс между скоростью, использованием памяти и реализмом (хотя реализм не всегда желателен).Алгоритмы, разработанные на протяжении многих лет, следуют свободной прогрессии, и более продвинутые методы становятся практичными по мере увеличения вычислительной мощности и объема памяти. Для одного конечного изображения можно использовать несколько методов.
Важное различие существует между алгоритмами порядка изображений , которые перебирают пиксели плоскости изображения, и алгоритмами порядка объектов , которые перебирают объекты в сцене. Для простых сцен порядок объектов обычно более эффективен, так как объектов меньше, чем пикселей.
Трассировка каждого луча света в сцене непрактична и занимает неприемлемо долгое время. Даже трассировка малого количества лучей, достаточного для получения изображения, занимает слишком много времени, если не применяется аппроксимация или сэмплирование. Семплирование прием чаще применен в электронной музыке, основывается на разделении трека на повторяющиеся части сэмплы из которых можно создавать новые произведения путем модуляций и повторов.
Сегодня в основном используется четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:
Для некоторых приложений (включая ранние стадии 3D-моделирования ) могут быть уместны упрощенные стили рендеринга, такие как каркасный рендеринг , особенно когда детали материала и поверхности не определены, а известна только форма объекта. Игры и другие приложения реального времени могут использовать более простые и менее реалистичные методы рендеринга в качестве художественного или дизайнерского выбора или для обеспечения высокой частоты кадров при просмотре подробных моделей и сцен.
Ортогональные и изометрические проекции можно использовать для стилизованного эффекта или для того, чтобы гарантировать, что параллельные линии будут изображены как параллельные при визуализации в САПР .
Нефотореалистичный рендеринг (NPR) использует такие методы, как обнаружение краев и постеризация, для создания 3D-изображений, которые напоминают технические иллюстрации, мультф
Метод | Реалистичность | Скорость | Применение |
---|---|---|---|
Трассировка лучей | Высокая | Низкая | Синематика, рендеринг |
Растеризация | Средняя | Высокая | Игры, реальное время |
Гибридный подход | Высокая | Средняя | Современные игры |
Фотонная карта | Высокая | Низкая | Архитектура, дизайн |
Воксельный рендеринг | Средняя | Средняя | Игры, симуляции |
Путь лучей | Очень высокая | Очень низкая | Кино, фотореализм |
Если цель — реалистичность, трассировка лучей или путь лучей предпочтительны. Об этом говорит сайт https://intellect.icu . Для интерактивной графики и высокой производительности лучшим выбором будет растеризация или гибридные методы.
2D векторная графика
Векторные дисплеи 1960-1970-х годов использовали отклонение электронного луча для рисования сегментов линий непосредственно на экране. В настоящее время векторная графика визуализируется с помощью алгоритмов растеризации , которые также поддерживают заполненные формы. В принципе, любой рендерер векторной 2D-графики может использоваться для визуализации 3D-объектов, сначала проецируя их на плоскость 2D-изображения.
3D растеризация
Адаптирует алгоритмы 2D-растеризации, чтобы их можно было использовать более эффективно для 3D-рендеринга, обрабатывая удаление скрытых поверхностей с помощью техник сканлайна или z-буфера . Различные реалистичные или стилизованные эффекты могут быть получены путем окрашивания пикселей, покрытых объектами, разными способами. Поверхности обычно делятся на сетки треугольников перед растеризацией. Растеризация обычно является синонимом рендеринга «порядка объектов» (как описано выше).
Лучевое литье
Использует геометрические формулы для вычисления первого объекта, который пересекает луч . Его можно использовать для реализации рендеринга «порядка изображений» путем проецирования луча для каждого пикселя и поиска соответствующей точки на сцене. Проецирование лучей — это фундаментальная операция, используемая как для графических, так и для неграфических целей, [ например, для определения того, находится ли точка в тени, или проверки того, что видит враг в игре .
Трассировка лучей
Имитирует отскакивающие пути света, вызванные зеркальным отражением и преломлением , требуя различного количества операций луча для каждого пути. Расширенные формы используют методы Монте-Карло для визуализации эффектов, таких как площадные источники света, глубина резкости , размытые отражения и мягкие тени , но вычисление глобального освещения обычно находится в области трассировки пути.
Радиосити
Подход анализа конечных элементов , который разбивает поверхности в сцене на части и оценивает количество света, которое каждая часть получает от источников света или косвенно от других поверхностей. Как только освещенность каждой поверхности известна, сцену можно визуализировать с помощью растеризации или трассировки лучей.
Трассировка пути
Использует интеграцию Монте-Карло с упрощенной формой трассировки лучей, вычисляя среднюю яркость выборки возможных путей, которые может пройти фотон при движении от источника света к камере (для некоторых изображений необходимо отбирать тысячи путей на пиксель ). Он был представлен как статистически беспристрастный способ решения уравнения рендеринга , давая трассировке лучей строгую математическую основу.
Каждый из вышеперечисленных подходов имеет множество вариаций, и есть некоторые совпадения. Трассировка пути может рассматриваться как отдельная техника или особый тип трассировки лучей. , Обратите внимание, что использование терминологии, связанной с трассировкой лучей и трассировкой пути, значительно изменилось с течением времени.
Визуализация фрактального ландшафта с помощью ray marching
Ray marching — это семейство алгоритмов, используемых при ray casting для поиска пересечений между лучом и сложным объектом, таким как объемный набор данных или поверхность, определяемая функцией расстояния со знаком . Это не метод рендеринга сам по себе, но он может быть включен в трассировку лучей и трассировку пути, и используется при растеризации для реализации отражения в пространстве экрана и других эффектов.
Метод, называемый картированием фотонов, отслеживает пути фотонов от источника света до объекта, накапливая данные об освещенности , которые затем используются во время обычной трассировки лучей или трассировки пути. Визуализация сцены с использованием только лучей, трассируемых от источника света до камеры, непрактична, хотя это и более близко к реальности, поскольку необходимо смоделировать огромное количество фотонов, лишь малая часть которых фактически попадает в камеру.
Некоторые авторы называют обычную трассировку лучей «обратной» трассировкой лучей, поскольку она отслеживает пути фотонов в обратном направлении от камеры к источнику света, а следование путям от источника света (как в картировании фотонов) называют «прямой» трассировкой лучей. Однако иногда значение этих терминов меняется на противоположное. Трассировка лучей, начинающихся от источника света, может также называться трассировкой частиц или трассировкой света , что позволяет избежать этой двусмысленности.
Рендеринг в реальном времени, включая графику видеоигр, обычно использует растеризацию, но все чаще сочетает ее с трассировкой лучей и трассировкой пути. Чтобы обеспечить реалистичное глобальное освещение , рендеринг в реальном времени часто полагается на предварительно отрендеренное («запеченное») освещение для неподвижных объектов. Для движущихся объектов он может использовать технику, называемую световыми зондами , в которой освещение записывается путем рендеринга всенаправленных видов сцены в выбранных точках пространства (часто точек на сетке, чтобы упростить интерполяцию ). Они похожи на карты окружения , но обычно используют очень низкое разрешение или приближение, такое как сферические гармоники . (Примечание: Blender использует термин «световые зонды» для более общего класса предварительно записанных данных освещения, включая карты отражения. )
Архитектурная визуализация Чрезвычайно Большого Телескопа 2009 года, вероятно, созданная с использованием комбинации технологий
Термин «растеризация» (в широком смысле) охватывает множество методов, используемых для 2D-рендеринга и 3D-рендеринга в реальном времени . 3D-
продолжение следует...
Часть 1 Рендеринг (компьютерная графика)
Часть 2 Научно-математическая основа Непредвзятая визуализация - Рендеринг (компьютерная графика)
Часть 3 Аппаратное обеспечение - Рендеринг (компьютерная графика)
Исследование, описанное в статье про рендеринг , подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое рендеринг и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерная графика
Комментарии
Оставить комментарий
Компьютерная графика
Термины: Компьютерная графика