Что означает рендеринг. Что такое рендеринг. Растеризация векторной графики

Компьютерная графика полна сюрпризов, поэтому так часто дает возможность нам познакомиться с новыми терминами. Те, кто ни разу не использовал подобные программы, вряд ли смогут сказать вам, что такое рендер и для чего он нужен. Мы попробуем с этим разобраться.

Определение

Интересно, что в интернете практически нет ничего именно по этому запросу. Многие ломают голову в поисках толкования «рендера». На деле оказывается все проще. Есть такой процесс в компьютерной графике, как рендеринг. Программа, которая осуществляет этот процесс, называется рендером. Рассматривая такой софт, нужно понять, что же это за действие и где применяется.

Процесс

Итак, рендеринг - это емкий процесс, который преобразовывает изображение по модели благодаря программе. С английского языка слово переводится как «визуализация». Слово «модель» необязательно обозначает что-то материальное. Тут может идти речь и об объектах, и о явлениях. В целом толкования могут давать информацию геометрическую, географическую. Могут касаться освещения, наличия деталей, веществ, напряженности физического поля.

Компьютерная графика

Когда спрашивают, обычно подразумевают рендеринг. Процесс этот часто связан именно с компьютерной графикой. В этом случае визуализация проходит по отработанному плану. Формируется плоская картинка для 3D-сцены в растровом формате.

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

Методы

Когда мы узнаем, что такое рендер, нужно понять его функции. Очевидно, может помочь с визуализацией. Но сам процесс может происходить разными методами. Алгоритмов этого действия множество. Некоторые программы используют конкретно свой, некоторые эксплуатируют сразу несколько.

Созданием ряда методов рендеринга послужило трассирование. Отображение всех лучей света, которые освещают сцену, непрактичное. Оно отбирает чересчур много времени, если в расчет не берется приближение или оцифровка.

Одним из методов является растеризация. Она работает вместе со сканированием строк. В этом случае происходит проецирование объектов на дисплей. А эффект перспективы не рассматривается.

Способ рейкастинга предполагает рассмотрение с указанной точки. Из неё отправляются лучи к объектам и определяется цвет пикселя. Если луч достиг объекта или фона, он дальше не распространяется. Этот метод разрешает простые способы использования оптических эффектов.

Еще два метода - это трассировка лучей или пути. Первый вариант схож с предыдущим. Но когда луч натыкается на объект, он распространяется дальше. Так появляется еще три луча. Каждый делает вклад в цвет пикселя определенным способом. Так появляются отражение, тень и преломление. Такой способ делает изображение фотореалистичным, хотя и считается ресурсоемким. Трассировка путей похожа на вышеописанный метод. Различие только в том, что физические законы распространения света ярче выражены.

Как работает?

Если вы понимаете, что такое рендер в общем, то, скорее всего, вам будет трудно разобраться с математическим обоснованием процесса. Чтобы рендеринг прошел корректно, его нужно реализовать с помощью физической модели. Программа проводит вычисления. Но уравнений может быть несколько, как и решений. В этом мы уже убедились при описании методов визуализации.

Настройка

Настройки рендера могут сильно отличаться. Все зависит от задач пользователя и его умений. К примеру, можно создать быстрый черновой рендеринг. Для этого придется дополнительно скачать скрипт. Команда каждый раз автоматически будет подстраивать настройки программы так, чтобы визуализация была черновой, то есть в сносном качестве.

Настройки визуализации могут указать на методы отрисовки моделей. К примеру, для «Фотошопа» можно поискать набор таких настроек. На их основе создают свои параметры либо же, немного скорректировав, пользуются установленными.

Программы

Рендер VRay - это целая система для визуализации. Появилась еще в 2000 году. Она может быть установлена в качестве плагина для ряда программ. Среди последних есть и Cinema 4D, и Rhino, и Autodesk 3ds Max. Эта система может применяться в качестве модуля для Blender.

Рендер 3D Max или Autodesk 3ds Max - это многофункциональная программа, которая выполняет не только визуализацию, но и создает, редактирует трехмерную графику. Легко справляется и с анимацией. На данный момент очень популярна, поскольку обзавелась множеством разнообразных функций для работы с 3D-изображением. Имеет много инструментов для художников и тех, кто работает с мультимедиа.

Vegas Pro

Это полноценная программа для редактирования и монтажа видеороликов, а также многодорожечной записи. Считать Vegas рендером сложно, хотя такая функция тут тоже есть. Чтобы перевоплотить проект в готовый файл, необходимо кликнуть по Render As, в новом окне дайте имя видео и выберите расширение Video for Windows, ниже будет строка с выбором шаблонов параметра. Тут ищем =NTSC DV. После придется подождать, пока программа соберет и сохранит ролик.

Возможно, для вашего проекта может понадобиться другой шаблон, тогда можете нажать на Custom и в новом окне выбрать более подходящий вариант. Тут же можно выставить качество визуализированного ролика. Ниже есть вкладка «Видео», на ней все параметры выставляются индивидуально для каждого пользователя.

Рендеринг часто приводит к ошибкам при выводе видео. Если вы хотите серьезно заниматься им, то придется подробно изучить процесс, технологию и методы, чтобы в дальнейшем сократить ошибки до минимума.

Происхождение термина Слово «рендер» (или «рендеринг») пришло, как и многое, связанное с IP-технологиями, из английского языка. Происходит оно от старофранцузского rendre, означающего «делать», «дать», «возвратить», «вернуть». Более глубокие корни этого глагола восходят к древней латыни: re – префикс, означающий «назад», и dare – «давать». Отсюда – один из смыслов современного термина. Рендер – это в том числе процесс воссоздания плоскостного изображения на основе трехмерной модели, содержащей сведения о физических свойствах объекта – его форме, фактуре поверхности, освещенности и так далее.

Рендеринг (англ. rendering - «визуализация») в компьютерной графике - процесс получения изображения по модели с помощью компьютерной программы.

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

Примером визуализации могут служить радарные космические снимки, представляющие в виде изображения данные, полученные посредством радиолокационного сканирования поверхности космического тела, в диапазоне электро-магнитных волн, невидимых человеческим глазом.

Часто в компьютерной графике (художественной и технической) под рендерингом понимают создание плоского изображения (картинки) по разработанной 3D-сцене. Изображение - это цифровое растровое изображение. Синонимом в данном контексте является Визуализация.

Визуализация - один из наиболее важных разделов в компьютерной графике, и на практике он тесным образом связан с остальными. Обычно, программные пакеты трехмерного моделирования и анимации включают в себя также и функцию рендеринга. Существуют отдельные программные продукты, выполняющие рендеринг.

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

Особенности рендеринга

На доведение предварительного эскиза до совершенства понадобится много времени – продолжительность обработки сложных изображений компьютером может достигать нескольких часов. За этот период происходит:

  • раскраска
  • детализация мелких элементов
  • проработка световых эффектов – отражения потоков, теней и прочих
  • отображение климатических условий
  • реализация иных деталей, позволяющих повысить реалистичность.

Сложность обработки влияет на формирование цены 3d-визуализации, чем больше потребуется времени, тем дороже обойдется работа над проектом. По возможности моделлеры упрощают процесс рендеринга, к примеру, просчитывают отдельные моменты или используют другие инструменты, позволяющие сократить время визуализации без ухудшения ее качества

Кто занимается рендерингом?

Самая распространенная профессия требующая от вас знания рендеринга это «3D дизайнер». Специалист такого рода может создавать все: от элементарного банера до моделей компьютерных игр.

И, конечно же, 3D дизайнер занимается не только рендерингом, но и всеми предшествующими этапами создания 3D графики, а именно: моделирование, текстурирование, освещение, анимация и только после – визуализация.

Однако, 3D дизайнер не работает с математическими и физическими формулами, описывая их языками программирования. Все это за него делают программы компиляторы (3D Max, Maya, Cinema 4D, Zbrush, Blender и т.д.) и уже написанных библиотек физических свойств (ODE, Newton, PhysX, Bullet и т.п.).

Отдельно среди перечисленных выше программ, позволяющих создавать 3D графику нужно выделить бесплатную программу OGRE 3D – графические движки специально для рендеринга, с помощью которого можно не только создавать «картинки», но и реализовать целую, а главное полноценную компьютерную игру. К примеру «Torchlight» в качестве игрового движка использует именно OGRE.

Ну, а для обработки такого количества и качества графических сцен настольного компьютера будет не достаточно, поэтому в последнее время для рендеринга делают не только программы но и сервисы для обработки их процессов, такие как «рендер ферма». И стоит заметить, что удовольствие это не из дешевых, не смотря на низкие цены рендер фермы цена рендеринга получается довольно внушительной – 3,9 центов / ГГц-час.

Типы рендера: online и пререндеринг

Различают два основных типа рендера в зависимости от скорости, с которой должно происходить получение готового изображения. Первый – рендеринг в реальном времени, необходимый в интерактивной графике, в основном в компьютерных играх. Здесь нужен быстрый рендер, изображение должно выводиться на экран мгновенно, поэтому многое в сцене рассчитывается заранее и сохраняется в ней в виде отдельных данных. К ним относятся текстуры, определяющие внешний вид объектов и освещение.

Программы, используемые для онлайн-рендера, используют в основном ресурсы графической карты и оперативной памяти компьютера и в меньшей степени – процессора. Для рендера сцен, более сложных визуально, а также там, где вопрос скорости не так актуален, когда гораздо важнее качество рендера, используются другие методы и программы для рендеринга. В этом случае используется вся мощь многоядерных процессоров, выставляются самые высокие параметры разрешения текстур, обсчета освещения. Часто применяется и постобработка рендера, позволяющая добиться высокой степени фотореалистичности или нужного художественного эффекта. Методы просчета сцены Выбор способов получения изображения зависит от конкретной задачи и часто от личных предпочтений и опыта визуализатора.

Разрабатываются всё новые системы рендера – или узкоспециализированные, или универсальные. Сегодня в основе самых распространенных программ-рендеров лежат три основных вычислительных метода: Растеризация (Scanline) – метод, при котором изображение создается просчетом не отдельных точек-пикселей, а целых граней-полигонов и крупных участков поверхностей. Текстуры, определяющие свойства объектов, как и свет в сцене, зафиксированы в виде неизменных данных. Получаемое изображение часто не отражает перспективных изменений освещенности, глубины резкости и т. д. Чаще применяется в системах для просчета сцен в играх и в видеопродакшене. Трассировка лучей (Raytracing) – физика сцены просчитывается на основе лучей, исходящих из объектива виртуальной камеры и анализа взаимодействия каждого луча с объектами, с которыми он встречается в сцене. В зависимости от количества и качества таких «отскоков» имитируется отражение или преломление света, его цвет, насыщенность и т. д. Качество получаемой картинки по сравнению с растеризацией значительно выше, но за её реалистичность приходится платить повышенным расходом ресурсов. Расчет отраженного света (Radiosity) – каждая точка, каждый пиксель изображения наделяется цветом, который не зависит от камеры. На него влияют глобальные и местные источники света и окружение. Такой метод позволяет рассчитать появление на поверхности модели цветовых и световых рефлексов от рядом расположенных объектов. Практика показывает, что самые продвинутые и популярные системы рендера использует сочетание всех или основных методов. Это позволяет добиться максимального фотореализма и достоверности в отображении физических процессов в данной сцене.

У многих часто возникают вопросы по поводу улучшения визуального качества визуализаций в 3ds Max и сокращению затрачиваемого на них времени. Основные советы, которые можно дать в качестве ответа на этот вопрос, касаются оптимизации геометрии, материалов и текстур.

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

Не допускайте ошибок в геометрии моделей, таких как открытые рёбра, перекрывающиеся полигоны. Старайтесь, чтобы модели были как можно более чистыми.

2. Какими должны быть текстуры Размер текстуры должен соответствовать размеру модели на финальном рендере. К примеру, если вы скачали где-нибудь текстуру с разрешением 3000 х 3000 пикселей, а модель, к которой её применяете, находится на заднем плане сцены или имеет совсем маленький масштаб, то визуализатор будет перегружен излишним разрешением текстуры.

Взгляните на этот пример рендера:

Следует иметь в виду, что для усиления реализма к материалам необходимо добавлять карты Bump (Неровности) и Specular (Зеркальные отражения), поскольку в реальности каждый объект обладает рельефом и отражательной способностью. Создать такие карты из оригинальной текстуры не составит проблемы - достаточно поверхностных знаний Adobe Photoshop .

Правильное освещение

Чрезвычайно важный пункт. Старайтесь всегда применять системы физического освещения, приближенные к реальным, такие как Daylight System (Система дневного освещения), а также VRay Sun и Sky , HDRI, а в качестве источников света в интерьерах использовать фотометрические с профилями IES. Это прибавит сцене реализма, так как в этом случае при рендере будут задействованы настоящие алгоритмы вычисления световой информации.

Не забывайте о гамма-коррекции изображений! При гамме 2.2 цвета в 3ds Max будут отображаться правильно. Однако увидеть их такими можно только, если ваш монитор правильно откалиброван.



4. Масштаб сцены
Для получения рендеров пристойного качества масштаб единиц измерения в сцене имеет колоссальное значение. Чаще всего у нас принято работать в сантиметрах. Это позволяет не только создавать модели более точными, но также помогает при расчете освещения и отражений.

5. Настройки визуализации
Если работаете с VRay, то для сглаживания краёв изображения рекомендуется использовать Adaptive DMC . Однако для достижения наилучших результатов в сценах с большим количеством деталей и множеством размытых отражений лучше применять Fixed - с этим типом изображений он работает лучше всего. Количество сабдивов при этом желательно устанавливать не менее 4, а лучше 6.
Для расчета непрямого освещения (Indirect Illumination) используйте связку Irradiance Map + Light Cache . Такой тандем позволяет быстро рассчитать освещённость в сцене, но если хочется большей детализации, можно включить опцию Detail Enhancement (Улучшение детализации) в настройках Irradiance Map, а в Light Cache активировать Pre-Filter (Префильтрация). Таким образом можно снизить зашумлённость картинки.
Хорошего качества теней можно добиться, установив количество сабдивов в настройках источников света VRay на 15-25. Помимо этого всегда используйте физическую камеру VRay, с помощью которой можно получить полный контроль над представлением света в сцене.
А для полного контроля над балансом белого, попробуйте поработать в шкале температур Кельвина. Приведу для справки таблицу температур, которой полезно будет пользоваться при работе в 3ds Max (меньшая величина означает более тёплые / красные оттенки, а более высокая даёт прохладные / синие тона):
Шкала цветовых температур Кельвина по наиболее распространённым источникам света

  • Горящая свеча - 1900К
  • Галогенные лампы - 3200К
  • Лампы заливающего света и пилотный свет - 3400К
  • Восход солнца - 4000К
  • Флуоресцентный свет (холодный белый) - 4500К
  • Дневной свет - 5500К
  • Вспышка фотоаппарата - 5500К
  • Студийный свет - 5500К
  • Свет от экрана монитора компьютера - 5500-6500К
  • Лампа дневного света - 6500К
  • Открытая тень (термин из фотографии) - 8000К
Исправляем бледные цвета в 3ds Max при гамме 2.2
При использовании гаммы 2.2 в Autodesk 3ds Max сразу бросается в глаза, что цвета материалов в Material Editor выглядят чересчур ярко и блекло по сравнению с обычным представлением в гамме 1.0. И если вам обязательно нужно соблюдать в сцене значения цветов по шкале RGB, допустим, в каком-нибудь уроке уже даны значения цветов, или заказчик предоставил свои образцы объектов в заданных цветах, то в гамме 2.2 они будут выглядеть неправильно. Коррекция RGB цветов в гамме 2.2 Для того чтобы добиться правильного уровня яркости цвета, нужно переназначить его значения RGB, воспользовавшись несложным уравнением: новый_цвет=255*((старый_цвет/255)^2.2). В уравнении сформулировано, что чтобы получить новое значение цвета в гамме 2.2 по RGB, нужно разделить старое RGB значение на величину белого цвета (255), возвести всё это в степень 2.2, и затем умножить получившееся на значение белого цвета (255). Если математика - не ваш конёк, не отчаивайтесь - 3ds Max посчитает всё за вас, ведь в нём есть встроенный калькулятор Numeric Expression Evaluator (Вычислитель численных выражений). Результат выражения (математической функции) возвращает некое значение. Полученное значение затем можно вставить в любое поле программы, будь то параметры создания нового объекта, его трансформации, настройки модификаторов, материалов. Попробуем вычислить цвет в гамме 2.2 на практике. Внутри настроек материала щёлкните по цветовому полю для вызова окна Color Selector. Выбрав какой-нибудь цвет, поставьте курсор мыши в поле канала Red (Красный цвет) и нажмите Ctrl+N на клавиатуре, чтобы вызвать Numerical Expression Evaluator. Напишите внутри него приведенную формулу, подставив старое значение цвета в канале Red. В поле Result (Результат) отобразится решение уравнения. Нажмите кнопку Paste (Вставка), чтобы вставить полученное значение вместо старого в канал Red. Проделайте эту операцию с каналами цветов Green (Зелёный) и Blue (Синий). С исправленными значениями RGB цвета будут выглядеть корректно и в окнах проекций, и на рендере. Работа с цветами по схеме формирования CMYK Не всегда приходится иметь дело только с RGB. Иногда попадаются цвета для печати по схеме CMYK, и их нужно преобразовывать в RGB, поскольку 3ds Max поддерживает только. Можно, конечно, запустить Adobe Photoshop и переводить значения в нём, но есть способ более удобный. Для 3ds Max создан новый тип селектора цветов - Cool Picker, который позволяет видеть значения цвета во всех возможных цветовых схемах непосредственно в Максе. Скачайте плагин Cool Picker отсюда для своей версии 3ds Max. Устанавливается он очень просто: сам файл с расширением dlu нужно поместить в папку 3ds Max\plugins. Сделать его активным можно, перейдя в меню Customize > Preferences > вкладка General > Color Selector: Cool Picker. Таким образом, он заменит собой стандартный селектор цветов. Есть вопросы? Задавайте

Начало формы

Использование гаммы 2.2 в 3ds max + V-Ray на практике

После теоретической части по настройке гаммы в V-Ray и 3ds max, мы переходим непосредственно к практике.

Многие пользователи 3ds max, особенно те, которые сталкиваются с визуализацией интерьеров, замечают, что при постановке физически правильного освещения, определённые места в сцене всё равно затемнены, хотя на самом деле всё должно быть освещено хорошо. Особенно это заметно в углах геометрии и на теневой стороне объектов.

Каждый пытался решить эту проблему по-разному. Начинающие пользователи 3ds max первым делом старались исправить это простым увеличением яркости источников света.

Такой подход приносит определённые результаты, увеличивается общая освещённость сцены. Однако, он также приводит к нежелательным пересвечиваниям, причиной которых являются данные источники света. Это никак не меняет в лучшую сторону ситуацию с нереалистичным изображением. Одна проблема с темнотой (в труднодоступных для света местах) сменяется другой проблемой - с пересвечиваниями (рядом с источниками света).

Некоторые люди изобретали более сложные способы "решения" проблемы, добавляя в сцену дополнительные источники освещения, делая их невидимыми для камеры, чтобы просто подсветить затемнённые места. Вместе с этим ни о каком реализме и физической точности изображения говорить уже не приходится. Параллельно с подсветкой затемнённых мест исчезали тени, и создавалось впечатление, что объекты сцены парят в воздухе.

Все вышеприведённые способы борьбы с неправдоподобной тьмой слишком прямолинейны и очевидны, но неэффективны.

Суть проблемы тёмных рендеров состоит в том, что значение гаммы изображения и монитора различны.

Что такое гамма?
Гамма - это степень нелинейности перехода цвета от тёмных значений к ярким. С математической точки зрения значение линейной гаммы равно 1.0, именно поэтому такие программы, как 3ds max, V-Ray и пр. по умолчанию выполняют расчёты в гамме 1.0. Но значение гаммы 1.0 совместимо только с "идеальным" монитором, который обладает линейной зависимостью отображения перехода цвета от белого к чёрному. Но поскольку таких мониторов в природе не существует, фактическая гамма нелинейна.

Значение гаммы для стандарта видео NTSC составляет 2.2. Для компьютерных дисплеев значение гаммы, как правило, находится в пределах от 1.5 до 2.0. Но для удобства нелинейность цветового перехода на всех экрана считается равной 2.2.

Когда монитор с гаммой 2.2 показывает изображение, гамма которого составляет 1.0, то на экране мы видим тёмные цвета в гамме 1.0 вместо ожидаемых ярких цветов гаммы 2.2. Поэтому цвета из среднего диапазона (Zone 2) становятся темнее при просмотре изображения с гаммой 1.0 на устройстве вывода с гаммой 2.2. Однако в диапазоне тёмных тонов (Zone 1) представление гаммы 1.0 и 2.2 очень схоже, что позволяет отображать тени и чёрные цвета правильным образом.

В областях со светлыми тонами (Zone 3) также наблюдается много сходства. Следовательно, яркое изображение с гаммой 1.0 также достаточно корректно отображается на мониторе с гаммой 2.2.

И поэтому чтобы получить надлежащий вывод гаммы 2.2, должна быть изменена гамма исходного изображения. Конечно, это можно сделать и в Photoshop, отрегулировав гамму там. Но вряд ли можно назвать удобным такой способ, когда вы каждый раз меняете настройки изображения, сохраняете их себе на жёсткий диск, и редактируете в растровом редакторе... Из-за этого мы и не будем рассматривать этот вариант, да к тому же такой способ обладает ещё более существенными недостатками. Современные средства визуализации, такие как V-Ray, рассчитывают изображение адаптивно, поэтому точность расчёта зависит от многих параметров, включая яркость света в определённой области. Таким образом, в местах с тенью V-Ray просчитывает освещённость изображения менее точно, и сами такие места становятся зашумлёнными. А в ярких и хорошо различимых областях изображения расчёт визуализации проходит с большей аккуратностью и с минимумом артефактов. Это позволяет ускорить рендеринг благодаря экономии времени на едва различимых областях изображения. Поднимая гамму выходного изображения в Photoshop, изменяется яркость частей изображения, которые V-Ray посчитал менее значимыми и понизил качество их расчётов. Таким образом становятся видимыми все нежелательные артефакты, а картинка выглядит просто ужасно, но зато ярче, чем до того В добавок изменится также гамма текстур, они будут выглядеть блекло и бесцветно.

Единственным верным выходом из этой ситуации является изменение значения гаммы, в которой работает визуализатор V-Ray. Так вы получите приемлемую яркость в полутонах, где не будет таких очевидных артефактов.

В уроке будет показано, как настраивается гамма в визуализаторе V-Ray и 3ds max.

Чтобы изменить гамму, с которой будет работать V-Ray, достаточно найти раскрывающуюся вкладку V-Ray: Color Mapping , которая находится на вкладке V-Ray, которая в свою очередь располагается в окне Render Scene (F10), и установить значение Gamma: в 2.2.

Особенность V-Ray заключается в том, что коррекция гаммы цветового отображения работает только в V-Ray Frame Buffer, поэтому если вы хотите увидеть результаты ваших манипуляций с гаммой, то необходимо включить кадровый буфер V-Ray: Frame Buffer на вкладке V-Ray.

После этого рендеринг будет проходить с необходимой нам гаммой 2.2, с нормально освещёнными полутонами. Есть ещё один недостаток, и заключается он в том, что используемые в сцене текстуры будут выглядеть светлее, они будут обесцвеченными и выгоревшими.

Почти все используемые нами текстуры на мониторе выглядят нормально, поскольку они уже настроены самим монитором и изначально имеют гамму 2.2. Для того чтобы визуализатор V-Ray сконфигурировал гамму 2.2 и не умножал гамму изображения на значение гаммы в визуализаторе (2.2 * 2.2), текстуры должны находиться в гамме 1.0. Затем, после их коррекции визуализатором, их гамма станет равной 2.2.

Можно сделать все текстуры темнее, изменив их гамму с 2.2 на 1.0 в Photoshop, с расчётом на дальнейшее их осветление визуализатором. Впрочем, такой метод был бы очень утомительным и потребовал бы времени и терпения на обеспечение всех текстур в сцене в гамме 1.0, и, во-вторых, это сделает невозможным просмотр текстур в нормальной гамме, потому что они будут всё время затемнены.

Чтобы этого избежать, просто обеспечим их настройку на входе 3ds max. К счастью, в 3ds max присутствует достаточно настроек для гаммы. Настройки гаммы доступны из главного меню 3ds max:

Customize > Preferences ...> Gamma and LUT

Главные настройки гаммы 3ds max расположены на вкладке Gamma and LUT. В частности, нам потребуется настройка коррекции входных текстур, называемая Input Gamma . Нас не должно вводить в заблуждение то, что там по умолчанию установлено значение 1.0. Это не корректирующее значение, а значение гаммы текстур на входе. По умолчанию принято считать, что все текстуры состоят в гамме 1.0, но на самом деле, как упоминалось ранее, они установлены в гамме 2.2. И значит, мы должны указать значение гаммы 2.2, вместо 1.0.

Не забудьте установить галочку в параметре Enable Gamma / LUT Correction , чтобы получить доступ к настройкам гаммы.

Изображения, сделанные в правильной гамме, выглядят гораздо лучше и корректнее, чем те, которые были получены с использованием описанных в начале статьи настроек. Они имеют правильные полутона, ярких пересветов вблизи источников света нет, как нет и артефактов в неосвещенных областях изображения. Таким образом текстуры будут также насыщенными и яркими.

Кажется, всё, но под конец урока я бы хотел рассказать ещё об одной вещи по работе с гаммой. Поскольку визуализатор V-Ray работает в необычной для себя гамме, то приходится устанавливать режим отображения гаммы 3ds max в 2.2, чтобы цвета в Material Editor и Color Selector отображались правильно. В противном случае может возникнуть путаница, когда материалы будут настраиваться в гамме 1.0, но на самом деле внутри программы они будут преобразованы в гамму 2.2.

Для установки правильного отображения материалов в редакторе материалов 3ds max, следует использовать настройки во вкладке Gamma and LUT. Для этого должны быть установлены значение гаммы 2.2 в разделе Display и проставлены галочки в Affect Color Selectors и Affect Material Editor в разделе Materials and Colors.

Гамма 2.2 уже стала стандартом при работе с 3ds max и V-Ray. Надеюсь, что данный материал поможет вам в работе!

В продолжении ликбеза по компьютерной графике как для программистов, так и для художников хочу поговорить о том что такое рендеринг . Вопрос не так сложен как кажется, под катом подробное и доступное объяснение!

Я начал писать статьи, которые являются ликбезом для разработчика игр. И поторопился, написав статью про , не рассказав что же такое рендеринг. Поэтому эта статья будет приквелом к введению в шейдеры и отправным пунктом в нашем ликбезе.

Что такое рендеринг? (для программистов)

Итак, Википедия дает такое определение: Ре́ндеринг (англ. rendering - «визуализация») - термин в компьютерной графике, обозначающий процесс получения изображения по модели с помощью компьютерной программы.

Довольно неплохое определение, продолжим с ним. Рендеринг — это визуализация. В компьютерной графике и 3д-художники и программисты под рендерингом понимают создание плоской картинки - цифрового растрового изображения из 3д сцены.
То есть, неформальный ответ на наш вопрос «Что такое рендеринг?» — это получение 2д картинки (на экране или в файле не важно). А компьютерная программа, производящая рендеринг, называется рендером (англ. render) или рендерером (англ. renderer).

Рендер

В свою очередь словом «рендер» называют чаще всего результат рендеринга. Но иногда и процесс называют так же (просто в английском глагол — render перенесся в русский, он короче и удобнее). Вы, наверняка, встречали различные картинки в интернете, с подписью «Угадай рендер или фото?». Имеется ввиду это 3D-визуализация или реальная фотография (уж настолько компьютерная графика продвинулась, что порой и не разберешься).

Виды рендеринга

В зависимости от возможности сделать вычисления параллельными существуют:

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

Существует много алгоритмов рендеринга, но все их можно разделить на две группы по принципу получения изображения: растеризация 3д моделей и трасировка лучей. Оба способа используются в видеоиграх. Но трасировка лучей чаще используется не для получения изображений в режиме реального времени, а для подготовки так называемых лайтмапов — световых карт, которые предрасчитываются во время разработки, а после результаты предрасчета используются во время выполнения.

В чем суть методов? Как работает растеризация и трасировка лучей? Начнем с растеризация.

Растеризация полигональной модели

Сцена состоит из моделей, расположенных на ней. В свою очередь каждая модель состоит из примитивов.
Это могут быть точки, отрезки, треугольники и некоторые другие примитивы, такие как квады например. Но если мы рендерим не точки и не отрезки, любые примитивы превращаются в треугольники.

Задача растеризатора (программа, которая выполняет растеризацию) получить из этих примитивов пиксели результирующего изображения. Растеризация в разрезе графического пайплайна, происходит после вершинного шейдера и до фрагментного ().

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

В случае с отрезком нужно получить пиксели линии соединяющей две точки, в случае с треугольником пиксели которые внутри него. Для первой задачи применяется алгоритм Брезенхема, для второй может применяться алгоритм заметания прямыми или проверки барицентрических координат.

Сложная модель персонажа состоит из мельчайших треугольников и растеризатор генерирует из неё вполне достоверную картинку. Почему тогда заморачиваться с трассировкой лучей? Почему не растеризовать и все? А смысл вот в чем, растеризатор знает только своё рутинное дело, треугольники — в пиксели. Он ничего не знает об объектах рядом с треугольником.

А это значит что все физические процессы которые происходят в реальном мире он учесть не в состоянии. Эти процессы прямым образом влияют на изображение. Отражения, рефлексы, тени, подповерхностное рассеивание и так далее! Все без чего мы будем видеть просто пластмассовые модельки в вакууме…
А игроки хотят графоний! Игрокам нужен фотореализм!

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

В свою очередь трассировка лучей позволяет рассчитать эти данные, но ценой большего времени рассчета, которое не может быть произведено во время выполнения. Рассмотрим, что из себя представляет этот метод.

Трасировка лучей (англ. ray tracing )

Помните о корпускулярно волновом дуализме? Напомню в чем суть: свет ведёт себя и как волны и как поток частиц — фотонов. Так вот трассировка (от англ «trace» прослеживать путь), это симуляция лучей света, грубо говоря. Но трассирование каждого луча света в сцене непрактично и занимает неприемлемо долгое время.

Мы ограничимся относительно малым количеством, и будем трассировать лучи по нужным нам направлениям.
А какие направления нам нужны? Нам надо определять какие цвета будут иметь пиксели в результирующей картинке. Тоесть количество лучей мы знаем, оно равно количеству пикселей в изображении.

Что с направлением? Все просто, мы будем трассировать лучи в соответствии с точкой наблюдения (то как наша виртуальная камера направлена). Луч встретится в какой-то точке с объектом сцены (если не встретится, значит там темный пиксель или пиксель неба из скайбокса, например).

При встрече с объектом луч не прекращает своё распространение, а разделяется на три луча-компонента, каждый из которых вносит свой вклад в цвет пикселя на двумерном экране: отражённый, теневой и преломлённый. Количество таких компонентов определяет глубину трассировки и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, однако из-за большой ресурсоёмкости процесс визуализации занимает значительное время.

Рендеринг для художников

Но рендеринг это не только программная визуализация! Хитрые художники тоже используют его. Так что такое рендеринг с точки зрения художника? Примерно то же самое, что и для программистов, только концепт-художники выполняют его сами. Руками. Точно так же как рендерер в видео-игре или V-ray в Maya художники учитывают освещение, подповерхностное рассеивание, туман и др. факторы, влияющие на конечный цвет поверхности.

К примеру картинка выше, поэтапно прорабатывается таким образом: Грубый скетч — Лайн — Цвет — Объем — Рендер материалов.

Рендер материалов включает в себя текстурирование, проработку бликов — металлы, например, чаще всего очень гладкие поверхности, которые имеют четкие блики на гранях. Помимо всего этого художники сталкиваются с растеризацией векторной графики, это примерно то же самое, что и растеризация 3д-модели.

Растеризация векторной графики

Суть примерно такая же, есть данные 2д кривых, это те контуры, которыми заданы объекты. У нас есть конечное растровое изображение и растеризатор переводит данные кривых в пиксели. После этого у нас нет возможности масштабировать картинку без потери качества.

Читайте дальше

  • — простое объяснение сложных и страшных шейдеров
  • — Полезный обзор частиц и подборка видео-уроков, по созданию спецэффектов в Unity3d

Послесловие

В этой статье, я надеюсь, вы осили столько букв, вы получили представление о том, что такое рендеринг, какие виды рендеринга существуют. Если какие-то вопросы остались — смело задавайте их в комментариях, я обязательно отвечу. Буду благодарен за уточнения и указания на какие-то неточности и ошибки.

Происхождение термина Слово «рендер» (или «рендеринг») пришло, как и многое, связанное с IP-технологиями, из английского языка. Происходит оно от старофранцузского rendre, означающего «делать», «дать», «возвратить», «вернуть». Более глубокие корни этого глагола восходят к древней латыни: re – префикс, означающий «назад», и dare – «давать». Отсюда – один из смыслов современного термина. Рендер – это в том числе процесс воссоздания плоскостного изображения на основе трехмерной модели, содержащей сведения о физических свойствах объекта – его форме, фактуре поверхности, освещенности и так далее.

Рендеринг (англ. rendering - «визуализация») в компьютерной графике - процесс получения изображения по модели с помощью компьютерной программы.

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

Примером визуализации могут служить радарные космические снимки, представляющие в виде изображения данные, полученные посредством радиолокационного сканирования поверхности космического тела, в диапазоне электро-магнитных волн, невидимых человеческим глазом.

Часто в компьютерной графике (художественной и технической) под рендерингом понимают создание плоского изображения (картинки) по разработанной 3D-сцене. Изображение - это цифровое растровое изображение. Синонимом в данном контексте является Визуализация.

Визуализация - один из наиболее важных разделов в компьютерной графике, и на практике он тесным образом связан с остальными. Обычно, программные пакеты трехмерного моделирования и анимации включают в себя также и функцию рендеринга. Существуют отдельные программные продукты, выполняющие рендеринг.

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

Особенности рендеринга

На доведение предварительного эскиза до совершенства понадобится много времени – продолжительность обработки сложных изображений компьютером может достигать нескольких часов. За этот период происходит:

  • раскраска
  • детализация мелких элементов
  • проработка световых эффектов – отражения потоков, теней и прочих
  • отображение климатических условий
  • реализация иных деталей, позволяющих повысить реалистичность.

Сложность обработки влияет на формирование цены 3d-визуализации, чем больше потребуется времени, тем дороже обойдется работа над проектом. По возможности моделлеры упрощают процесс рендеринга, к примеру, просчитывают отдельные моменты или используют другие инструменты, позволяющие сократить время визуализации без ухудшения ее качества

Кто занимается рендерингом?

Самая распространенная профессия требующая от вас знания рендеринга это «3D дизайнер». Специалист такого рода может создавать все: от элементарного банера до моделей компьютерных игр.

И, конечно же, 3D дизайнер занимается не только рендерингом, но и всеми предшествующими этапами создания 3D графики, а именно: моделирование, текстурирование, освещение, анимация и только после – визуализация.

Однако, 3D дизайнер не работает с математическими и физическими формулами, описывая их языками программирования. Все это за него делают программы компиляторы (3D Max, Maya, Cinema 4D, Zbrush, Blender и т.д.) и уже написанных библиотек физических свойств (ODE, Newton, PhysX, Bullet и т.п.).

Отдельно среди перечисленных выше программ, позволяющих создавать 3D графику нужно выделить бесплатную программу OGRE 3D – графические движки специально для рендеринга, с помощью которого можно не только создавать «картинки», но и реализовать целую, а главное полноценную компьютерную игру. К примеру «Torchlight» в качестве игрового движка использует именно OGRE.

Ну, а для обработки такого количества и качества графических сцен настольного компьютера будет не достаточно, поэтому в последнее время для рендеринга делают не только программы но и сервисы для обработки их процессов, такие как «рендер ферма». И стоит заметить, что удовольствие это не из дешевых, не смотря на низкие цены рендер фермы цена рендеринга получается довольно внушительной – 3,9 центов / ГГц-час.

Типы рендера: online и пререндеринг

Различают два основных типа рендера в зависимости от скорости, с которой должно происходить получение готового изображения. Первый – рендеринг в реальном времени, необходимый в интерактивной графике, в основном в компьютерных играх. Здесь нужен быстрый рендер, изображение должно выводиться на экран мгновенно, поэтому многое в сцене рассчитывается заранее и сохраняется в ней в виде отдельных данных. К ним относятся текстуры, определяющие внешний вид объектов и освещение.

Программы, используемые для онлайн-рендера, используют в основном ресурсы графической карты и оперативной памяти компьютера и в меньшей степени – процессора. Для рендера сцен, более сложных визуально, а также там, где вопрос скорости не так актуален, когда гораздо важнее качество рендера, используются другие методы и программы для рендеринга. В этом случае используется вся мощь многоядерных процессоров, выставляются самые высокие параметры разрешения текстур, обсчета освещения. Часто применяется и постобработка рендера, позволяющая добиться высокой степени фотореалистичности или нужного художественного эффекта. Методы просчета сцены Выбор способов получения изображения зависит от конкретной задачи и часто от личных предпочтений и опыта визуализатора.

Разрабатываются всё новые системы рендера – или узкоспециализированные, или универсальные. Сегодня в основе самых распространенных программ-рендеров лежат три основных вычислительных метода: Растеризация (Scanline) – метод, при котором изображение создается просчетом не отдельных точек-пикселей, а целых граней-полигонов и крупных участков поверхностей. Текстуры, определяющие свойства объектов, как и свет в сцене, зафиксированы в виде неизменных данных. Получаемое изображение часто не отражает перспективных изменений освещенности, глубины резкости и т. д. Чаще применяется в системах для просчета сцен в играх и в видеопродакшене. Трассировка лучей (Raytracing) – физика сцены просчитывается на основе лучей, исходящих из объектива виртуальной камеры и анализа взаимодействия каждого луча с объектами, с которыми он встречается в сцене. В зависимости от количества и качества таких «отскоков» имитируется отражение или преломление света, его цвет, насыщенность и т. д. Качество получаемой картинки по сравнению с растеризацией значительно выше, но за её реалистичность приходится платить повышенным расходом ресурсов. Расчет отраженного света (Radiosity) – каждая точка, каждый пиксель изображения наделяется цветом, который не зависит от камеры. На него влияют глобальные и местные источники света и окружение. Такой метод позволяет рассчитать появление на поверхности модели цветовых и световых рефлексов от рядом расположенных объектов. Практика показывает, что самые продвинутые и популярные системы рендера использует сочетание всех или основных методов. Это позволяет добиться максимального фотореализма и достоверности в отображении физических процессов в данной сцене.