Рендеринг: что это, зачем нужно и как работает
Рендеринг — это процесс создания плоского растрового изображения (или последовательности из нескольких таких изображений) на основе 2D- или 3D-данных, а именно — моделей и сцен, созданных автором (художником, моделлером, моушн-дизайнером или др.).
Запустить и реализовать этот процесс позволяет специализированное программное обеспечение — с помощью него происходит преобразование моделей и сцен в плоское изображение. В ходе работы такого ПО производятся сложные вычисления, поэтому для рендеринга нужна мощная и дорогая профессиональная техника. И чем лучше эта техника, тем меньше времени потребуется на создание финальной картинки и тем более качественный результат получится на выходе.
Как в общих чертах происходит 3D-рендеринг? Движок рендера выполняет огромное количество вычислений по заданным алгоритмам. На основе математических данных о сценах и моделях, которые создал в программе автор, поэтапно происходит их обработка и превращение в плоское изображение.
В процессе обработки модели обретают четкие линии, цвета и оттенки, реалистичные тени и отражения, обусловленные физикой и расположением других объектов в сцене. Так, их внешний вид становится завершенным и цельным, каждый пиксель изображения становится доработанным. А художник видит тот результат, который ранее «нарисовал» в своей голове.
После того как картинка готова, её можно по-разному использовать — презентовать, как есть, или встраивать в видеоряд. Зависит от проекта и задачи, ради которой была проведена работа.
Мы в «Видеозайце» с 2013 года занимаемся созданием анимационных видеороликов и 3D-визуализацией. За это время выпустили более 700 видео разного назначения и знаем все тонкости разработки и выпуска рекламных роликов.
Иногда мы получаем правки в видеопрезентацию от заказчиков за 10 минут до начала мероприятия, где нужен этот ролик. Мы их не можем внести сиюминутно, потому что после внесения правок нужен рендеринг. В среднем на него уходит от часа до десяти. А если проект сложный, может потребоваться намного больше времени. Что такое 3D-рендеринг и почему без него не обойтись, рассказываем в нашей статье.
А ещё без рендеринга стало бы невозможным создание видеоигр, мультфильмов и кинофильмов с самой впечатляющей, «живой» и реалистичной графикой. В зависимости от замысла художника создаются модели и сцены в нужной стилистике вплоть до гиперреализма — когда сложно отличить смоделированное на компьютере изображение от фотографии.
Рендеринг используется и в видеопроизводстве. Самая эффектная, запоминающаяся видеореклама, которая вызывает восторг у аудитории и на годы становится визитной карточкой компании-заказчика, создается с помощью мощнейших рендеров (специализированного программного обеспечения) профессиональными 3D-художниками и целыми командами других специалистов.
Что нужно знать для погружения в тему рендеринга
Чтобы получить начальные знания о теме и начать работать в специализированном программном обеспечении, важно разобраться в базовой терминологии, типах и методах рендеринга. Это поможет вам существенно сэкономить время при работе в программах.
Что предшествует рендерингу и на каком этапе работы он нужен
В работе над проектами рендерингу предшествует четыре этапа.
1. Анализ проекта. На данном этапе принимаются решения о рендеринге объекта — нужно ли это и зачем, оправданы ли планируемые ресурсозатраты или без этого можно обойтись. Оправданы они бывают, когда есть цель, недостижимая или сложнодостижимая без помощи рендеринга.
Например, проектирование здания, а также любого сложного продукта, который необходимо визуализировать перед запуском производственного процесса. Или создание видеопрезентации для компании со сложным продуктом / большим количеством направлений деятельности, о которых сложно рассказать за несколько минут. С этой задачей справится только грамотно построенный видеоролик с качественной 3D-графикой и сильным сюжетом.
Для ускорения процесса моделирования объектов используют примитивы. Это готовые упрощенные базовые элементы — геометрические фигуры, формы и типовые соединения, на основе которых получают более сложные модели.
На этапе моделирования художник задает свойства каждому объекту, определяет, какие вершины должны находиться в общей плоскости, а какие — в разных. Создает столько полигонов, сколько нужно для требуемой степени детализации объекта — в зависимости от задачи и замысла. Решает, как и какие текстуры будут наложены, определяет физические свойства (массу, упругость и др.).
Поле моделирования происходит расстановка источников света, виртуальных камер, добавление спецэффектов и создание анимации, если нужно (это отдельная большая тема). Всё это — заготовка, которая после рендеринга превратится в полноценное изображение.
Что значит «рендерить»? На сленге 3D-художников рендерить — значит получать готовое обработанное изображение, когда все настройки рендеринга заданы и остается заключительный этап — непосредственно визуализация. Она происходит в ходе сложных вычислительных процессов.
После всех этих этапов 3D-художник вносит финальные штрихи и показывает результат (или разные варианты результата для сравнения) арт-директору или сразу клиенту, при необходимости вносит правки. Когда все согласовано, конечный вариант сохраняется в выбранном формате.
Какие термины нужно знать начинающему 3D-художнику: методы рендеринга, режимы и не только
Существует два режима рендеринга.
Рендеринг в реальном времени (Real-time Rendering). Используется в основном в интерактивной и игровой графике, где изображения обрабатываются с высокой скоростью и моментально появляются на дисплее в виде законченной картинки.
Минимальная скорость обработки в таких случаях составляет 25 кадров в секунду, средняя — 60, превосходная — 120. При показателе ниже 25 кадров в секунду кадры сменяются настолько медленно, что пользователь обращает на это внимание. Играть в игру становится некомфортно.
При рендеринге в реальном времени большая нагрузка ложится на видеокарту (благодаря этому вычислительные мощности железа разгружаются и могут быть задействованы в других задачах). Чем лучше характеристики видеокарты, тем выше скорость рендеринга и тем более сложные с точки зрения графики игры тянет железо.
Предварительный рендеринг (Prerendering). Используется, когда детализированность и реалистичность картинки — в приоритете, а потребность в высокой скорости обработки не так важна. Так бывает, когда речь идет о разработке сложных графических моделей и сцен. Это актуально при создании мультфильмов, рекламных 3D-видеороликов и спецэффектов в кино.
Говоря о 3D-рендеринге в целом, обычно подразумевают именно предварительный рендеринг.
К слову, на рендеринг одного кадра анимационного фильма Pixar уходит час работы их рендер-фермы. Это при условии, что у Пиксара мощнейшие рендер-фермы в мире. Только представьте, сколько времени уходит на создание графики для целого такого фильма!
При предварительном рендеринге, как правило, вычисления ложатся уже не на видеокарту, а на центральный процессор (или процессоры). На скорость влияют его характеристики — микроархитектура, частота, количество ядер, объемы кэш-памяти и др.
С точки зрения особенностей обработки графики выделяют два типа рендеринга.
Однопоточный рендеринг — это когда вычисления производятся синхронно в единственном потоке. Подходит для создания простых сцен с невысокой степенью реалистичности.
Многопоточный рендеринг — это когда вычисления производятся в нескольких потоках отдельно. Например, в один проход обрабатываются только тени, в другой — только отражения, а в третий — только цвета. Затем всё это объединяется в специализированном ПО и при необходимости корректируется послойно (напоминает работу в Photoshop). Такой рендеринг используется при создании сцен с высокой степенью детализации и реалистичности объектов.
Перед рассмотрением методов рендеринга раскроем термин Растеризация.
Растеризация — процесс, в ходе которого векторное описание объекта преобразуется в растровое. Каждая модель на сцене состоит из векторных (описанных математически) объектов: треугольников, кривых, поверхностей высших порядков и др. При рендеринге происходит преобразование векторного изображения в пиксели картинки. Результат выводится на экран и/или записывается в файл на диске.
Теперь рассмотрим методы рендеринга.
Скайнлайн (Scanline) — это разновидность растеризации и алгоритм для определения видимой поверхности. Вместо того, чтобы сканировать по пикселям или по полигонам, он сканирует объект построчно. Сканирующая строка идет сверху вниз и определяет, какие примитивы она пересекает или не пересекает, транслирует в рабочую память только координаты пересекаемых вершин.
Фигуры в изображении анализируются по пикселям или по строкам. В процессе определяется не только видимое и невидимое с точки обзора, но и цвета пикселей.
Radiosity создает реалистичное затенение, имитирующее рассеивание света в реальных сценах. Рассеянный свет из определенной точки на определенной поверхности отражается в широком спектре и освещает визуализированное пространство. В сочетании с Ray Tracing (об этом методе расскажем дальше) позволяет добиться очень высокой реалистичности.
При рендеринге в реальном времени, создании видеоигр и мультфильмов, Radiosity пользуется популярностью. Сложные для отражения света объекты в ходе обработки могут быть заменены на более простые, схожие по размеру и текстуре — тем самым ускоряется обработка целого изображения.
Кроме того, данные, полученные при имитации рассеянного света методом Radiosity, сохраняются и могут быть скопированы с одного кадра на другой, и общее время рендеринга сокращается.
Трассировка лучей (Ray Tracing) — это симуляция лучей света, того, какой путь они проходят, куда падают и как отражаются, преломляются, как образуются тени, какие поверхности остаются видимыми, а какие — становятся невидимыми.
По сути происходит имитация встречи направленного луча с поверхностями в сцене. В конечном итоге, после всех настроек и вычислений, каждый пиксель меняет цвет в зависимости от своего местоположения на сцене. Это ресурсозатратный и длительный процесс, который позволяет получить очень качественный результат и добиться максимальной фотореалистичности.
Как это работает? Луч встречается с объектом, поверхностью и распадается еще на три — отражающийся, теневой и преломленный. В зависимости от количества направленных лучей и лучей, образовавшихся после расчета их пути, определяется глубина трассировки. От этого параметра зависит, насколько фотореалистичной будет готовая картинка после визуализации.
Важно понимать, что на маломощной технике реализовать этот процесс в полной мере не получится. Если мы говорим о рендеринге в реальном времени, проведение таких вычислений затруднительно, поскольку оно не может происходить быстро.
Красивые короткие вставки с игрой света, вызывающей у зрителя восторг, в видеоиграх, спецэффекты со светом в рекламе и 3D-мультиках и фильмах — результат грамотного применения трассировки лучей.
Решения по оптимизации вычислительных процессов на данный момент в процессе разработки и тестирования. В ближайшем будущем, благодаря росту производительности видеокарт, Ray Tracing получится применять более широко.
Карта глубины (Depth-map) — это изображение, в котором вместо информации о цвете пикселя цвета хранится информация о расстоянии от поверхности каждого объекта до виртуальной камеры и выбранной точки обзора.
Добавьте непредсказуемости при моделировании сцен. Вращайте, масштабируйте, располагайте объекты так, чтобы они располагались по-разному, а не стояли подозрительно на одинаковом друг от друга расстоянии и в одинаковом положении относительно виртуальной камеры. Экспериментируйте с шумами, тенями, оттенками, мягким и грубым выделением линий, и зритель вам поверит.
Непредсказуемость важна даже при моделировании интерьеров. Посмотрите, как по-разному расположены объекты в этом видео:
Добавьте немного тумана для создания особой атмосферы. Это не только сделает сцену более реалистичной, но и поможет усилить композицию в целом. Уменьшение контрастности фона создает ощущение глубины. Но и здесь важно знать меру. Например, если добавить толстый слой тумана к солнечному полудню, эффект будет прямо противоположным.
Расставляйте блики. Фотографы стараются избегать их, но в 3D, при умеренном использовании они делают сцену реалистичнее. И обратно, избыточное количество бликов буквально укажет на то, что сцена вымышленная. Опять же, лучшей подсказкой в этом случае послужит окружающий мир.
Не забывайте о масштабировании и пропорциях. В противном случае даже самая графически сложная сцена будет выглядеть фальшивой. Вот некоторые ориентиры, которые могут быть полезны новичкам:
- стандартная длина автомобиля — 450 см;
- высота этажа здания — около 300 см;
- высота от пола до потолка — 240 см;
- человек — 163 см (женщины) и 176,5 см (мужчины);
- высота кухонной стойки — 90 см;
- высота письменного или обеденного стола — 74 см;
- кирпич — 22,5 х 7,5 см.
Черпайте вдохновение в фотографиях. Это будет полезно на протяжении всего процесса визуализации. Фотопортреты и пейзажи помогут создать в вашей сцене правильное настроение, усилить композицию, выбрать правильные цветовые решения, а также отразить текстуры и реалистичное освещение.
Уделяйте достаточно внимания фону. Фон задает общее настроение в сцене, поэтому важно сделать его максимально близким к реальности, гармоничным и в целом приятным глазу.
Вот несколько советов, которые следует учитывать при создании фона:
- избегайте перенасыщенных и неестественных цветов;
- не перегружайте небо дополнительными элементами;
- учитывайте направление солнечного света;
- ищите правильную перспективу;
- не бойтесь упрощать.
Отражайте детали реального мира. В жизни поверхности почти не бывают полностью пустыми. Осмотретесь и попытайтесь найти, какие детали, которые существуют в реальном мире, не отражены в ваших сценах. Розетки? Сухие листья на земле? Клумбы с цветами? Таких вещей может быть очень много.
Clarisse
Это продвинутое программное обеспечение было выбрано при создании фильма «Звездные войны». Отличное решение для профессионального использования, в том числе в студиях. Позволяет ускорить процесс визуализации за счет того, что создание, отображение и освещение сцен происходит прямо из библиотеки.
Аппаратным средством в случае данной программы может выступать как CPU (вычисления ложатся на процессор), так и GPU (вычисления ложатся на видеокарту).
Используется только автономно (не является плагином для программ по 3D-моделированию).
Операционные системы: MacOS, Windows, Linux
Цена: от 59$ в месяц, есть пробный период.
Enscape
Этот софт разработан для рендеринга в реальном времени и используется чаще всего в архитектурном деле, когда специалисту нужно продемонстрировать свою работу в виде VR-презентации. Позволяет добиваться высокой реалистичности, при этом есть такие режимы, как эскиз, полистирол и бумага. В процессе проектирования с этим ПО возможно мгновенно проверить, как отображаются внесенные в проект изменения.
Вычисления в случае данного софта ложатся на видеокарту (GPU Rendering).
Используется как плагин для профессиональных программ по 3D-моделированию, популярных среди архитекторов — это ArchiCAD, Revit, Rhino, SketchUp.
Операционные системы: Windows
Цена: от 69$ в месяц, есть пробный период.
Guerilla Render
Эта программа позволяет создавать фотореалистичные кадры, красивое рассеивание света и просматривать предварительный результат перед отправкой кадра на рендеринг и работать с картинкой послойно.
… А ещё для свободных художников, студентов и фрилансеров данный софт полностью бесплатный!
Вычисления в процессе рендеринга ложатся на процессор (CPU Rendering).
Используется как плагин для Maya.
Операционные системы: Linux и Windows
Цена: от 280€.
Iray
В этом программном обеспечении рендерить могут даже новички, которые только входят в тему и знакомятся с основными методами визуализации. Также софт подходит для дизайнеров, которые работают в стиле фотореализма и хотят соблюсти баланс между качеством и ценами.
Изначально ПО разработано для рендеринга в реальном времени, при этом включает в себя функционал для настроек света, его источников, поверхностного рассеивания, отражения, при этом физика процессов сохраняется.
Софт разработан для графических карт NVidia, вычисления ложатся на видеокарту (GPU Rendering). Очень прост в использовании.
Используется как плагин для самых популярных решений по 3D-моделированию — 3ds Max, Maya, Cinema 4D и Rhinoceros.
Операционные системы: Windows и MacOS
Цена: от 295$ в год.
LuxRender
OpenSource-программа для рендеринга. Несмотря на то, что это решение бесплатное, по функционалу софт может конкурировать с коммерческими решениями. Позволяет добиться высокой фотореалистичности сцен, при этом сократить время рендеринга (при выборе определенного режима). Внутри множество спецэффектов для настройки света и не только.
Вычисления ложатся на видеокарту (GPU Rendering).
Используется как плагин для многих известных программ по 3D-моделированию, среди них 3ds Max, Cinema 4D, DAZ Studio, Maya, Blender, Poser и др.
Операционные системы: MacOS, Windows, Linux
Цена: бесплатно.
Marmoset Toolbag
Это топовый и мощнейший инструмент для разработчиков игр и всех,кому эта сфера интересна. Интегрируется с движками Unreal Engine и Unity. Преимущества данного ПО — возможность создать высокореалистичные текстуры и анимацию с высокой производительностью, при этом наблюдая промежуточные результаты в отдельном окне для предпросмотра.
Еще с этим софтом 3D-художник может оформить портфолио таким образом, чтобы графически сложные проекты могли просматривать пользователи с обычных браузеров, при этом не испытывая проблем с загрузкой.
Вычисления ложатся на видеокарту (GPU Rendering).
Используется только как автономный инструмент, не подключается в качестве плагина.
Операционные системы: MacOS, Windows
Цена: от 189$.
V-Ray
Одна из лучших программ для 3D-рендеринга, которая при высокой скорости обработки позволяет добиться превосходных результатов. Подходит и новичкам,и опытным 3D-художникам. Функционал очень широкий, но определённо стоит изучения для тех, кто увлечен работой с 3D-графикой.
Вычисления могут ложиться как на процессор, так и видеокарту.
Используется как плагин для множества программ по 3D-моделированию, среди которых 3ds Max, Cinema 4D, Blender и Maya.
Операционные системы: MacOS, Windows, Linux
Цена: от 750$.
Программы для 3D-моделирования со встроенными рендерами
Autodesk Maya
Это один из самых мощных софтов в 3D-моделировании и стандарт индустрии. Подходит для всех, кто занимается или хочет профессионально заниматься созданием мультиков, кинофильмов, а также игр с высокой степенью точности и реалистичности изображения объектов, особенно персонажной анимацией. Внутри есть огромное количество инструментов по обработке цвета, света, текстур и т. д.
Операционные системы: Windows, Linux и MacOS
Цена: от 79 214 рублей ежегодно, есть пробная бесплатная версия.
Знайте свои инструменты и будьте наблюдательны. Наличие доступных спецэффектов не означает, что вы должны использовать их все сразу. Неправильное и неуместное применение эффектов или фильтров, например, зернистости и глубины резкости — типичная ошибка новичков. Смотрите на пространства и объекты в мире вокруг вас и обращайте внимание на их поверхности, текстуры, когда моделируете. Старайтесь передать то, что видите, а не накручивайте лишнее.
Уменьшите количество полигонов. Работайте над тем, чтобы используя меньшее количество полигонов сохранять геометрию модели. Например, если есть части, которые не будут видны после рендеринга из-за угла наклона камеры, или если есть объекты / части объектов, которые находятся далеко от виртуальной камеры, вы можете скрыть их или использовать низкий уровень детализации.
LOD (на языке 3D-художников — LOD, от англ. level of details) позволяет отобразить одни и те же объекты двумя способами — с низкой детализацией (для заднего плана) или высокой детализацией (для крупного плана).
Если нам не нужно слишком реалистичное изображение, и оборудование, которое в нашем распоряжении, не позволяет такое изображение получить, можно ограничиться небольшим количеством многоугольников при моделировании персонажей (низкополигональное моделирование). Это сделает уровень детализации ниже, зато процессор не будет зависать.
Пример такого low-poly ролика из нашего портфеля:
Уменьшите количество объектов в сцене. Чем больше у вас объектов в каждой сцене, тем больше у вас спецэффектов и источников света и тем больше времени и вычислительных мощностей требуется для создания одного кадра. Поэтому не увлекайтесь. Изобразите 20 деревьев вместо 50, увеличьте размер каждого, и вы уже сэкономите время при рендеринге.
Что такое рендер-ферма и рендер-станция и зачем они нужны
Рендер-станция представляет собой технику, которую используют при работе с программами по 3D-моделированию, рендерами и графическими редакторами. Такая машина оснащена мощным процессором и видеокартой и позволяет добиться высокой скорости вычислений. Подходит фотографам, дизайнерам, архитекторам и всем, кто профессионально работает с графикой и видео.
Рендер-ферма представляет собой множество компьютеров, которые объединены в общие сети (узлы) и используются для ускоренной обработки графических данных при рендеринге. Количество компьютеров в таких сетях может исчисляться в тысячах. Рендер-фермы позволяют добиться максимальной производительности за счёт объединения мощностей, вычислительных возможностей большого количества техники одновременно.
Есть два типа рендер-ферм: для частного (собственного) и коммерческого использования. Частные рендер-фермы обычно используют фрилансеры и небольшие студии, когда выпускают собственные фильмы и видеоролики для разных целей и задач. В их случае это позволяет существенно ускорить рабочие процессы, а также обрабатывать сложную графику, достигая впечатляющих результатов. Доступ к таким рендер-фермам распространяется только на одно лицо или организацию.
Рендер-фермы для коммерческого использования доступны всем желающим, которым нужно получить готовые обработанные кадры без необходимости оборудовать свою рендер-ферму и закупать для нее дорогую мощную технику. В силу особенностей, такие фермы уместны при рендеринге видео (анимации), но не статичных изображений.
Их использование стоит недешево: в цену входит обслуживание, ремонт и замена оборудования, поддержание функционирования систем охлаждения, расходы на электричество, а также программное обеспечение.
Цены зависят от того, какие ресурсы задействованы в работе. В этом отношении выделяют CPU Rendering (когда при вычислениях задействован процессор и оперативная память) и GPU Rendering (когда вычислительные мощности ложатся на видеокарту).
Чек-лист: что нужно новичку, чтобы начать заниматься 3D-рендерингом
Чтобы вам было проще ориентироваться в теме рендеринга и понять, чему уделить внимание на практике в первую очередь, мы составили чек-лист — в нем самое важное из этой подробной статьи.
Итак, если вы хотите самостоятельно заниматься рендерингом:
- Познакомьтесь с особенностями процесса. Что предшествует рендерингу, на каком этапе к работе подключаются программы для рендеринга, что важно помнить непосредственно при настройках рендеринга, чтобы добиться высокой реалистичности и детализированности изображения и т. д.
- Изучите основные термины. Это методы и типы рендеринга, особенности процесса, функционал рендеров, необходимый для создания большинства сцен.
3D-рендеринг — технически сложный процесс, который требует наличия мощного оборудования. Чтобы осуществить его и получить желаемый результат в виде изображения или серии изображений, нужно приложить очень много усилий и времени получению базовых знаний и освоению навыков.
На то чтобы стать профессионалом, могут уйти годы. И это оправдано только тогда, когда человек действительно увлечен темой 3D, и его не пугает техническая сторона вопроса.
Если же вам нужно оперативно получить качественный результат, например, готовую видеопрезентацию или рекламный ролик, или показать изнутри сложные технические процессы, намного проще, дешевле и быстрее доверить работу профессионалам. Например, нам
Будем рады, если статья оказалась полезной. Напишите в комменты, какие рендеры используете вы и почему? Интересно почитать опыт коллег по цеху.
Что такое рендеринг? И что такое рендер? Словарь разработчиков компьютерных игр!
В продолжении ликбеза по компьютерной графике как для программистов, так и для художников хочу поговорить о том что такое рендеринг. Вопрос не так сложен как кажется, под катом подробное и доступное объяснение!
Я начал писать статьи, которые являются ликбезом для разработчика игр. И поторопился, написав статью про шейдеры, не рассказав что же такое рендеринг. Поэтому эта статья будет приквелом к введению в шейдеры и отправным пунктом в нашем ликбезе.
Что такое рендеринг? (для программистов)
Итак, Википедия дает такое определение: Ре́ндеринг (англ. rendering — «визуализация») — термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.
Довольно неплохое определение, продолжим с ним. Рендеринг – это визуализация. В компьютерной графике и 3д-художники и программисты под рендерингом понимают создание плоской картинки — цифрового растрового изображения из 3д сцены.
То есть, неформальный ответ на наш вопрос “Что такое рендеринг?” – это получение 2д картинки (на экране или в файле не важно). А компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).
Рендер
В свою очередь словом “рендер” называют чаще всего результат рендеринга. Но иногда и процесс называют так же (просто в английском глагол – render перенесся в русский, он короче и удобнее). Вы, наверняка, встречали различные картинки в интернете, с подписью “Угадай рендер или фото?”. Имеется ввиду это 3D-визуализация или реальная фотография (уж настолько компьютерная графика продвинулась, что порой и не разберешься).
Виды рендеринга
В зависимости от возможности сделать вычисления параллельными существуют:
- многопоточный рендеринг – вычисления выполняются параллельно в несколько потоков, на нескольких ядрах процессора,
- однопоточный рендеринг – в этом случае вычисления выполняются в одном потоке синхронно.
Существует много алгоритмов рендеринга, но все их можно разделить на две группы по принципу получения изображения: растеризация 3д моделей и трасировка лучей. Оба способа используются в видеоиграх. Но трасировка лучей чаще используется не для получения изображений в режиме реального времени, а для подготовки так называемых лайтмапов – световых карт, которые предрасчитываются во время разработки, а после результаты предрасчета используются во время выполнения.
В чем суть методов? Как работает растеризация и трасировка лучей? Начнем с растеризация.
Растеризация полигональной модели
Сцена состоит из моделей, расположенных на ней. В свою очередь каждая модель состоит из примитивов.
Это могут быть точки, отрезки, треугольники и некоторые другие примитивы, такие как квады например. Но если мы рендерим не точки и не отрезки, любые примитивы превращаются в треугольники.
Задача растеризатора (программа, которая выполняет растеризацию) получить из этих примитивов пиксели результирующего изображения. Растеризация в разрезе графического пайплайна, происходит после вершинного шейдера и до фрагментного (Статья про шейдеры).
*возможно следующей статьёй будет обещанный мной разбор графического пайплайна, напишите в комментариях нужен ли такой разбор, мне будет приятно и полезно узнать скольким людям интересно это всё. Я сделал отдельную страничку где есть список разобранных тем и будущих – Для разработчиков игр
В случае с отрезком нужно получить пиксели линии соединяющей две точки, в случае с треугольником пиксели которые внутри него. Для первой задачи применяется алгоритм Брезенхема, для второй может применяться алгоритм заметания прямыми или проверки барицентрических координат.
Сложная модель персонажа состоит из мельчайших треугольников и растеризатор генерирует из неё вполне достоверную картинку. Почему тогда заморачиваться с трассировкой лучей? Почему не растеризовать и все? А смысл вот в чем, растеризатор знает только своё рутинное дело, треугольники – в пиксели. Он ничего не знает об объектах рядом с треугольником.
А это значит что все физические процессы которые происходят в реальном мире он учесть не в состоянии. Эти процессы прямым образом влияют на изображение. Отражения, рефлексы, тени, подповерхностное рассеивание и так далее! Все без чего мы будем видеть просто пластмассовые модельки в вакууме…
А игроки хотят графоний! Игрокам нужен фотореализм!
И приходится графическим программистам изобретать различные техники, чтобы достичь близости к фотореализму. Для этого шейдерные программы используют текстуры, в которых предрассчитаны разные данные света, отражения, теней и подповерхностного рассеивания.
В свою очередь трассировка лучей позволяет рассчитать эти данные, но ценой большего времени рассчета, которое не может быть произведено во время выполнения. Рассмотрим, что из себя представляет этот метод.
Трасировка лучей (англ. ray tracing)
Помните о корпускулярно волновом дуализме? Напомню в чем суть: свет ведёт себя и как волны и как поток частиц – фотонов. Так вот трассировка (от англ “trace” прослеживать путь), это симуляция лучей света, грубо говоря. Но трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время.
Мы ограничимся относительно малым количеством, и будем трассировать лучи по нужным нам направлениям.
А какие направления нам нужны? Нам надо определять какие цвета будут иметь пиксели в результирующей картинке. Тоесть количество лучей мы знаем, оно равно количеству пикселей в изображении.
Что с направлением? Все просто, мы будем трассировать лучи в соответствии с точкой наблюдения (то как наша виртуальная камера направлена). Луч встретится в какой-то точке с объектом сцены (если не встретится, значит там темный пиксель или пиксель неба из скайбокса, например).
При встрече с объектом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.
Рендеринг для художников
Но рендеринг это не только программная визуализация! Хитрые художники тоже используют его. Так что такое рендеринг с точки зрения художника? Примерно то же самое, что и для программистов, только концепт-художники выполняют его сами. Руками. Точно так же как рендерер в видео-игре или V-ray в Maya художники учитывают освещение, подповерхностное рассеивание, туман и др. факторы, влияющие на конечный цвет поверхности.
К примеру картинка выше, поэтапно прорабатывается таким образом: Грубый скетч – Лайн – Цвет – Объем – Рендер материалов.
Рендер материалов включает в себя текстурирование, проработку бликов – металлы, например, чаще всего очень гладкие поверхности, которые имеют четкие блики на гранях. Помимо всего этого художники сталкиваются с растеризацией векторной графики, это примерно то же самое, что и растеризация 3д-модели.
Растеризация векторной графики
Суть примерно такая же, есть данные 2д кривых, это те контуры, которыми заданы объекты. У нас есть конечное растровое изображение и растеризатор переводит данные кривых в пиксели. После этого у нас нет возможности масштабировать картинку без потери качества.
Читайте дальше
Статьи из рубрики “Ликбез для начинающих разработчиков игр“, скорее всего окажутся очень для Вас полезными, позвольте-с отрекомендовать:
- Что такое шейдеры? – простое объяснение сложных и страшных шейдеров
- Партиклы — система частиц – Полезный обзор частиц и подборка видео-уроков, по созданию спецэффектов в Unity3d
Послесловие
В этой статье, я надеюсь, вы осили столько букв, вы получили представление о том, что такое рендеринг, какие виды рендеринга существуют. Если какие-то вопросы остались – смело задавайте их в комментариях, я обязательно отвечу. Буду благодарен за уточнения и указания на какие-то неточности и ошибки.
Понравилась статья? Поделиться с друзьями:
Время от времени пишет статьи о разработке игр и проводит интервью с разработчиками. Сейчас работает engine-progremmer’ом в Larian Studios. Большой поклонник игр Naughty Dog.
Помечаю для себя, что еще не рассказано: Forward/Deferred Rendering, хочу сделать обзор Unity 2017, там будет новая фича с возможностью модификации rendering-цикла на C#, очень интересная тема, кмк. Попытаюсь распросить опытных коллег, что они об этом думают 🙂
Добрый день, подскажите пожалуйста какую книгу почитать по паттернам и по разбору чего то как SOLID. Спасибо)
Привет, немного не о рендеринге вопрос 🙂
По Паттернам даже и не знаю что посоветовать, наверное Head first Patterns, потому что оригинал от банды четырёх читать сильно сложнее. А про SOLID – в принципе все на википедии написано, но понимание их приходит с опытом, кмк.
Спасибо, да просто читал статью и решил спросить)
Думал что может еще что то есть о паттернах интересное, а эти 2 книги я уже скачал для изучения)
Что такое рендеринг видео
5.0 Оценок: 3 (Ваша: )
После обработки клипа необходимо выполнить рендеринг. Это требуется для получения итогового ролика из объединенных фрагментов, а затем публикации материала в социальных сетях или просмотра файла на компьютере. Далее вы можете ознакомиться с тем, как сделать видео рендер в специальной программе для монтажа видео.
Рендеринг видео: определение
Стандартно термин «рендеринг» употребляется для обозначения процесса, который позволяет создать трехмерное изображение из модели. Обычно он выполняется в специальном софте для визуализации, например, 3D’s Max. Если же вы работаете с видеофайлами, то вам также необходимо отрендерить ролик после его создания.
Рендеринг видеодорожки — это процесс, в котором фрагменты на временной шкале объединяются в окончательный единый материал. Происходит склеивание всех клипов, аудиодорожек, изображений, надписей и т.д. Файл без преобразования отличался большим размером, который было бы сложно воспроизводить на слабом ПК или загружать в сеть.
Элементы на временной шкале будут объединены в один ролик
Что влияет на рендеринг видео
От чего зависит скорость рендеринга видео? Чем сложнее проект и больше размер файла, тем более продолжительное время займет преобразование. Также на длительность обработки влияют:
- Объем оперативной памяти. Ваше оборудование должно соответствовать рекомендуемым требованиям программного обеспечения, которое вы используете для видеомонтажа.
- Параметры экспорта. Скорость сохранения зависит от разрешения, частоты кадров в секунду и выходного формата.
- Продолжительность видеодорожки. Если вы можете ее сократить, то удалите лишние моменты для ускорения вывода.
- Другие приложения. Закройте весь софт, который может снижать производительность системы.
Также на длительность влияет мощность ПК
Как поставить видео на рендер в программе ВидеоМОНТАЖ
Для монтажа и коррекции видеофайлов воспользуйтесь удобной программой ВидеоМОНТАЖ. Она позволит разделить и нарезать видеоклип, склеить несколько фрагментов, применить эффекты, создать красивые титры и наложить аудиодорожку.
Для экспорта видеоредактор предлагает готовые предустановки: вы сможете оформить ролик для просмотра на компьютере, смартфоне или загрузки в соцсети. Также вам будет доступна ручная настройка разрешения, качества и величины документа.
Чтобы обработать видеоматериал и сохранить его ПК, скачайте приложение с нашего сайта. Затем оформите проект с помощью конструктора или с нуля. Для вывода данных необходимо сделать два действия:
Выберите готовую предустановку
Для экспорта нажмите на кнопку «Сохранить», расположенную под окном предварительного просмотра.
Приложение содержит различные профили вывода:
- Подготовка материала в формате AVI для просмотра на компьютере или отправки по электронной почте.
- Запись видеоклипа на DVD-диск или создание ISO-образа.
- Создание видеоролика в HD-качестве. Автоматически установлен формат MP4.
- Адаптация файла для воспроизведения на мобильных устройствах. Выберите модель смартфона, планшета и т.д.
- Подготовка данных для публикации на сайтах. В списке доступны следующие платформы: Ютуб, ВК и другие.
- Экспорт в любом популярном видеоформате: MKV, WMV, ASF, MOV и прочих.
Произведите ручную настройку
Настройка параметров позволит ускорить обработку и изменить качество видеоряда:
- Кодек. Предложено несколько вариантов. Самый популярный — H.264. Он подходит для большинства устройств и сайтов.
- Размер кадра. Чем меньше разрешение, тем ниже величина документа. Если вы планируете смотреть видеофайл на маленьком экране, то можно уменьшить значение до 852х480.
- Качество. Настройка данного параметры уменьшит размер файла, но при это снижает детализацию и четкость видеоряда.
- Частота кадров. Стандартное значение — 30 кадр./сек. Если вы преобразуете запись игры, то можно установить 60.
После завершения коррекции сохраните данные и укажите папку
Заключение
Теперь вы знаете, как произвести и ускорить рендер видео в программе для обработки видео. Благодаря процессу происходит объединение всех фрагментов и оформление итогового видеоролика. Создать впечатляющий клип можно в редакторе ВидеоМОНТАЖ. Он позволит применить видеоэффекты, заменить фон, добавить титры и аудиотреки. Для настройки процесса вы сможете изменить формат, кодек, разрешение и частоту кадров. Загрузите софт и приступите к редактированию!
Подпишитесь:
Cохраните себе статью, чтобы не потерять:
Какие факторы влияют на время рендеринга видео – понимание процесса
Сколько времени занимает рендеринг видео? Хотя, по своей природе, это несколько открытый вопрос, я сделаю всё возможное, чтобы дать ответ в этой статье, помогая вам понять каждый шаг процесса рендеринга видео и то, как различные части вашего оборудования влияют на эти шаги.
Я буду включать эталонные тесты, чтобы проиллюстрировать свои мысли, а также места, где можно получить рекомендации по оборудованию, если они вам понадобятся позже – к концу у вас должен быть хороший ответ о том, сколько времени требуется для рендеринга видео.
Время рендеринга видео: понимание процесса
Во-первых, давайте начнём с обзора процесса рендеринга видео и нескольких факторов, которые необходимо принять во внимание, прежде чем начать рендеринг.
Перед рендерингом: качество кадра и параметры рендеринга
Качество отснятого материала, который вы используете, окажет ощутимое влияние на время окончательного рендеринга и, вероятно, на производительность редактирования.
1080p имеет примерно четверть количества пикселей по сравнению с 4K, и отсюда вы можете сделать довольно простое предположение, что 4K, в среднем, будет занимать примерно в четыре раза больше времени для рендеринга, чем 1080p. 1440p находится где-то посередине.
Для тестов, которые я буду использовать сегодня, я буду придерживаться 1080p, так как это наиболее распространенное целевое разрешение для контента, загружаемого через Интернет сегодня.
Но, если вы выполняете рендеринг с более высоким разрешением, будьте осторожны, так как это может оказать огромное влияние на время окончательного рендеринга (и размер конечного видеофайла).
Вы также можете встретить варианты рендеринга, такие как двухпроходный рендеринг, который может ещё больше увеличить конечное время рендеринга. Двухпроходный рендеринг работает путём эффективного рендеринга видео дважды, что, очевидно, удваивает конечное время рендеринга.
Тем не менее, оно определенно того стоит, так как первый проход используется для анализа контента и битрейта, а второй используется для более эффективного создания более чистого и чёткого рендеринга в соответствии с информацией первого прохода.
Что ж, давайте теперь перейдём к процессу рендеринга и поговорим о том, как каждый шаг нагружает различные части вашего оборудования.
Вот из каких шагов состоит типичный процесс рендеринга видео:
- Чтение отснятого материала
- Декодирование отснятого материала
- Альтернативные кадры / добавленные эффекты
- Сжатие кадров
- Сохранение в окончательный выходной файл
Чтение отснятого материала
Декодирование отснятого материала
Теперь, когда ваши кадры прочитаны, пришло время их расшифровать. Как правило, за это отвечает ваш ЦП, но вы также можете ускорить декодирование отснятого материала с помощью графического процессора. Для простого рендеринга с минимальными эффектами или без них окончательное время рендеринга сводится только к элементам, изученным до сих пор: качество / вес кадра, скорость хранения и объём ОЗУ, – всё ограничено пропускной способностью вашего процессора. На достаточно мощной системе (AMD Ryzen 9 5900X и RTX 2080 Ti) 10-минутный рендеринг можно выполнить почти в реальном времени – даже быстрее с ускорением графического процессора.
Однако с добавленными эффектами это становится совсем другой историей.
Альтернативные кадры и эффекты
Сжатие отснятого материала
Сохранение финального кадра
Какие факторы больше всего влияют на время рендеринга видео
Теперь вы понимаете каждый шаг процесса рендеринга видео и то, как он влияет на различные части вашего оборудования.
Как показано на диаграмме выше, степень добавления эффектов и более глубокое редактирование вашего видео может сильно повлиять на время рендеринга.
Сделаем краткий конспект.
Время, необходимое для рендеринга видео, зависит от многих факторов. Их можно разбить на 5 этапов процесса рендеринга видео:
- Чтение отснятого материала: зависит от размера, разрешения и кодека отснятого материала, производительности хранилища и объёма оперативной памяти.
- Декодирование отснятого материала: зависит от размера, разрешения и кодека отснятого материала, а также от производительности вашего процессора/видеокарты.
- Альтернативные кадры / добавление эффектов: зависит от разрешения, битовой глубины и сложности вашего проекта, количества и сложности эффектов и производительности процессора/видеокарты.
- Сжатие видео: зависит от выходного разрешения файла, размера файла, кодека и производительности вашего процессора/видеокарты.
- Сохранить окончательный выходной файл: зависит от производительности хранилища и размера выходного файла.
Если бы нам пришлось отсортировать приведенные выше программные зависимости по тому, насколько они увеличивают время рендеринга, мы бы получили следующий список (от сильного влияния на время рендеринга к низкому влиянию):
- Количество и сложность эффектов
- Размер файла, разрешение, кодек вашего видео
- Сложность проекта: разрядность, количество слоев
- Выходной кодек
- Размер выходного файла
Если бы нам пришлось отсортировать приведенные выше аппаратные зависимости по тому, насколько они увеличивают время рендеринга, мы бы получили следующий список (от сильного влияния на время рендеринга к низкому влиянию):
- Производительность процессора: тактовая частота важнее большого количества ядер
- Производительность видеокарты: поддержка CUDA для некоторых программных и аппаратных кодеков, поддержка кодирования и декодирования может значительно ускорить рендеринг
- Объём ОЗУ: достаточный объём ОЗУ для обработки рендеринга
- Производительность хранилища: скорость последовательного чтения имеет наибольшее значение
На данный момент мы проделали работу, чтобы установить, что заставляет рендеринг видео занимать много времени и какие аппаратные части должны быть на высоте, чтобы обеспечить более быстрый рендеринг, а именно: ваш ЦП, ОЗУ и хранилище, а иногда и ваш графический процессор.
Но, сколько времени на самом деле ожидать от рендеринга видео?
Я думаю, будет справедливо сказать, что вы не получите рендеринга в реальном времени с разрешением 1080p, пока не начнёте использовать 9-уровневые процессоры Ryzen, стоимость которых начинается с 40K₽, и даже тогда, когда вы добавите в уравнение множество эффектов, это все равно займ`т намного больше времени.
Единственный способ сохранить производительность рендеринга, близкую к реальному времени, – это включить ускорение графического процессора, если это предусмотрено вашим программным обеспечением для редактирования.
В конечном счете, самый большой фактор, определяющий ваше окончательное время рендеринга, будет зависеть от производительности вашего процессора.
Без мощного центрального процессора рендеринг даже минуты отснятого материала может занять удручающе много времени.
Отличным вариантом для ускорения рендеринга видео по всем направлениям является использование дискретного графического процессора для ускорения рендеринга, если у вас есть такая возможность.
Однако, качество рендеринга на GPU может быть не таким чистым, как после центрального процессора, поэтому я настоятельно рекомендую также включить двухпроходный рендеринг, если вы будете ускоряться с помощью графического процессора, просто чтобы ваши визуальные эффекты были как можно лучше.
Время рендеринга увеличивается ещё больше в зависимости от ваших эффектов и правок, а также любых узких мест, с которыми вы можете столкнуться (особенно с объёмом ОЗУ, который замедляет процесс до полной остановки, когда ему приходится использовать хранилище для управления памятью).
Это также связано с важным моментом, касающимся производительности процессора:
В большинстве рабочих нагрузок производительность ЦП больше зависит от производительности одного ядра, чем от производительности нескольких ядер, из-за отсутствия оптимизации для нескольких ядер.
Сколько времени занимает рендеринг видео – типичные примеры
Мы уже установили, что время рендеринга видео может сильно различаться в зависимости от множества факторов.
Давайте отложим всё это в сторону и взглянем на несколько типичных примеров, которые я собрал за многие годы ежедневного рендеринга видео.
Чтобы сделать эти примеры как можно более средними и массовыми, я использую ПК среднего уровня стоимостью 100K₽ (Ryzen 7, 3060, 16 ГБ ОЗУ, SSD NVMe) и ноутбук стоимостью 1250K₽ (производительность аналогична ПК).
Примеры того, сколько времени занимает рендеринг видео продолжительностью 1 минута:
- Видеозапись и проект 1080p – без эффектов, только редактирование, базовый звук: 1 минута
- Добавление нескольких переходов, эффекты заголовка, графика: 2 минуты
- Добавлена цветокоррекция, блики, замена неба: 5 минут.
- Добавлена стабилизация кадра, шумоподавление: 10 минут
- Всё вышеперечисленное, но в 4K: 30 минут
Часто задаваемые вопросы о рендеринге видео
Как выбрать процессор для редактирования видео?
Как указано выше, процессоры среднего уровня (Ryzen 5, Intel Core i5) – это ваш начальный уровень, и, возможно, их недостаточно, если вы делаете это с большой частотой или будете работать над крупномасштабными видеопроектами.
Помимо этого, я рекомендую получить лучший современный высокопроизводительный процессор с ядрами и потоками для нужд редактирования видео, но, на самом деле, есть много нюансов, которые связаны с этим, особенно если вы снимаете с особенно высокой скоростью качественной камеров.
Я рекомендую перейти к статье «Как выбрать процессор для редактирования видео», если вам нужно более подробное руководство по этой конкретной теме.
Моя основная цель в этой статье заключалась в том, чтобы объяснить процесс рендеринга видео и выделить факторы, влияющие на время рендеринга, а не столько в том, чтобы сделать правильное руководство по покупке.
Как выбрать видеокарту редактирования видео?
Что, если вы хотите, чтобы часть «видео» в «видеокарте» приносила большую пользу, и сфокусироваться на графическом процессоре для редактирования видео?
К счастью, вам не нужно ломать банк в этом отношении. Даже видеокарты среднего класса от AMD и Nvidia (в основном, Nvidia из соображений совместимости) прекрасно подходят для использования в качестве графических процессоров для редактирования видео.
Основной характеристикой, на которую я бы обратил внимание при покупке графического процессора для редактирования видео, является его видеопамять, так как это окажет большое влияние на процесс рендеринга, особенно на рендеринг на GPU.
Чем больше видеопамяти доступно вашему графическому процессору, тем больше файлов проекта он может обрабатывать с меньшими трудностями. А вот за более подробными советами по выбору видеокарты для редактирования видео читайте статью.
Как выбрать монитор для редактирования видео?
И последнее, но не менее важное: не забывайте о своём мониторе!
Если вы занимаетесь профессиональным редактированием видео или графикой, вам жизненно необходим высококачественный монитор с отличной точностью цветопередачи и цветовой гаммой.
Все лошадиные силы в мире не будут иметь значения, если ваш окончательный рендер выглядит как дерьмо на экране вашего клиента или даже случайного зрителя.