Меню

Что такое рендеринг? И что такое рендер? Словарь разработчиков компьютерных игр! Что такое рендер? Рендеринг, методы и программы.

Стены

«Рендеринг» – все чаще мы встречаемся с этим новым и совсем не понятным словом. Игры, программы и, с не таких давних пор, профессии – всюду мы встречаемся с ним. Так что же такое рендеринг?

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

Рендеринг 3D модели

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

Однако в контексте под рендерингом могут иметь ввиду совсем другие вещи. Например, принимая вас на роботу, под данным требованием могут подразумевать навыки создания 3D графики, тогда как это только последний этап её создания.

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

Все этапы создания 3D модели

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

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

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

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

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

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

Рейтинг: 8.9 из 10 (13 голоса)
  • Алгоритмы
    • Tutorial

    Привет, друг! В этот раз я опять подниму вопрос о графике в ААА -играх. Я уже разобрал методику HDRR (не путать с HDRI) и чуть-чуть поговорил о коррекции цвета. Сегодня я расскажу, что такое SSLR (так же известная как SSPR, SSR): . Кому интересно - под кат.

    Введение в Deferred Rendering

    Для начала введу такое понятие как Deferred Rendering (не путать с Deferred Shading , т.к. последнее относится к освещению). В чем суть Deferred Rendering ? Дело в том, что все эффекты (такие как освещение, глобальное затенение, отражения, DOF ) можно отделить от геометрии и реализовать эти эффекты как особый вид постпроцессинга. К примеру, что нужно, чтобы применить DOF (Depth Of Field , размытие на дальних расстояниях) к нашей сцене? Иметь саму сцену (Color Map ) и иметь информацию о позиции текселя (другими словами на сколько пиксель далеко от камеры). Далее - все просто. Применяем Blur к Color Map , где радиус размытия будет зависеть от глубины пикселя (из Depth Map ). И если взглянуть на результат - чем дальше объект, тем сильнее он будет размыт. Так что же делает методика Deferred Rendering ? Она строит так называемый GBuffer , который, обычно, в себя включает три текстуры (RenderTarget ):

    В случае с Color map , Normal map вроде все понятно, это обычные Surface.Color текстуры: пожалуй, за исключением того, что вектор нормали может лежать в пределах [-1, 1] (используется простая упаковка вектора в формат ).

    А вот ситуация с Depth map становится непонятной. Как же Depth map хранит в себе информацию о позиции пикселя, да еще и одним числом? Если говорить сильно упрощенно, трансформация примитива:

    Float4 vertexWVP = mul(vertex, World*View*Projection);

    Дает нам экранные координаты:

    Float2 UV = vertexWVP.xy;

    И некоторую информацию о том, насколько “далеко” от камеры пиксель:

    Float depth = vertexWVP.z / vertexWVP.w;

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

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

    Float3 GetPosition(float2 UV, float depth) { float4 position = 1.0f; position.x = UV.x * 2.0f - 1.0f; position.y = -(UV.y * 2.0f - 1.0f); position.z = depth; //Transform Position from Homogenous Space to World Space position = mul(position, InverseViewProjection); position /= position.w; return position.xyz; }

    Напомню, что для построения GBuffer необходима такая методика как MRT (Multiple Render Targets ), которая рисует модель сразу в несколько Render Target (причем в каждом RT содержится разная информация). Одно из правил MRT - размерность всех Render Target должна быть одинаковой . В случае Color Map , Normal Map - Surface.Color : 32-ух битная RT , где на каждый канал ARGB приходится по 8 бит, т.е. 256 градаций от 0 до 1.

    Благодаря такому подходу мы можем применять сложные эффекты к любой геометрии, например самый популярный Screen Space эффект: SSAO (Screen Space Ambient Occlusion). Этот алгоритм анализирует буферы глубины и нормали, считая уровень затенения. Весь алгоритм я описывать не буду, он уже на хабре, скажу лишь то, что задача алгоритма сводится к трассировки карты глубины: у нас есть набор случайных векторов, направленных из считаемого “пикселя” и нам нужно найти кол-во пересечений с геометрией.

    Пример эффекта (слева без SSAO, справа с SSAO):

    Так же Deferred Shading является Screen Space эффектом. Т.е. для каждого источника света на экране (без всяких оптимизаций) мы рисуем квад в режиме Additive в так называемый RenderTarget : Light Map . И зная мировую позицию “пикселя”, его нормаль, позицию источника света - мы можем посчитать освещенность этого пикселя.

    Пример Deferred Shading (освещение выполнено отложено, после отрисовки геометрии):

    Достоинства и проблемы Screen Space эффектов
    Самый главный плюс Screen Space эффектов - независимость сложности эффекта от геометрии.

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

    Ну и стоит отменить, что Screen Space эффекты выполняются полностью на GPU и являются пост-процессингом.

    Наконец SSLR

    После всей теории мы подошли к такому эффекту, как Screen Space Local Reflections : локальные отражения в экранном пространстве.

    Для начала разберемся с перспективной проекцией:

    Горизонтальный и вертикальный угол зрения задается FOV (обычно 45 градусов, я предпочитаю 60 градусов), в виртуальной камере они разные т.к. учитывается еще и Aspect Ratio (соотношение сторон).

    Окно проекции (там, где мы оперируем UV-space данными) - это, что мы видим, на то мы проецируем нашу сцену.
    Передняя и задняя плоскости отсечения это соответственно Near Plane, Far Plane , задаются так же в проекцию как параметры. Делать в случае Deferred Rendering слишком большим значением Far Plane стоит, т.к. точность Depth Buffer сильно упадет: все зависит от сцены.

    Теперь, зная матрицу проекции и позицию на окне проекции (а так же глубину) для каждого пикселя мы вычисляем его позицию следующим образом:

    Float3 GetPosition(float2 UV, float depth) { float4 position = 1.0f; position.x = UV.x * 2.0f - 1.0f; position.y = -(UV.y * 2.0f - 1.0f); position.z = depth; position = mul(position, InverseViewProjection); position /= position.w; return position.xyz; }

    После нам нужно найти вектор взгляда на этот пиксель:

    Float3 viewDir = normalize(texelPosition - CameraPosition);
    В качестве CameraPosition выступает позиция камеры.
    И найти отражение этого вектора от нормали в текущем пикселе:

    Float3 reflectDir = normalize(reflect(viewDir, texelNormal));
    Далее задача сводится к трассировке карты глубины. Т.е. нам нужно найти пересечение отраженного вектора с какой-либо геометрией. Понятное дело, что любая трассировка производится через итерации. И мы в них сильно ограниченны. Т.к. каждая выборка из Depth Map стоит времени. В моем варианте мы берем некоторое начальное приближение L и динамически меняем его исходя из расстояния между нашим текселем и позицией, которую мы “восстановили”:

    Float3 currentRay = 0; float3 nuv = 0; float L = LFactor; for(int i = 0; i < 10; i++) { currentRay = texelPosition + reflectDir * L; nuv = GetUV(currentRay); // проецирование позиции на экран float n = GetDepth(nuv.xy); // чтение глубины из DepthMap по UV float3 newPosition = GetPosition2(nuv.xy, n); L = length(texelPosition - newPosition); }

    Вспомогательные функции, перевод мировой точки на экранное пространство:

    Float3 GetUV(float3 position) { float4 pVP = mul(float4(position, 1.0f), ViewProjection); pVP.xy = float2(0.5f, 0.5f) + float2(0.5f, -0.5f) * pVP.xy / pVP.w; return float3(pVP.xy, pVP.z / pVP.w); }

    После завершения итераций мы имеет позицию “пересечения с отраженной геометрией”. А наше значение nuv будет проекцией этого пересечения на экран, т.е. nuv.xy – это UV координаты в экранном нашем пространстве, а nuv.z это восстановленная глубина (т.е. abs(GetDepth(nuv.xy)-nuv.z) должен быть очень маленьким) .

    В конце итераций L будет показывать расстояние отраженного пикселя. Последний этап - собственно добавление отражения к Color Map :

    Float3 cnuv = GetColor(nuv.xy).rgb; return float4(cnuv, 1);

    Разбавим теорию иллюстрациями, исходное изображение (содержание Color Map из GBuffer):

    После компиляции шейдера (отражения) мы получим следующую картину (Color Map из GBuffer + результат шейдера SSLR):

    Не густо . И тут стоит еще раз напомнить, что Space-Screen эффекты это сплошной Information Lost (примеры выделены в красные рамки).

    Дело в том, что если вектор отражения выходит за пределы Space-Screen – информация о Color -карте становится недоступной и мы видим Clamping нашего UV .

    Чтобы частично исправить эту проблему, можно ввести дополнительный коэффициент, который будет отражать “дальность” отражения. И далее по этому коэффициенту мы будем затенять отражение, проблема частично решается:

    L = saturate(L * LDelmiter); float error *= (1 - L);

    Результат, отражение умноженное на error (попытка убрать артефакт SSLR - information lost):

    Уже лучше, но мы замечаем еще одну проблему, что будет, если вектор отразится в направлении камеры? Clamping ’а UV происходить не будет, однако, несмотря на актуальность UV (x > 0, y > 0, x < 1, y < 1) он будет неверным:

    Эту проблему так же можно частично решить, если как-нибудь ограничить углы допустимых отражений. Для этого идеально подходит фишка с углами от эффекта Френеля :

    Float fresnel = dot(viewDir, texelNormal);
    Чуть-чуть модифицируем формулу:

    Float fresnel = 0.0 + 2.8 * pow(1+dot(viewDir, texelNormal), 2);
    Значения Френеля, с учетом Normal-маппинга (значения fresnel-переменной для SSLR-алгоритма).

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

    Определение

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

    Процесс

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

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

    Когда спрашивают, обычно подразумевают рендеринг. Процесс этот часто связан именно с компьютерной графикой. В этом случае визуализация проходит по отработанному плану. Формируется плоская картинка для 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 и в новом окне выбрать более подходящий вариант. Тут же можно выставить качество визуализированного ролика. Ниже есть вкладка «Видео», на ней все параметры выставляются индивидуально для каждого пользователя.

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

    Рендеринг

    Вследствие этого, было разработано четыре группы методов, более эффективных, чем моделирование всех лучей света, освещающих сцену:

    • Растеризация (англ. rasterization ) совместно с методом сканирования строк (англ. scanline rendering ). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя.
    • Ray casting (рейкастинг ) (англ. ray casting ). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона. Возможно использование каких-либо очень простых способов добавления оптических эффектов. Эффект перспективы получается естественным образом в случае, когда бросаемые лучи запускаются под углом, зависящим от положения пикселя на экране и максимального угла обзора камеры.
    • Трассировка лучей (англ. ray tracing ) похожа на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три компонента, луча, каждый из которых вносит свой вклад в цвет пиксела на двумерном экране: отражённый, теневой и преломленный. Количество таких разделений на компоненты определяет глубину трассирования и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, но при этом он очень ресурсоёмкий, и процесс визуализации занимает значительные периоды времени.
    • Трассировка пути (англ. path tracing ) содержит похожий принцип трассировки распространения лучей, однако этот метод является самым приближенным к физическим законам распространения света. Также является самым ресурсоёмким.

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

    Математическое обоснование

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

    Основное уравнение

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

    Неформальное толкование таково: Количество светового излучения (L o), исходящего из определённой точки в определённом направлении есть собственное излучение и отражённое излучение. Отражённое излучение есть сумма по всем направлениям приходящего излучения (L i), умноженного на коэффициент отражения из данного угла. Объединяя в одном уравнении приходящий свет с исходящим в одной точке, это уравнение составляет описание всего светового потока в заданной системе.

    Программное обеспечение для рендеринга - рендеры (визуализаторы)

    • 3Delight
    • AQSIS
    • BMRT (Blue Moon Rendering Tools) (распространение прекращено)
    • BusyRay
    • Entropy (продажи прекращены)
    • Fryrender
    • Gelato (разработка прекращена в связи с покупкой NVIDIA , mental ray)
    • Holomatix Renditio (интерактивный рейтрейсер)
    • Hypershot
    • Keyshot
    • Mantra renderer
    • Meridian
    • Pixie
    • RenderDotC
    • RenderMan (PhotoRealistic RenderMan, Pixar’s RenderMan или PRMan)
    • Octane Render
    • Arion Renderer

    Рендереры, работающие в реальном (или почти в реальном) времени.

    • VrayRT
    • Shaderlight
    • Showcase
    • Rendition
    • Brazil IR
    • Artlantis Render
    Пакеты трёхмерного моделирования, имеющие собственные рендереры
    • Autodesk 3ds Max (Scanline)
    • e-on Software Vue
    • SideFX Houdini
    • Terragen , Terragen 2

    Таблица сравнения свойств рендеров

    RenderMan mental ray Gelato (разработка прекращена) V-Ray finalRender Brazil R/S Turtle Maxwell Render Fryrender Indigo Renderer LuxRender Kerkythea YafaRay
    совместим с 3ds Max Да, через MaxMan встроен Да Да Да Да Нет Да Да Да Да Да Нет
    совместим с Maya Да, через RenderMan Artist Tools встроен Да Да Да Нет Да Да Да Да Да Нет
    совместим с Softimage Да, через XSIMan встроен Нет Да Нет Нет Нет Да Да Да Да Нет
    совместим с Houdini Да Да Нет Нет Нет Нет Нет Нет Да Да Нет Нет
    совместим с LightWave Нет Нет Нет Нет Нет Нет Нет Да Да Нет Нет Нет
    совместим с Blender Нет Нет Нет Нет Нет Нет Нет Нет Нет Да Да Да Да
    совместим с SketchUp Нет Нет Нет Да Нет Нет Нет Да Да Да Нет Да Нет
    совместим с Cinema 4D Да (начиная с 11-ой версии) Да Нет Да Да Нет Нет Да Да Да Да Нет, заморожен Нет
    платформа Microsoft Windows , Linux , Mac OS X Microsoft Windows , Linux , Mac OS X
    biased, unbiased (без допущений) biased biased biased biased biased biased biased unbiased unbiased unbiased unbiased
    scanline Да Да Да Нет Нет Нет Нет Нет Нет Нет Нет
    raytrace очень медленный Да Да Да Да Да Да Нет Нет Нет Нет Да
    алгоритмы Global Illumination или свои алгоритмы Photon, Final Gather (Quasi-Montecarlo) Light Cash, Photon Map, Irradiance Map, Brute Force (Quasi-Montecarlo) Hyper Global Illumination, Adaptive Quasi-Montecarlo, Image, Quasi Monte-Carlo Quasi-Montecarlo, PhotonMapping Photon Map, Final Gather Metropolis Light Transport Metropolis Light Transport Metropolis Light Transport Metropolis Light Transport, Bidirectional Path Tracing
    Camera - Depth of Field (DOF) Да Да Да Да Да Да Да Да Да Да Да Да Да
    Camera - Motion Blur (vector pass) очень быстрый Да быстрый Да Да Да Да Да Да Да Да Да
    Displacement быстрый Да быстрый медленный, 2d и 3d медлленный Нет быстрый Да Да Да Да
    Area Light Да Да Да Да Да Да Да Да Да Да
    Glossy Reflect/Refract Да Да Да Да Да Да Да Да Да Да Да Да
    SubSurface Scattering (SSS) Да Да Да Да Да Да Да Да Да Да Нет Да
    Standalone Да Да Да 2005 года (сырая) Нет Нет Нет Да Да Да
    текущая версия 13.5,2,2 3.7 2.2 2.02a Stage-2 2 4.01 1.61 1.91 1.0.9 v1.0-RC4 Kerkythea 2008 Echo 0.1.1 (0.1.2 Beta 5a)
    год выпуска 2000 (?) (?) 2006 2011 2008
    библиотека материалов Нет 33 My mentalRay Нет 2300+ vray-materials 30 оф. сайт 113 оф. сайт Нет 3200+ оф. сайт 110 оф. сайт 80 оф. сайт 61 оф. сайт
    основан на технологии liquidlight Metropolis Light Transport
    normal mapping
    IBL/HDRI Lighting Да
    Physical sky/sun Да Да
    официальный сайт MaxwellRender.com Fryrender.com IndigoRenderer.com LuxRender.net kerkythea.net YafaRay.org
    страна производитель США Германия США Болгария Германия США Швеция Испания Испания
    стоимость $ 3500 195 бесплатное 1135 (Super Bundle) 999 (Bundle) 899 (Standart) 240 (Educational) 1000 735 1500 995 1200 295€ бесплатное, GNU бесплатное бесплатное, LGPL 2.1
    основное преимущество Baking высокая скорость (не очень высокое качество) бесплатное бесплатное бесплатное
    компания производитель Pixar mental images (c 2008 NVIDIA) NVIDIA Chaos Group Cebas SplutterFish Illuminate Labs Next Limit Feversoft

    См. также

    • Алгоритмы использующие z-буфер и Z-буферизация
    • Алгоритм художника
    • Алгоритмы построчного сканирования like Reyes
    • Алгоритмы глобального освещения
    • Излучательность
    • Текст как изображение

    Хронология важнейших публикаций

    • 1968 Ray casting (Appel, A. (1968). Some techniques for shading machine renderings of solids. Proceedings of the Spring Joint Computer Conference 32 , 37-49.)
    • 1970 Scan-line algorithm (Bouknight, W. J. (1970). A procedure for generation of three-dimensional half-tone computer graphics presentations. Communications of the ACM )
    • 1971 Gouraud shading (Gouraud, H. (1971). Computer display of curved surfaces. IEEE Transactions on Computers 20 (6), 623-629.)
    • 1974 Texture mapping PhD thesis , University of Utah.)
    • 1974 Z-buffer (Catmull, E. (1974). A subdivision algorithm for computer display of curved surfaces. PhD thesis )
    • 1975 Phong shading (Phong, B-T. (1975). Illumination for computer generated pictures. Communications of the ACM 18 (6), 311-316.)
    • 1976 Environment mapping (Blinn, J.F., Newell, M.E. (1976). Texture and reflection in computer generated images. Communications of the ACM 19 , 542-546.)
    • 1977 Shadow volumes (Crow, F.C. (1977). Shadow algorithms for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1977) 11 (2), 242-248.)
    • 1978 Shadow buffer (Williams, L. (1978). Casting curved shadows on curved surfaces. 12 (3), 270-274.)
    • 1978 Bump mapping (Blinn, J.F. (1978). Simulation of wrinkled surfaces. Computer Graphics (Proceedings of SIGGRAPH 1978) 12 (3), 286-292.)
    • 1980 BSP trees (Fuchs, H. Kedem, Z.M. Naylor, B.F. (1980). On visible surface generation by a priori tree structures. Computer Graphics (Proceedings of SIGGRAPH 1980) 14 (3), 124-133.)
    • 1980 Ray tracing (Whitted, T. (1980). An improved illumination model for shaded display. Communications of the ACM 23 (6), 343-349.)
    • 1981 Cook shader (Cook, R.L. Torrance, K.E. (1981). A reflectance model for computer graphics. Computer Graphics (Proceedings of SIGGRAPH 1981) 15 (3), 307-316.)
    • 1983 Mipmaps (Williams, L. (1983). Pyramidal parametrics. Computer Graphics (Proceedings of SIGGRAPH 1983) 17 (3), 1-11.)
    • 1984 Octree ray tracing (Glassner, A.S. (1984). Space subdivision for fast ray tracing. 4 (10), 15-22.)
    • 1984 Alpha compositing (Porter, T. Duff, T. (1984). Compositing digital images. 18 (3), 253-259.)
    • 1984 Distributed ray tracing (Cook, R.L. Porter, T. Carpenter, L. (1984). Distributed ray tracing. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 137-145.)
    • 1984 Radiosity (Goral, C. Torrance, K.E. Greenberg, D.P. Battaile, B. (1984). Modelling the interaction of light between diffuse surfaces. Computer Graphics (Proceedings of SIGGRAPH 1984) 18 (3), 213-222.)
    • 1985 Hemi-cube radiosity (Cohen, M.F. Greenberg, D.P. (1985). The hemi-cube: a radiosity solution for complex environments. Computer Graphics (Proceedings of SIGGRAPH 1985) 19 (3), 31-40.)
    • 1986 Light source tracing (Arvo, J. (1986). Backward ray tracing. SIGGRAPH 1986 Developments in Ray Tracing course notes )
    • 1986 Rendering equation (Kajiya, J.T. (1986). The rendering equation. Computer Graphics (Proceedings of SIGGRAPH 1986) 20 (4), 143-150.)
    • 1987 Reyes algorithm (Cook, R.L. Carpenter, L. Catmull, E. (1987). The reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH 1987) 21 (4), 95-102.)
    • 1991 Hierarchical radiosity (Hanrahan, P. Salzman, D. Aupperle, L. (1991). A rapid hierarchical radiosity algorithm. Computer Graphics (Proceedings of SIGGRAPH 1991) 25 (4), 197-206.)
    • 1993 Tone mapping (Tumblin, J. Rushmeier, H.E. (1993). Tone reproduction for realistic computer generated images. IEEE Computer Graphics & Applications 13 (6), 42-48.)
    • 1993 Subsurface scattering (Hanrahan, P. Krueger, W. (1993). Reflection from layered surfaces due to subsurface scattering. Computer Graphics (Proceedings of SIGGRAPH 1993) 27 (), 165-174.)
    • 1995 Photon mapping (Jensen, H.J. Christensen, N.J. (1995). Photon maps in bidirectional monte carlo ray tracing of complex objects. Computers & Graphics 19 (2), 215-224.)
    • 1997 Metropolis light transport (Veach, E. Guibas, L. (1997). Metropolis light transport. Computer Graphics (Proceedings of SIGGRAPH 1997) 16 65-76.)

    Рендеринг (rendering) – завершающий этап обработки сцен, полученных в результате 3d-визуализации. Различают две основных стадии этого процесса – в реальном времени, используют преимущественно в компьютерных играх, и пре-рендеринг. Именно он нашел применение в бизнесе. В первом случае большее значение имеет скорость выполнения расчетов, только при соблюдении этого условия качество изображений останется высоким. При предварительном рендеринге в приоритете реалистичность рисунка.

    Пре-рендеринг

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


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

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

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

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

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