Что такое отложенный рендеринг в играх. Отложенное освещение и затенение

If you"re a developer of 3D games, then you"ve probably come across the terms forward rendering and deferred rendering in your research of modern graphics engines. And, often, you"ll have to choose one to use in your game. But what are they, how do they differ, and which one should you pick?

Deferred Rendering for many lights (Image courtesy of Hannes Nevalainen)

Modern Graphics Pipelines

To begin, we need to understand a little bit about modern, or programmable, graphics pipelines.

Back in the day, we were limited in what the video card graphics pipeline had. We couldn"t change how it drew each pixel, aside from sending in a different texture, and we couldn"t warp vertices once they were on the card. But times have changed, and we now have programmable graphics pipelines . We can now send code to the video card to change how the pixels look, giving them a bumpy appearance with normal maps , and adding reflection (and a great deal of realism).

This code is in the form of geometry , vertex , and fragment shaders , and they essentially change how the video card renders your objects.



Simplified view of a programmable graphics pipeline

Forward Rendering

Forward rendering is the standard, out-of-the-box rendering technique that most engines use. You supply the graphics card the geometry, it projects it and breaks it down into vertices, and then those are transformed and split into fragments, or pixels, that get the final rendering treatment before they are passed onto the screen.



Forward rendering: Geometry shader to vertex shader to fragment Shader

It is fairly linear, and each geometry is passed down the pipe one at a time to produce the final image.

Deferred Rendering

In deferred rendering, as the name implies, the rendering is deferred a little bit until all of the geometries have passed down the pipe; the final image is then produced by applying shading at the end.

Now, why would we do that?



Deferred rendering: Geometry to vertex to fragment shaders. Passed to multiple render targets, then shaded with lighting.

Deferred lighting is a modification of deferred rendering that reduces the size of the G-buffer by using more passes on the scene.

Lighting Performance

Lighting is the main reason for going one route versus the other. In a standard forward rendering pipeline, the lighting calculations have to be performed on every vertex and on every fragment in the visible scene, for every light in the scene.

If you have a scene with 100 geometries, and each geometry has 1,000 vertices, then you might have around 100,000 polygons (a very rough estimate). Video cards can handle this pretty easily. But when those polygons get sent to the fragment shader, that"s where the expensive lighting calculations happen and the real slowdown can occur.

Developers try to push as many lighting calculations into the Vertex shader as possible to reduce the amount of work that the fragment shader has to do.

The expensive lighting calculations have to execute for each visible fragment of every polygon on the screen, regardless if it overlaps or is hidden by another polygon"s fragments. If your screen has a resolution of 1024x768 (which is, by all means, not very high-res) you have nearly 800,000 pixels that need to be rendered. You could easily reach a million fragment operations every frame. Also, many of the fragments will never make it to the screen because they were removed with depth testing, and thus the lighting calculation was wasted on them.

If you have a million of those fragments and suddenly you have to render that scene again for each light, you have jumped to x 1,000,000 fragment operations per frame! Imagine if you had a town full of street lights where each one is a point-light source...

The formula for estimating this forward rendering complexity can be written, in big O notation , as O(num_geometry_fragments * num_lights) . You can see here that the complexity is directly related to the number of geometries and number of lights.

Fragments are potential pixels that will end up on the screen if they do not get culled by the depth test.

Now, some engines optimize this, by cutting out lights that are far away, combining lights, or using light maps (very popular, but static). But if you want dynamic lights and a lot of them, we need a better solution.

Deferred Rendering to the Rescue

Deferred Rendering is a very interesting approach that reduces the object count, and in particular the total fragment count, and performs the lighting calculations on the pixels on the screen, thereby using the resolution size instead of the total fragment count.

The complexity of deferred rendering, in big O notation, is: O(screen_resolution * num_lights) .

You can see that it now doesn"t matter how many objects you have on the screen that determines how many lights you use, so you can happily increase your lighting count. (This doesn"t mean you can have unlimited objects-they still have to be drawn to the buffers to produce the final rendering result.)

Let"s see how it works.

The Guts of Deferred Rendering

Every geometry is rendered, but without light shading, to several screen space buffers using multiple render targets . In particular, the depth, the normals, and the color are all written to separate buffers (images). These buffers are then combined to provide enough information for each light to light the pixels.



Color , Depth , and Normal buffers. (Images by astrofa, via Wikimedia Commons.)

Final lighting (shading) result generated using the three buffers. (Image by astrofa , via Wikimedia Commons.)

By knowing how far away a pixel is, and its normal vector, we can combine the color of that pixel with the light to produce our final render.

Which to Pick?

The short answer is, if you are using many dynamic lights then you should use deferred rendering. However, there are some significant drawbacks:

  • This process requires a video card with multiple render targets. Old video cards don"t have this, so it won"t work on them. There is no workaround for this.
  • It requires high bandwidth. You"re sending big buffers around and old video cards, again, might not be able to handle this. There is no workaround for this, either.
  • You can"t use transparent objects. (Unless you combine deferred rendering with Forward Rendering for just those transparent objects; then you can work around this issue.)
  • There"s no anti-aliasing. Well, some engines would have you believe that, but there are solutions to this problem: edge detection , FXAA .
  • Only one type of material is allowed, unless you use a modification of deferred rendering called Deferred Lighting .
  • Shadows are still dependent on the number of lights, and deferred rendering does not solve anything here.

If you don"t have many lights or want to be able to run on older hardware, then you should stick with forward rendering and replace your many lights with static light maps. The results can still look amazing.

Conclusion

I hope that has shed some light on the subject. Your options are there to solve your rendering problems, but it is very important to choose the right one at the start of your game development to avoid difficult changes later on.



Добавить свою цену в базу

Комментарий

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

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

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

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


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

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

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

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

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

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

Определение

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

Процесс

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

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

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