Добрый день. Я занимаюсь web-разработкой и почти всем, что с этим связано.

Часто задаваемые вопросы

На большую часть вопросов отвечал SATtva, за что ему огромное спасибо.

LuxRender — это фотореалистичный рендер, так почему же моё изображение выглядит нереалистично?

LuxRender (как, впрочем, и любой другой инструмент) — это не волшебная палочка, лишь взмахнув которой можно получить красиво.

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

Есть пара особых рекомендаций. Старайтесь не использовать лампы из Blender — точечные источники света далеки от физической правдоподобности. Можно использовать Area и, если вам нужен солнечный свет с помощью люксового окружения SunSky, Sun.

Для правильного рендеринга некоторых материалов и эффектов (типа бокэ) важным условием является соблюдение масштаба вашей сцены. Принято следующее соглашение: 1 BU = 1 метр. BU (Blender Unit) — условная единица измерений в Blender. Простейший ориентир: куб, добавляемый по умолчанию, имеет длину грани, равную 2 BU, т. е. двум метрам. Отталкивайтесь от этого и пользуйтесь размерной сеткой.

LuxRender рендерит очень медленно, даже после многих часов изображение очень шумное, есть цветные и белые точки. Почему так? Как быть?

В отличие от приближенных рендеров (Yafaray, POVRay), строящих освещённость сцены на основе приближенных моделей (например, фотонных карт, требующих сранительно небольших вычислений, поскольку полагаются на ограниченное число фотонов для облучения сцены с последующей интерполяцией яркости между такими разбросанными точками), точным рендерам, таким как LuxRender, дабы избежать оптических отклонений в распределении света и тени, необходим огромный объём обсчётов на каждый пиксель изображения. Кроме того, LuxRender — спектральный рендер, под капотом он выполняет все вычисления над длинами волн, а не RGB-сочетаниями цветов, что также требует дополнительных преобразований: на входе заданные цвета и текстуры материалов должны быть конвертированы в XYZ-волновую модель, а на выходе — обратно в RGB с учётом цветового пространства, баланса белого и прочих оптических параметров. Изначально исходите из того, что LuxRender на большинстве сцен принципиально не сможет работать быстрее приближенных рендеров (но бывают и исключения), рендеринг сферической неинтерьерной сцены в вакууме на среднестатистической двухядерной машине на разрешении 1024x768 может спокойно занять до 12 часов. Оцените, насколько это для вас приемлемо.

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

Во-первых, не используйте яркость рассеивающего (диффузного) слоя материалов выше 0.8 (значение V в окне выбора цвета). Физически яркость определяется соотношением света, отражённого от поверхности и поглощённого ею. Крайние верхние значения яркости, близкие к 1, означают, что поверхность отражает близкое к 100% количество падающего на неё света. С точки зрения рендеринга это значит, что алгоритм русской рулетки не будет обрывать световые пути на такой поверхности, а если вся сцена состоит из столь ярких материалов, фотоны будут перемещаться по ней без ослабления энергии, просто впустую расходуя вычислительные ресурсы процессора. Не забывайте о физической правдоподобности: светоотражение самой белой ламинированной бумаги не превышает 85%; самый яркий искусственный материал, спектралон, находящий применение в оптике и космонавтике, имеет светоотражение 99% в видимой части спектра. В природе нет диффузных материалов, отражающих весь падающий свет, а яркость большинства материалов лежит в диапазоне 0.4-0.7. Придерживайтесь этого правила, и ваша сцена будет не только рендериться быстро, но и выглядеть более реалистично.

Во-вторых, если в вашей сцене есть светоизлучающие объекты (меши, у которых включен emission-канал), старайтесь сделать их максимально простыми с точки зрения количества полигонов. Число полигонов в меш-лайтах напрямую влияет на темпы устранения шума в изображении. Будьте благоразумны и целесообразны. Если в дальнем углу вашей сцены висит лампочка, то нет никакого смысла моделировать в ней нить накаливания или накладывать пять уровней подразделения поверхности: все эти детали, лежащие на межпиксельных угловых расстояниях, всё равно никто не увидит. Если можете обойтись простыми плоскостями, используйте их.

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

Что мне сделать, чтобы определённый предмет в сцене выглядел очень белым, если использовать яркость, равную единице неправильно?

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

Рендеры выглядят какими-то блёклыми. Как с этим бороться?

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

Можно что-нибудь сделать, чтобы рендеры не были такими размытыми?

Во вкладке Render, в блоке Filter, выберите Mitchell и в поле Filter Width введите 1.5, Sharpness установите в значение 0.3333.

У меня геометрически сложная сцена, источник света скрыт от камеры за множеством препятствий. Можно как-то ускорить рендеринг?

В ЛюксБленде выберите пресет "1 Final - MLT/Bidir". Откройте вкладку Render, в блоке Sampler нажмите кнопку Advanced. Установите значение LM.prob порядка 0.1, а max.rejects -- в диапазоне 512-1024. Также задайте в блоке Integrator значение Depth в диапазоне 32-64 (для 64 может потребоваться перейти в режим Advanced, тогда укажите это значение в обоих полях eyedepth и lightdepth). Если геометрия суперсложная, и Люкс даже на таких значениях не может найти источник света, повысьте их до 128. Дальнейшее повышение целесообразно только из экспериментальных соображений; лучше измените свою сцену или убедитесь, что между камерой и ИС в принципе есть путь для прохождения света.

Поставил в интерьерную сцену порталы, но скорость рендеринга, отображаемая значением TotS/S (среднее число сэмплов в секунду), упала чуть ли не на порядок. Разве это правильно?

Это нормально. Не полагайтесь на этот показатель как на абсолютную скорость рендеринга сцены, поскольку разные сэмплы вносят разный вклад в очистку изображения от шума. Обратите внимание на показатель Eff (efficiency, эффективность). Он указывает, какой вклад вносят в изображение просчитываемые сэмплы. При использовании порталов он легко способен превысить тысячу процентов. В целом, лучше полагайтесь на глаз: отрендерьте пару изображений (одно с порталами, другое — без) в течение одинакового времени, а затем визуально сравните, в каком из вариантов заметно меньше шума.

Хочу купить новый компьютер для рендеринга с помощью LuxRender. Каким характеристикам стоит уделить больше внимания?

Количество ядер процессора, его тактовая частота и объём процессорного кэша L2/L3 — берите максимум на доступные в вашем бюджете деньги. Желательно, чтобы ваша система поддерживала двухканальную память с частотой не ниже 800 МГц. Примите во внимание, что в LuxRender рендеринг изображений в высоком разрешении требует очень большой объём ОЗУ; если планируете такие рендеры, оснастите машину минимум 4 Гб ОЗУ. Всё прочее, включая мощность видеокарты (и даже её наличие) не играет роли.

Как влияет на скорость рендеринга количество полигонов в сцене?

При прочих равных условиях в текущих версиях LuxRender на современном оборудовании зависимость скорости от числа полигонов сублогарифмическая: увеличение числа полигонов на порядок снижает скорость в среднем на 15%. С ростом потребления памяти происходит падение эффективности кэша процессора (повышается количество промахов чтения), и на определённом этапе возникает резкое падение скорости на 40-50%, но при дальнейшем наращивании геометрии темпы падения вновь стабилизируются, входя в зависимость только от тактовой частоты ОЗУ, контроллера памяти и ширины шины памяти. Некоторые эмпирические данные и графики приведены здесь: luxrender.net/forum/viewtopic.php?f=13&t=9545.

На чём LuxRender лучше рендерит, ATI или NVidia?

ATI/AMD.

Насколько оправдано устанавливать 2x GTX 560 ti -SLi или две HD 7850 в кросфаере?

CF или SLI не нужен, достаточно просто воткнуть несколько карт. OpenCL определяет и использует каждую из них как независимое вычислительное устройство. В Люксе в чистом GPU-режиме (SLG Path OpenCL) масштабирование почти линейное, то есть каждая дополнительная карта даёт чистый вклад с практически нулевыми накладными расходами (короче, две карты будут вдвое быстрее, чем одна).

А карты разных производителей Ati+NVidia. Тоже сможет распределить нагрузку?

Если сможете корректно установить видео-драйвера каждого из производителей (совместная установка драйверов AMD и NV весьма нетривиальна под GNU/Linux и я даже не уверен, возможна ли в принципе под Windows), то разумеется. Любое вычислительное устройство, которое OpenCL-инфраструктура способна распознать (будь то GPU или CPU), будет использоваться в процессе.

LuxBlend работает некорректно, как быть?

Для начала удостоверьтесь, что проблема именно в ЛюксБленде. Для этого, во-первых, убедитесь, что ЛюксБленд установлен в совместимую версию Блендера -- такие версии всегда указаны в файле README, находящемся в дистрибутиве данной версии Люкса. Если ответ положительный, перезагрузите Блендер с настройками по умолчанию, чтобы исключить влияние возможных конфликтующих параметров и аддонов (к примеру, LuxBlend не будет работать наряду с экспортером рендерера Mitsuba):

  1. В Блендере в меню File > Load Factory Settings.
  2. Там же File > Save Startup File.
  3. Перезапустите Блендер.
  4. В меню аддонов активируйте LuxBlend.
  5. Протестируйте, всё ли работает корректно.
Если проблема сохраняется, пожалуйста, создайте простую тестовую сцену, на которой чётко воспроизводится неработоспособность, подробно опишите ситуацию со всеми сообщениями об ошибках (желательно приложить выдержку из лога Blender) и запостите данную сцену и описание в официальном багтрекере luxrender.net/mantis.

Куда сохраняется полученное изображение?

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

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

LuxRender — это спектрально-прогрессивный рендерер. По умолчанию сцена будет рендериться, пока вы не будете довольны изображением (или просто надоест). Если необходимо ограничить время рендеринга (по времени или количеству сэмплов на пиксель), используйте параметры haltspp или haltime.

Почему LuxRender медленнее остальных рендереров?

Это связано с природой используемых алгоритмов. По существу, LuxRender создан как физический симулятор. Он генерирует изображение с использованием трассировки лучей и выполняет все вычисления над спектром лучей, а не над RGB-значениями. Также по умолчанию LuxRender будет использовать unbiased-метод рендеринга (metropolis light transport). Unbiased-методы сами по себе медленнее biased-методов. LuxRender также имеет возможность biased-рендеринга.

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

Какие режимы рендеринга biased, а какие unbiased?

Это зависит от настроек, используемых в некоторых случаях, но, в основном Direct, Instant Global Illumination, Ex Photon Map и Distributed Path являются biased, Path и Bidirectional — unbiased.

Что за светлые точки на изображении?

Светлые точки (не путать со светлячками) — это, так скажем, нормально, особенно, когда необходимы расчёты сложных путей лучей (например, каустики). Постепенно изображение станет чише. Если этого не произошло, то нужно либо искать ошибку в освещении сцены и настройке материалов, либо использовать biased-режим.

Что показывает «eff» в статистике? Почему она больше 100%?

«Эффективность» показывает, насколько легко для LuxRender «найти свет». Т.е. процент сэмплов, вносящих вклад в конвергенцию (сходимость) изображения. Для path — процент сэмплов, у которых есть контакт ИС и плана кадра (ситуация, при которой в ходе трассировки от камеры после серии переотражений луч попадает в ИС). Для bidir — соотношение сильно сложнее из-за наличия «Shadow Rays»

На самом деле, значение эффективности всегда должна быть выше 100%, за исключением, когда используется интегратор Ex Photon Map. Эффективность около или выше 100% означает, что либо сэмплер неправильно настроен, либо сцена очень тяжёлая.

Есть ли в LuxRender GPU-ускорение?

LuxRender поддерживает GPU-ускорение для некоторых методов рендерингда. Более подробно о GPU-ускорении можно узнать в документации.

Поддерживает ли LuxRender каустику?

Естественно! Каустика — это просто концентрация световых лучей на поверхности, поэтому никаких особыз усилий для создания этого эффекта не требуется.

Есть ли в LuxRender что-нибудь наподобие «проходов»?

Не совсем. В традиционном смысле проходы предполагают сохранение отдельных шагов визуализации вычислений (например, «Shadows Only») в отдельные файлы. LuxRender не может этого сделать, так как он не использует несколько шагов по созданию конечного изображения. Он просто пускает лучи в сцену, пока не остановится. Например, нет никакого прохода теней, тени — это просто места, куда упало меньше лучей, поэтому они темнее.

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

Что насчёт SSS (подповерхностное рассеивание)?

Да, оно доступно с помощью типа среды «homogeneous». предлагает физически правильное моделирование оптических явлений подповерхностного рассеивания, а не поддельные эффекты, используемые во многих biased-рендерах.

Стоит отметить, что применить SSS к плоским объектам не получится. Поэтому тонким объектам необходимо придать толщину.

Есть ли в LuxRender поддержка рендеринга HDR?

Лучше, чем нигде. Когда большинство рендереров говорит об «HDR-рендеринге», они имеют ввиду использование 16- и 32-битных RGB-значений. LuxRender — это спектральный рендерер, а это значит, что он не использует RGB-значения, производя трассировку лучей. Он работает со спектром лучей. Because of this, the dynamic range of brightness and color it can calculate is not limited by the precision of an RGB value. After the ray's final spectrum has been found, it is converted to CIE XYZ color on the film. RGB is only used for final output of the image.

If you prefer to follow an HDR-photography style workflow to finish your renders, LuxRender supports converting the XYZ film to 16 or 32bit RGB and saving the result to an OpenEXR file. This file will be saved without any further processing, leaving you with a file ready to be tonemapped. No multiple renders at different exposures or merging required.

Поддерживает ли LuxRender лампы чёрного света?

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

Есть ли в LuxRender лазеры?

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

Как мне продолжить рендеринг позже?

Если вы просто выберете «Load FLM», то можно будет выполнить только постобработку, но никакого рендеринга продолжить будет нельзя.

Я хочу использовать LuxRender для анимации. Что мне делать?

Строго говоря, вы можете визуализировать анимацию с LuxRender независимо от выбранных настроек. Since this can lead to long and unpredictable render times (far beyond what is feasible when you have a few hundred (or thousand) frames to do), there are few things you can do to get your render time down to something sane.

Более подробную информацию можно получить на странице Рендеринг анимации.

Как добавить фон?

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

Выберите сэмплер Metropolis, и установите значение large mutation probability около 0.1 и max consecutive rejections около 150-250. You should also increase the max depth for your surface integrator. Also, the Ex Photon Map and new SPPM integrators can more easily deal with complicated light sources, although you should remember that only SPPM is unbiased.

Я думаю о покупке нового компьютера для рендеринга в LuxRender rendering. Какая конфигурация подойдёт лучше всего?

Чем больше количество ядер процессора, его частота и размер L2/L3 кэшей, тем лучше. Please take into account that rendering of images in high resolution with LuxRender requires very large amounts of physical (unswapped) memory; if you wish to produce such renderings, equip your machine with at least 4-8Gb of RAM. If you are planning to use the Hybrid rendering mode in LuxRender, a powerful OpenCL capable graphics card will also be beneficial. More features for Hybrid are planned for future releases, so it may be useful to keep an upgrade path open for a faster card.

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

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

Моя сцена не выглядит реалистичной, хотя я отрендерил её в LuxRender

Most of the time this is due to unrealistic lighting carried over from when the user was working with a biased renderer. Generally, point and spot lamps should be avoided with LuxRender, as they are not terribly realistic. To get a directional light, you should instead use an area light with either a reflecting object around it or an IES profile. Unrealistic material settings can also cause problems, you should avoid extreme color values such as 0 or 1.0 (aka 255)

Изображение слишком тусклое и плоское

By default LuxRender's light response is linear as far as color is concerned, and with brightness as well if you select the Linear tonemapper. Most digital cameras do NOT behave this way, since it can produce dull and boring images. You can use the "Film Response" function to mimic the behavior of cameras for a more varied, rich color scheme. A number of camera profiles ship with LuxRender. You can also try adjusting the contrast or saturation in post using an image editor such as GIMP or Adobe Photoshop.

I am experiencing huge memory useage when I render a scene with LuxRender. What can I do?

LuxRender is very resource intensive. As a first suggestion, install as much RAM into your computer as possible. 32-bit systems can use up to 3-4Gb, while 64-bit systems can use much more. Running LuxRender on 32bit systems or systems with less than 4GB of physical memory is generally not recommended for production use. Some tips for decreasing memory usage:

I have followed these instructions and do not have a material brightness set over 0.8 or 0.9. But now my white objects don't look white, they look gray. What can I do?

Our recommendation is to not have the brightness value of any colors set over 0.8 or 0.9. This is because it creates a number of problems for the renderer and your images. Among them, are a lot of extra color speckles or "fireflies" in your image and lots of additional time to de-noise your image while it is being rendered. If your whites just aren't coming out white, there are a couple of things you can do:

Adjust the tonemapping parameters prior to the rendering. Or adjust the tone mapping parameters during rendering in LuxRender's GUI on the Imaging tab. If Reinhard tonemapping algorithm is used, you can lower the Burn parameter to raise image brightness, but try not to overexpose it.

У моей сцены очень низкий параметр эффективности (eff)

Это значит, что у LuxRender проблема с отражением (hitting) света. Есть несколько способов исправить ситуацию:

Изменение силы ИС не влияет на изображение

По умолчанию LuxRender использует Reinhard, который адаптируется под самый яркий объект.

Также можно использовать тонмаппер Linear.

Ошибка «Illegal instruction» при запуске LuxRender

Проверьте, что версия LuxRender совместима с вашим процессором. Также можете попробовать сборку для SSE, а не SSE2.

Что за белые/чёрные точки вокруг ламп?

Если вы используете фильтр Mitchell, убедитесь, что включена опция "supersample". Если это не решило проблему, вместо Mitchell можно использовать Guassian.
Также для Mitchell можно попробовать использовать значения (X=1 Y=1 B=1 C=0).
Если ничего не помогло, то остаётся использовать постобработку, например, bloom.

Я добавил портал в интерьер, но скорость рендеринга в kS/s стала ниже. Это нормально?

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

Что за странная полутень?

terminator shading problemЭто так называемая terminator shading problem — общая проблема всех точных рендеров. Решается повышением плотности сетки и использованием мешлайта, создающего более растянутую зону полутени.

LuxRender распространяется под лицензией GPL. Что это означает для моего бизнеса?

Это означает, что вы можете использовать LuxRender для чего угодно и на чём угодно.

GPL не накладывает какие-либо ограничения на период использования программы.

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

Более подробную информацию можно найти на странице Free Software Foundation's GPL FAQ.

Требует ли LuxRender использование copyleft-лицензии для созданных мной изображений?

Нет.

GPL не влияет на лицензию созданных изображений.

Blender Foundation собрал полезное руководство по использованию СПО в 3D-пайплайне. blender.org/education-help/faq/gpl-for-artists/

Если я или моя компания модифицирует LuxRender для своего пайплайна, нужно ли нам вносить эти изменения в проект?

Если модифицированная версия LuxRender не покидает пределы студии, то нет.

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

If you are unsure of your license obligations, you should consult with a lawyer.

Again, for more information, please see the Free Software Foundation's GPL FAQ at http://www.gnu.org/licenses/gpl-faq.html

Зачем нужно ещё один unbiased-рендерер?

Уже существует множество коммерческих и бесплатных продуктов, но среди них нет ориентированных на продакшн, свободных unbiased рендереров (не стоит путать свободное ПО и freeware).

В выборе свободного ПО есть несколько преимуществ:

Какая разница между LuxRender, SmallLuxGPU и LuxRays?

LuxRender — это основная программа, развиваемая сообществом. Это движок производственного класса. У него есть стабильные релизы, документация и всё остальное, необходимое для повседневной работе с 3D

SmallLuxGPU — это, так сказать, тестовая площадка для LuxRender. Изначально он был разработан как эксперимент для GPU-рендеринга. Он так и остаётся экспериментом и не имеет релизов. Когда добавленные функции становятся достаточно стабильными, их добавляют в LuxRender. Если необходимы надёжность и простота, то лучше пользоваться LuxRender.

LuxRays — это не приложение для визуализации. Это библиотека, используемая для аккселерации трассировки лучей с помощью OpenCL. Изначально она поддерживала только использование GPU для пересечения лучей в смешанном (CPU/GPU) режиме, но позже была расширена для чистого GPU-рендеринга. Это быстрее, чем гибридный рендеринг.

Зачем нужно было делать ответвление от PBRT?

Комментарии