0

Для чего нужен рендер

Сегодня мы подробно рассмотрим следующие аспекты, касающиеся рендер ферм и рендера больших объемов компьютерной графики:
1. Что такое рендер ферма

2. Виды рендер ферм

3. Особенности использования рендер ферм

4. Когда стоит пользоваться рендер фермой, а когда инвестировать в свое железо

5. Крупнейшие фермы в России

Что такое рендер ферма?

По мере развития индустрии развлечений и повышения разрешений, сложность рендеринга 3d графики растет огромными темпами и соотвественно растет потребность любого продакшена в вычислительных ресурсах для рендера. Уже с 90х годов прошлого века стали появляться специализированные вычислительные кластеры предназначенные для обработки компьютерной графики, которые получили название “рендер ферма”, render farm.

Основными отличиями от большинства обычных датацентров являются: 1) максимально мощные процессоры (а с недавних пор и видеокарты), т.к. процесс рендера графики очень ресурсоемкий 2) большое количество оперативной памяти для продуктивной обработки графики (в реалиях 2017 года – от 64Gb RAM) 3) высокопроизводительные системы хранения данных. Проще говоря, рендер ферма – это центр для обработки данных с максимально возможной производительностью, какой-то хостинг-центр не просто будет неэффективен, но скорее всего даже не сможет начать обработку графики, проекты просто не откроются на слабых машинах.

Виды рендер ферм

Есть несколько путей сегментации рендер ферм по разным критериям. Начнем с простого: фермы бывают а) служебные б) публичные.

В первом случае ферма создается частным лицом или компанией для рендера собственных проектов и не предполагает предоставление доступа к ресурсам для сторонних лиц и организаций. Частная рендер ферма может состоять из 3-5 станций в случае студии архитектурной визуализации или 50-100-200 серверов в случае крупной vfx студии, делающей полнометражные фильмы. На западе многие студии имеют собственные фермы из нескольких сотен и даже тысяч серверов!

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

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

Особенности использования рендер ферм

Давайте рассмотрим особенности использования внешних рендер мощностей и какие нюансы стоит учесть. В первую очередь, рендер фермы заточены на существенное ускорение рендера анимации, а не статичных картинок. Например, если у нас есть 10 серверов и 10 кадров – ферма поставит по кадру на сервер и мы получим как минимум ускорение в 10 раз (скорее всего больше потому что каждый сервер еще и мощнее чем ваша рабочая станция), если же мы отправляем на рендер 1 картинку, то те же 10 серверов могут считать ее распределенно, т.е. обмениваясь по сети информацией, обрабатывать коллективно, но тут уже по мере добавления серверов линейного прироста скорости рендера не происходит, потому что обмен информацией становится узким местом.
Тем не менее, если у вас например 9 камер в одной сцене, можно их поставить на рендер на ферме одновременно, а на вашем ПК они бы считались одна за другой.
Важно также оценить размер вашего проекта и скорость Интернета. Дело в том, что например, у вас проект весит 200 Гб и загружаться на ферму 30 часов, рендериться 5 часов, а потом часов 10 вы будете скачивать результаты. Вполне возможно, что окажется отрендерить у себя за сутки будет лучшим решением. Альтернативой тут может стать расширение собственного канала Интернет или оптимизация объема ассетов.
Практически на каждой рендер-ферме есть калькулятор, который поможет вам примерно оценить стоимость и время рендера. Ключевое слово здесь – примерно. Дело в том, что на данный момент не существует реальных способов оценить объем до рендера точно. Вам нужно будет отрендерить несколько кадров из секвенции у себя, ввести в калькулятор среднее время кадра, количество кадров и конфигурацию вашего компьютера. Калькулятор сравнит производительность с серверами фермы и выдаст прогноз. Однако, как вы понимаете, в начале секвенции кадры могут быть легкие по 10 минут, а в середине по нескольку часов, поэтому время кадра будет плавать существенно и итоговая стоимость может быть ниже или значительно выше.

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

Когда стоит пользоваться рендер фермой, а когда инвестировать в свое железо?

В первую очередь все зависит от объемов рендера. Если у студии стабильно идет статика в основном, то скорее имеет смысл обновить железо, а какие-то пиковые нагрузки отправлять на ферму.
Другое дело, если объемы рендера весьма значительные. Мировая практика говорит от том, что для большинства студий, особенно без плана производства на годы вперед, предпочтительнее иметь относительно небольшой парк машин для превьюшек и ежедневной рутины, а для финальных рендеров использовать рендер фермы.
Развитие собственной инфраструктуры для рендеринга – это значительные инвестиции на начальном этапе и постоянные расходы. Купив железо, студия начинает тратить деньги на охлаждение, системы хранения, электроэнергию, содержание в штате сотрудников, отвечающих за обслуживание серверов, ремонт и замены оборудования. При этом если нет круглосуточной загрузки оборудования хотя бы на 60-70% – эти вложения никогда не отобьются. Кроме того, развивая собственное железо сложно решить проблему пиковых нагрузок.
Простой пример: vfx студия имеет 50 машин и делает фильм, в течение полугода загрузка оборудования колеблется в среднем на уровне 30-50%. А потом подходит момент финальных рендеров и им фактически нужны 200 машин на 1 месяц, чтобы успеть в срок. Что делать? Понижать качество или брать внешние ресурсы? Как правило делают второе. Но ведь если купить себе 200 серверов на будущее, то 10 месяцев из 12 они будут простаивать еще больше. Короче говоря, если нет налаженного конвеера, как например при производстве мульт сериалов, собственное железо не имеет экономического смысла. Компания будет терять на этом деньги.

Читайте также:  База данных клиентов в access

Крупнейшие фермы в России и зарубежом

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

В России таких проектов всего

Отличная рендер ферма для самых разных проектов. Широкий спектр поддерживаемого софта, 250 мощных серверов Dual Xeon E5-2670, собственный софт для отправки задач на рендер за пару кликов для разного ПО: Blender, AE, Cinema 4D, 3ds max и даже Houdini.
Есть 10 GPU серверов на базе 6хGTX 1080Ti для рендера в OctaneRender и Redshift.

Служба поддержки работает круглосуточно, можно позвонить, написать и живой человек поможет с рендером или проконсультирует. Необычайно высокий уровень сервиса для России!
Час рендера, например, в 3ds max + Vray без скидок обойдется примерно в 75 рублей (1,24 USD)

Старая рендер ферма на основе арендованных вычислительных мощностей у университетов. Заявляют о 800 серверах и до 300 на пользователя, однако, на практике лично мне удалось запустить рендер более чем на 30-40. Свой софт работает только 3ds max и то не всех версий, в остальных случаях нужно сделать архив со всеми ассетами самому и загрузить на FTP, а потом запустить рендер из личного кабинета, что долго и неудобно.
Есть 3 GPU сервера по 4 карты 1080 по какой-то космической цене. Поддержка присутствует, но даже в простых настройках 3ds max не разбирается. Час рендера стоит аж 99 рублей!

MegaRender.com
Подпольная рендер ферма, ресурсов немного, получалось получить – всего 30-40 машин i7-4770k максимум, дополнительные машины арендуют. Автоматизация слабая, все приходится делать руками в 2016 году, сейчас не знаю. В суппорте похоже работает один человек – владелец “фермы”. GPU рендера нет.
Похоже на шарашкину контору без сроков и качества на кривом софте, но по очень низкой цене – от 15 руб за час.

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

Похожие статьи

Компания из Новой Зеландии OTOY стала первопроходцем в технологии GPU рендер. Весной 2012 года началась…

Рендер или рендеринг (от англ. термина rendering – визуализация) – это процес обработки модели с…

Для многих фрилансеров и архитектурных визуализаторов появление GPU рендеров таких как Redshift, Octane Render, существенно…

Ответы на популярные вопросы – что это, что значит.

Что такое Рендер (Рендеринг)

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

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

Этимология слова «Рендер».

Слово Рендер (Рендеринг) — это англицизм, который зачастую переводится на русский язык словом “Визуализация”.

Что такое Рендеринг в 3D?

Чаще всего, когда мы говорим о рендере, то имеем в виду рендеринг в 3D графике. Сразу стоит отметить, что на самом деле в 3D рендере нету трех измерений как таковых, которые мы зачастую можем увидеть в кинотеатре надев специальные очки. Приставка “3D” в название скорее говорит нам о способе создание рендера, который и использует 3-х мерные объекты, созданные в компьютерных программах для 3D моделирования. Проще говоря, в итоге мы все равно получаем 2D изображение или их последовательность (видео) которые создавались (рендерелись) на основе 3-х мерной модели или сцены.

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

Построение изображения.

Как уже говорилось ранее, рендеринг — это один из самых сложных технических этапов, ведь во время рендеринга идут сложные математические вычисления, выполняемые движком рендера. На этом этапе, движок переводит математические данные о сцене в финальное 2D-изображение. Во время процесса идет преобразование 3d-геометрии, текстур и световых данных сцены в объединенную информацию о цветовом значение каждого пикселя в 2D изображение. Другими словами, движок на основе имеющихся у него данных, просчитывает то, каким цветом должен быть окрашено каждый пиксель изображения для получения комплексной, красивой и законченной картинки.

Основные типы рендеринга:

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

Что такое Рендеринг в реальном времени?

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

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

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

Читайте также:  Вай фай роутер слабый сигнал

Что такое Предварительный рендер?

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

В отличие от Рендера в реальном времени, где основная нагрузка приходилась на графические карты(GPU) В предварительном рендере нагрузка ложится на центральный процессор(ЦП) а скорость рендера зависит от количества ядер, многопоточности и производительности процессора.

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

Программы для рендеринга.

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

Как правило, рендер движки являются встроенными в крупные 3D программы для работы с графикой и имеют огромный потенциал. Среди наиболее популярных 3D программ (пакетов) есть такой софт как:

  • 3ds Max;
  • Maya;
  • Blender;
  • Cinema 4d и др.

Многие из этих 3D пакетов имеют уже идущие в комплекте рендер движки. К примеру, рендер-движок Mental Ray присутствует в пакете 3Ds Max. Также, практически любой популярный рендер-движок, можно подключить к большинству известных 3d пакетов. Среди популярных рендер движков есть такие как:

  • V-ray;
  • Mental ray;
  • Corona renderer и др.

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

Многие рендер-движки сыскали славу в определенных сферах работы с 3д графикой. Так, например, “V-ray” имеет большую популярность у архитектурных визуализаторов, из-за наличия большого количества материалов для архитектурной визуализации и в целом, хорошего качества рендера.

Методы визуализации.

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

1. Scanline (сканлайн).

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

Алгоритм работы:

Вместо рендеринга «пикселя по пикселю», алгоритм функционирования «scanline» рендера заключается в том, что он определяет видимую поверхность в 3D графике, и работая по принципу «ряд за рядом», сперва сортирует нужные для рендера полигоны по высшей Y координате, что принадлежит данному полигону, после чего, каждый ряд изображения просчитывается за счет пересечения ряда с полигоном, который является ближайшим к камере. Полигоны, которые больше не являются видимыми, удаляются при переходе одного ряда к другому.

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

2. Raytrace (рейтрейс).

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

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

Алгоритм работы:

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

Метод Raycasting.

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

Нередко бывает, что «метод трассировки лучей» (raytrace) путают с методом «бросания лучей» (raycasting). Но на самом деле, «raycasting» (метод бросания луча) фактически является упрощенным «raytrace» методом, в котором отсутствует дальнейшая обработка отбившихся или заломленных лучей, а просчитывается только первая поверхность на пути луча.

3. Radiosity.

Вместо «метода трассировки лучей», в данном методе просчет работает независимо от камеры и является объектно-ориентированным в отличие от метода «пиксель по пикселю». Основная функция “radiosity” заключается в том, чтобы более точно имитировать цвет поверхности путем учета непрямого освещения (отскок рассеянного света).

Преимуществами «radiosity» являются мягкие градуированные тени и цветовые отражения на объекте, идущие от соседних объектов с ярким окрасом.

Достаточно популярна практика использования метода Radiosity и Raytrace вместе для достижения максимально впечатляющих и фотореалистичных рендеров.

Что такое Рендеринг видео?

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

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

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

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

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

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

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

Читайте также:  Интернет yota для компьютера

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

Рендер

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Статьи из рубрики «Ликбез для начинающих разработчиков игр«, скорее всего окажутся очень для Вас полезными, позвольте-с отрекомендовать:

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

Послесловие

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

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *