вторник, 11 сентября 2012 г.

Unbiased render - чужой обзор

Наткнулся на интересный обзор - решил перепостить. 

Автор: Селюнин Роман  http://texnodar.ru

Краткий обзор Unbiased рендеров или эра физически корректных рендеров не за горами.


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

Причиной данного обзора послужили слишком уж разношерстные данные по представленным сегодня в сети технологиям рендеринга. Здесь и Unbiased рендеры и Biased рендеры, рендеры основанные только на CPU или только на GPU, с поддержкой CUDA или без таковой. В данном обзоре будут рассмотрены следующие Unbiased (физически корректные) рендеры: Maxwell Render 2.5.1, Indigo Renderer RT и 3.0, LuxRender 0.8, Iray 1.0.4, Fryrender и ARION Render 1.5.2, Octane Render 1 beta 2.52.





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

Рендер - в компьютерной графике это программа, получающая конечное 2D изображение (обычная картинка) по компьютерной 3D модели. Если же провести аналогию с реальным миром то: 3D модель - это сама реальность, рендер - это фотоаппарат, а 2D картинка - это фотография.

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

Первый и довольно большой этап - моделирование, на этом этапе дизайнер создает отдельные объекты, которые хочет поместить в готовую сцену. В зависимости от фантазии, времени и задач дизайнера сцены, это могут быть либо столы, стулья, шкафы, посуда, находящиеся в комнате и образующие например кухню . Либо смоделированные люди с мимикой, по сценарию разыгрывающие какую либо сценку. Моделирование происходит в пакетах 3D графики таких как: 3D Studio Max, Maya, Softimage (XSI), Cinema 4D, Blender, SketchUp.

Следующий этап - создание материалов. Для стула нужны материалы дерева, ткани, возможно, стали, если у стула видны винты. Для человека нужны такие материалы как кожа, текстуры одежды.

Последний же этап включает в себя настройку рендера (фотоаппарата 3D реальности) и собственно рендеринг (фотографирование этой самой реальности).

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

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

По основному показателю рендеры делятся на два типа.

Первый тип рендеров - Biased рендеры использующие принцип трассировки лучей. Такие рендеры не физически корректны и достаточно долго настраиваются. Для того, чтобы использовать такой рендер и получать хорошее изображение, нужно знать все опции настроек, так как каждая из этих настроек повлияет на конечное изображение. К таким рендерам относятся RenderMan, mental ray, V-Ray, finalRender и некоторые другие. Данные рендеры имеют преимущество в скорости обработки конечного изображения за счет неполного просчета пути света, проходящего из источника света в камеру. Собственно, поэтому у данного типа рендеров так много настроек, по ним написано много различных мануалов в сети. Во многих случаях отключение части эффектов оправдано и при незначительном снижении качества картинки (которое на глаз можно и не заметить) можно существенно сэкономить время просчета. Однако включение всех настроек на максимум приводит к повышению времени рендеринга до уровня физически корректных рендеров, тогда как качество опять же остается под вопросом, и сильно зависит от опыта дизайнера.

Второй тип рендеров - Unbiased рендеры, использующие принцип трассировки путей. Наиболее популярная реализация принципа трассировки лучей - алгоритм Metropolis Light Transport. Такие рендеры наиболее точно описывают законы поведения света и поэтому являются максимально физически корректными. К особенностям таких рендеров следует отнести минимум настроек самого рендера и фотореалистичное изображение, при задании физически корректных материалов и свойств объектов. Из за того, что путь света просчитывается полностью, со всеми преломлениями и отражениями (то есть максимально корректно). У данных типов рендеров тратится больше времени на просчет.

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

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

Хорошо, с рендерами разобрались, теперь стоит пару слов сказать про скорость рендеринга и технологии его ускорения.

Стоит сказать, что рендеринг одной сцены в Unbiased рендерах на центральном процессоре занимает от 6 до 24 часов. Это значит, что дизайнер вынужден ждать одного снимка, примерно 1 ночь на современных процессорах, либо прибегать к услугам рендер ферм. И так было до недавнего времени, пока в 2007 году nVidia не выпустила видеокарту на принципиально новом ядре G80. Вместе с этим ядром анонсировался и новый подход к видеокартам nVidia. Теперь видеокарта не только специализированное устройство для обработки изображений и вывода их на экран, но и устройство для универсальных вычислений в области науки и проектирования. Технологию позволяющую использовать видеокарты nVidia для организации вычислений общего назначения (GPGPU) назвали CUDA (Compute Unified Device Architecture). Казалось бы, зачем использовать видеокарту для таких целей, когда есть центральный процессор? Как оказалось все очень просто. Производительность Intel Core i7 2600K, который является самым производительным процессором на сегодняшний день (для домашнего применения) по результатам тестов, показывает производительность примерно в 90 GFLOPS (миллиардов операций с плавающей точкой в секунду) при рыночной стоимости 350$. Тогда как видеокарта GeForce GTX 570, не самая производительная на сегодня, но примерно той же ценовой категории 350$, имеет производительность 1400 GFLOPS. Путем нехитрых расчетов, можно сделать вывод, что видеопроцессор быстрее центрального процессора примерно в 15 раз. Достигается это не волшебством, а особенностью структуры видеопроцессоров. Дело в том, что центральный процессор вынужден поддерживать множество вариантов использования, из - за чего его оснащают большим количеством кэш памяти разных уровней, которая в свою очередь, занимает больше половины кристалла процессора. Видеопроцессор же используется для специализированных вычислений, что позволяет сделать его более производительным, хотя и сужает область его применения. Принимая все эти обстоятельства во внимание, nVidia предоставила свои видеопроцессоры для общих вычислений посредством технологии CUDA, сделав всем счастье. У конкурентов - компании ATI-AMD, все выглядит менее оптимистично, хотя поддержка технологии общих вычислений на видеопроцессоре поддерживается (OpenCL), но производители рендеров выбрали в большинстве своем технологии nVidia - CUDA.

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

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

1. Maxwell Render.

Первым рассмотренным рендером будет Maxwell Render. Это первый физически корректный рендер вышедший на рынок, на момент написания статьи актуальная версия 2.5.1. Этот рендер использует для расчетов только центральный процессор, является своеобразным эталоном рендеринга среди Unbiased рендеров. И в большинстве случаев говоря про физические рендеры имеют ввиду именно этот рендер. Это standalone (автономный) рендер. Значит это следующее, дизайнер подготавливает свою сцену в пакете для создания трёхмерной графики, это могут быть как всем известные пакеты, такие как 3D Studio Max, Maya, Lightwave 3D, Softimage (XSI), Sidefx Houdini, Maxon Cinema 4D, так и другие - менее распространенные. После этого дизайнер экспортирует сцену в рендер и производит расчет сцены в зависимости от настроек рендера. Вот тут то и кроются подводные камни - в экспорте. Насколько хорошо реализован экспорт - настолько правильно сконвертированы будут материалы, свет, камера в рендере, а следовательно их не нужно будет до настраивать отдельно.

Maxwell Render поддерживает следующие пакеты графики 3D Studio Max, Maya, Lightwave 3D, Softimage (XSI), Solidworks, Maxon Cinema 4D R9.6 - R13, Modo, Rhino, Sketchup 6 - 8. Стоимость рендера 895 евро. Возможности экспортера в Maxwell Render рассмотрим на примере Cinema 4D R12 коннектора, который подходит и к Cinema 4D R13. У коннектора есть возможность преобразования материалов в свои собственные, они в Cinema 4D после конвертирования, отображаются вместо стандартных. Преобразует коннектор материалы хорошо. Есть множество предустановленных материалов, также есть база данных материалов доступная всем желающим. Минусы этого рендера - это большое время рендеринга, которое в зависимости от сцены на одном современном ПК составляет от 6 до 24 часов. Причины таких затрат времени в самой природе Unbiased рендеров и в том, что Maxwell Render поддерживает вычисление только на CPU, про поддержку видеокарт не говориться вообще. Стоит отметить, что предпросмотра в Maxwell Render, в самом окне Cinema 4D нет, оно и понятно, в первые 10-20 мин изображение сильно шумит, и смысла в предпросмотре нет. В Maxwell Render есть сетевой рендеринг, что может, в какой-то мере компенсировать большое время рендеринга. Изображения в результате рендеринга выглядят действительно фотореалистично, этот рендер по праву можно считать одним из лучших на рынке по качеству получаемой картинки и одним из самых медленных в нашем обзоре по скорости её получения.

2. Iray Render.

Следующим мы рассмотрим специфичный рендер - Iray Render. А специфичный он потому, что является единственным не standalone рендером в данном обзоре. Он полностью встроенный. Этот рендер - продукт компании nVidia, является частью её системы визуализации RealityServer Platform http://www.mentalimages.com/products/realityserver.html. На данный момент iRay интегрирован в 3Ds Studio Max, Cinema 4D, BunkSpeed, Cativa V6. При этом только для Cinema 4D продукт продается отдельно за 980 евро, в остальные пакеты графики он поставляется встроенным изначально, и входит в стоимость. Тестировать рендер будем на Cinema 4D. Демо-версия поддерживает очень ограниченный функционал, протестировать на сценах с большим количеством полигонов не представляется возможным. Актуальная версия на момент написания статьи 1.0.4. Как и подобает полностью встроенному программному обеспечению, данный рендер поддерживает все функции Cinema 4D, такие как конвертирование материалов, поддержка камеры и освещения, есть предпросмотр! Поддерживается сетевой рендеринг, через встроенный в Cinema 4D Net Rend. IRay поддерживает технологию CUDA, а это значит, что рендер поддерживает видеокарты nVidia для ускорения вычислений. Ни качества, ни скорости рендера протестировать не представляется возможным. С одной стороны заявленные возможности многочисленны, казалось бы, чего еще можно желать от рендера. С другой стороны проверить их, или хотя бы посмотреть нельзя.

3. Fry Render и Arion Render.

Следующая пара рендеров - Fry Render и Arion Render от компании Random Control. На текущий момент Fry Render 1.5.0 версии, а Arion Render 1.5.02. Фактически эта пара рендеров отличается лишь поддержкой GPU и ценой в 200 евро. Arion Render стоит 995 евро в Multi GPU версии, Fry Render стоит 795 евро и не поддерживает вычисление на видеокартах. Так же можно купить Arion Render с поддержкой 1 видеокарты за 795 евро. В дальнейшем будем говорить об Arion Render подразумевая общие функции для обеих рендеров за исключением функции вычисления на видеокартах. Arion Render поддерживает 3D Studio Max, Cinema 4D, Rhinoceros 3D, SketchUp, Maya, Softimage (XSI), LightWave 3D, Modo пакеты 3D графики. Интегрирование в пакеты графики разберем на примере Cinema 4D. Коннектор для Cinema 4D поддерживает только версию R11.5, тогда как уже есть версия R13, неоперативненько. Единственный рендер в нашем обзоре, который не работает с Cinema 4D R12-R13. Конвертера материалов, как и каких либо настроек в самом коннекторе, кроме настроек экспорта в собственный формат нет, неоднозначный ход. Такое положение вещей для standalone рендера, коим является Arion Render пожалуй оправдано. Рендер происходит быстро и хорошо, с загрузкой всех ресурсов, и CPU и GPU которые есть. В Arion Render понравилась действительно необходимая функция освобождения ресурсов, иначе на компьютере невозможно работать - все ресурсы занимает рендер. Шум на изображении уходит быстро, скорость работы субъективна до подробного тестирования, но примерно за 20 мин изображение получается приемлемого качества на конфигурации Phenom II X4/GeForce GTX 460. Есть сетевой рендеринг. В общем, можно сделать вывод, хорошее добротное программное обеспечение, быстрое, но без поддержки Cinema 4D R12-R13.

4. LuxRender.

Четвертым рендером в нашем обзоре будет бесплатный рендер - LuxRender. Знатоки говорят: если ваши инструменты бесплатны - то ваше время ничего не стоит. Это в полной мере стоит отнести и к LuxRender. Честно говоря, по заявленным возможностям рендера можно было сделать вывод - у этого рендера есть поддержка всего, что нужно и это бесплатно. Но это впечатление сменилось отчаяньем после 2 часов непрерывных попыток вывести на экран хоть какое-нибудь изображение. Обо всем по порядку. Первое, LuxRender поддерживает следующие пакеты 3D графики - 3D Studio Max, Cinema 4D, SketchUp, Blender, Softimage (XSI), DAZ Studio, Poser. Каждый коннектор к соответствующему пакету разрабатывает отдельная группа людей, либо отдельный человек. С коннектором к Cinema 4D дело обстоит так, что у его разработчика с ником Marcus, возникла нехватка времени, и он прекращает разработку. Теперь любой желающий может связаться с ним и продолжить его начинания. Показательный пример бесплатного программного обеспечения. Коннектор к Cinema 4D R12-R13 находится в бета-версии. В самом коннекторе нет конвертера материалом, а в самом рендере нет редактора материалов. Коннектор просто экспортирует все, что есть в сцене в рендер, а тот обрабатывает. После того как удалось настроить сцену, вернее взять готовую из примеров, рендер показал картинку, настроек материалов по-прежнему не было, что странно. У рендера заявлена поддержка GPU средствами языка OpenCL, а это, в теории, значит поддержку не только видеокарт компании nVidia, но ATI видеокарт. На практике настроить просчет на видеокарте GeForce GTX 460 так и не удалось. А на процессоре ждать просчета пришлось бы 12 часов, что никак не входило в планы быстрого рендеринга сцен. У LuxRender есть сетевой рендеринг. Впрочем, стоит подчеркнуть, что LuxRender бесплатен и находится в версии 0.8 стабильной и 0.9 бета. LuxRender единственный бесплатный рендер с такими возможностями. Если заняться настройкой этого рендера основательно, то, скорее всего все получится. Хотелось бы пожелать команде разработчиков LuxRender удачи - они тратят свое время, которое у программистов оплачивается хорошо, чтобы мы могли пользоваться бесплатно LuxRender.

5. Indigo Renderer RT и Indigo Renderer 3.0.14.

Еще одна пара рендеров в обзоре - Indigo Renderer RT и Indigo Renderer 3.0.14. Разница в цене этих рендеров значительна 145 евро у Indigo Renderer RT против 595 евро у Indigo Renderer 3.0, таблица сравнения отличий предоставлена по адресу http://www.indigorenderer.com/product-comparison. В дальнейшем будем говорить про Indigo Renderer 3.0.14. При первом взгляде на Indigo Renderer создается ощущение чего то знакомого. Indigo Renderer очень похож на бесплатный LuxRender, в котором добавлены функции. У Indigo Renderer есть коннекторы к: 3D Studio Max, Cinema 4D, SketchUp, Blender, Maya, Revit. В коннекторе для Cinema 4D R13 можно конвертировать материалы Cinema 4D в собственные материалы Indigo, а также выставить настройки экспорта во внешний Indigo Renderer. Рендер имеет редактор материалов, правда на любителя, в нем все смешано: камеры, материалы, фон, какие то объекты без свойств - в общем неудобно. В рендере есть предпросмотр, для чего он может понадобиться непонятно, рендер сам по себе является визуализатором, а визуализатор визуализатора странное явление. Indigo Renderer использует мощности процессора и видеокарты для расчетов. Выглядит это немного странно, при расчете изображения с включенной поддержкой видеокарты загруженность ядер процессора постоянно меняется в приделах 75-95% на ядро. Загруженность видеокарты постоянно "прыгает" от 0 до 99% в основном показатель использования держится на уровне 60-70%. Итого, процессор загружен на 80% в среднем, видеокарта на 70%, а субъективного прироста в скорости просчета незаметно. Может прирост будет виден в тестах? В любом случае сложно на глаз увидеть разницу в скорости между расчетами только на процессоре и в смешанном режиме процессора и видеокарты. В версии Indigo Renderer 3.0.14 присутствует также сетевой рендеринг. Стоит напомнить, что цена данного рендера 145 евро, что существенно дешевле конкурентов и безусловно данный рендер найдет своих поклонников.

6. Octane Render.

Последний рендер в нашем обзоре - это Octane Render. Текущая версия 1.0 бета 2.52 и предлагается по цене 99 евро, разработчики продают бета версию для тестирования и обещают, что стоимость релиза будет в 2 раза дороже. Пользователи же, которые купят бету, смогут перейти на актуальный релиз бесплатно. Рендер имеет коннекторы к 3D пакетам графики: 3D Studio Max, Maya, Softimage XSI, Blender, Cinema 4D R13, Sketchup, Modo. В Cinema 4D R13 коннектор выглядит следующим образом: один пункт - это настройки экспорта с 2 вкладками, второй пункт - это собственно экспорт и рендеринг. Конвертирования материалов Cinema 4D в материалы Octane Render происходит автоматически при экспорте. Сам рендер выглядит стильно, просто и понятно. В Octane Render есть редактор материалов, при этом очень продуманный, основанный на нодах - графических объектах, позволяющих визуально следить, как образуется сцена. Octane Render - это рендер, основанный целиком для расчетов на видеокартах nVidia с технологией Cuda. Логика разработчиков проста, если видеокарта быстрее процессора в 15 раз, то зачем столь медленное устройство, как процессор использовать в принципе? Поэтому когда происходит рендеринг, процессор не загружен вовсе, и может быть использован для более нужных задач. Octane Render - это Multi-GPU рендер, у которого скорость повышается практически линейно с установленными вновь видеокартами. Добавили вторую видеокарту - скорость увеличилась практически в 2 раза, добавили третью - в 3 раза. Считает рендер действительно быстро. Прямо на глазах шум уходит с изображения, сменяясь фотографией. К примеру, за 10 - 15 мин можно получить достойный результат на GeForce GTX 460. В платной версии есть доступ к онлайн базе данных материалов, а так же возможность сохранения изображения и экспорта нод материалов. Сетевого рендеринга нет, но для одиночных сцен он не к чему, а для анимации был бы не лишним. Настройки логичны, удобны, картинка рендериться быстро и хорошо, а если учесть что это бета, да еще и за 99 евро в Multi-GPU версии... Совсем хорошо.

Вывод.

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

Изображение в начале поста создано пользователем enricocerica с форума октана

Комментариев нет:

Отправить комментарий