13 ноября 2009 в 19:33Рейтинг: 9
19
0
Q. Люкс ведь -- физически точный рендер, тогда почему моя картинка выглядит нереалистично? Как сделать красивую картинку?
A. Люкс (как, впрочем, и любой другой инструмент) -- это не волшебная палочка, лишь взмахнув которой можно получить "красиво". Люкс, как и любой иной инструмент, можно использовать хорошо, а можно и не очень, получая сообразный результат.
Как было отмечено, Люкс -- физически точный рендер, т.е. реализованные в нём модели и алгоритмы стремятся наиболее точно симулировать процессы физической реальности, конкретно её оптической составляющей. Таким образом, получение реалистичного изображения подразумевает выполнение вами двух условий: 1) смоделируйте сцену максимально реалистично (согласитесь, если у вас кривые модели, то как бы они ни были отрендерены, это не скроет ошибок и не избавит зрителя от ощущения искусственности и нарушенных пропорций) и 2) правильно настройте материалы (в частности, не используйте "металлические" материалы для диэлектриков или окрашенных поверхностей, не используйте крайние значения для яркости и насыщенности цвета). Остальное рендер возьмёт на себя.
Есть пара особых рекомендаций. Старайтесь не использовать лампы из Блендера -- точечные источники света далеки от физической правдоподобности. Можно использовать лампы типа Area и, разумеется, Sun, если вам нужен солнечный свет с помощью люксового окружения sunsky. Кроме того, по возможности настраивайте все материалы непосредтвенно в ЛюксБленде, а не в Блендере, полагаясь на то, что они будут корректно преобразованы в модели материалов Люкса автоматически. Как правило, для любого сколь-нибудь нетривиального материала такая конверсия происходит слишком приблизительно и неоптимально (с точки зрения скорости рендеринга). Вы добьётесь лучшего результата, настраивая материалы вручную.
Кроме того, для правильного рендеринга некоторых материалов и эффектов (типа бокэ) важным условием является соблюдение масштаба вашей сцены. Принято следующее соглашение: 1BU = 1 метр. BU, Blender Unit -- условная единица измерений в Блендере. Простейший ориентир: при добавлении в сцену объекта-куба он имеет длину грани, равную 2BU, т.е. двум метрам. Отталкивайтесь от этого и пользуйтесь размерной сеткой.
Q. Люкс рендерит очень медленно, даже после многих часов изображение по-прежнему сильно зашумлённое, есть цветные и белые точки. Почему так? Как быть?
A. В отличие от приближенных рендеров (Yafaray, POVRay), строящих освещённость сцены на основе приближенных моделей (например, фотонных карт, требующих сранительно небольших вычислений, поскольку полагаются на ограниченное число фотонов для облучения сцены с последующей интерполяцией яркости между такими разбросанными точками), точным рендерам, таким как Люкс, дабы избежать оптических отклонений в распределении света и тени, необходим огромный объём обсчётов на каждый пиксель изображения. Кроме того, Люкс -- спектральный рендер, "под капотом" он выполняет все вычисления над длинами волн, а не RGB-сочетаниями цветов, что также требует дополнительных преобразований: на входе заданные цвета и текстуры материалов должны быть конвертированы в XYZ-волновую модель, а на выходе -- обратно в RGB с учётом цветового пространства, баланса белого и прочих оптических параметров. Изначально исходите из того, что Люкс на большинстве сцен принципиально не сможет работать быстрее приближенных рендеров (хотя бывают и исключения), рендеринг сферической неинтерьерной сцены в вакууме на среднестатистической двухядерной машине на разрешении 1024x768 может спокойно занять до 12 часов. Оцените, насколько это для вас приемлемо.
Это была плохая новость. А хорошая в том, что если вы сталкиваетесь с чрезвычайно низкой скоростью рендеринга, и даже спустя сутки картинка остаётся слишком шумной, то у вашей сцены наверняка велик потенциал для оптимизации. Следующие три правила способны увеличить скорость рендеринга в разы.
Во-первых, не используйте яркость диффузного слоя материалов выше 0.8 (значение V в окне выбора цвета). Физически, яркость определяется соотношением света, отражённого от поверхности и поглощённого ею. Крайние верхние значения яркости, близкие к 1, означают, что поверхность отражает близкое к 100% количество падающего на неё света. С точки зрения рендеринга это значит, что алгоритм русской рулетки не будет обрывать световые пути на такой поверхности, а если вся сцена состоит из столь ярких материалов, фотоны будут перемещаться по ней без ослабления энергии, просто впустую расходуя вычислительные ресурсы процессора. Не забывайте о физической правдоподобности: светоотражение самой белой ламинированной бумаги не превышает 85%; самый яркий искусственный материал, спектралон, находящий применение в оптике и космонавтике, имеет светоотражение 99% в видимой части спектра. В природе нет диффузных материалов, отражающих весь падающий свет, а яркость большинства материалов лежит в диапазоне 0.4-0.7. Придерживайтесь этого правила, и ваша сцена будет не только рендериться быстро, но и выглядеть более реалистично.
Во-вторых, если в вашей сцене есть светоизлучающие меши (меши, которым назначен материал light или включен emission-канал у любого другого материала), старайтесь сделать их максимально простыми с точки зрения количества полигонов. Число полигонов в меш-лайтах напрямую влияет на темпы устранения шума в изображении. Будьте благоразумны и целесообразны. Если в дальнем углу вашей сцены висит лампочка, нет никакого смысла моделировать в ней нить накаливания или накладывать пять уровней сабсурфа: все эти детали, лежащие на межпиксельных угловых расстояниях, всё равно никто не увидит. Если можете обойтись простыми плоскостями, используйте их.
В-третьих, используйте пресет "1 Final - MLT/Bidir" для любой своей сцены (если только не собираетесь рендерить анимацию). Он предлагает наиболее универсальное сочетание алгоритмов сэмплинга и рендеринга, пригодное для подавляющего большинства ситуаций. Разумеется, вы вольны перенастроить их, если понимаете, что делаете.
Если же и при соблюдении этих правил Люкс продолжает рендерить со скоростью черепахи, оборудуйте компьютер более мощным процессором или используйте несколько компьютеров в режиме сетевого рендеринга.
Q. Что мне сделать, чтобы какой-то предмет в сцене выглядел очень белым? Использовать яркость=1 ведь неправильно?
A. Назначьте диффузному слою материала яркость в соответствии с его физическими свойствами (0.8 для чистого белого материала), а для его выбеливания, если он кажется серым, используйте в процессе рендеринга параметры цветоотображения (tonemapping). Если выбран алгоритм Reinhard, можете снизить параметр Burn, чтобы повысить яркость изображения, но старайтесь не пересветить его.
Q. Рендеры Люкса выглядят какими-то блёклыми. Как с этим бороться?
A. Можете либо поднять цветонасыщенность (saturation) картинки в пост-обработке с помощью любого графического редактора, либо открыть ЛюксБленд > вкладка Output > параметры Colorspace > отключите кнопку Colorspace Gamma и в поле Gamma укажите примерно 1.5 вместо дефолтных 2.2 (можете ещё поиграть с гаммой в ходе рендеринга, чтобы добиться наиболее удачного результата).
Q. Можно что-нибудь сделать, чтобы рендеры Люкса не были такими размытыми?
A. Откройте ЛюксБленд > вкладка Render > в блоке Filter выберите "mitchell" и нажмите кнопку Advanced. Наконец, в полях x-width и y-width введите 1.5, sharpness установите в значение 0.3333. (Если используете экспериментальную [на момент написания данного FAQ] версию Люкса и ЛюксБленда, включите также опцию Supersample.)
Q. У меня геометрически сложная сцена, источник света скрыт от камеры за множеством препятствий. Можно как-то ускорить рендеринг?
A. В ЛюксБленде выберите пресет "1 Final - MLT/Bidir". Откройте вкладку Render, в блоке Sampler нажмите кнопку Advanced. Установите значение LM.prob порядка 0.1, а max.rejects -- в диапазоне 512-1024. Также задайте в блоке Integrator значение Depth в диапазоне 32-64 (для 64 может потребоваться перейти в режим Advanced, тогда укажите это значение в обоих полях eyedepth и lightdepth). Если геометрия суперсложная, и Люкс даже на таких значениях не может найти источник света, повысьте их до 128. Дальнейшее повышение целесообразно только из экспериментальных соображений; лучше измените свою сцену или убедитесь, что между камерой и ИС в принципе есть путь для прохождения света.
Q. Возможно ли как-то ускорить рендеринг интерьерных сцен?
A. Во-первых, обязательно используйте пресет "1 Final - MLT/Bidir". Во-вторых, у материала стёкол в оконных проёмах включите опцию Architectural (это избавит движок от просчёта рефракции, которая в данном случае особо не нужна). В-третих, в оконных и дверных проёмах, выходящих "наружу" за пределы сцены, установите порталы. Портал -- это плоскость, которой назначен люксовый материал portal и которая даёт движку подсказку, в каких местах свет снаружи (от неба или hdr-карты) может попасть в помещение. Нормаль такой плоскости должна быть направлена внутрь помещения. Сама плоскость должна полностью перекрывать проём (либо используйте инструмент Snap, чтобы подогнать её точно по размеру, либо сделайте, чтобы она чуть-чуть входила вглубь стен). Самое главное: вы должны наглухо запечатать порталами
все оконные и дверные проёмы и прочие отверстия, выходящие наружу сцены, иначе пользы не будет.
Стоит отметить, что портал не обязан быть именно плоскостью, это может быть любой незамкнутый меш. Но постарайтесь насколько только возможно минимизировать количество полигонов, используемых для портальных мешей, а также само число порталов: так, если вдоль одной из стен у вас полдюжины небольших окон, не закрывайте каждое из них отдельным порталом, а сделайте одну плоскость, и протяните её сквозь стену, чтобы перекрыть все окна разом. Причина в том, что порталы требуют сложнейших вычислений, и слишком большое их количество способно свести на нет любую потенциальную пользу от них.
Q. Поставил в интерьерную сцену порталы, но скорость рендеринга, отображаемая значением TotS/S (среднее число сэмплов в секунду), упала чуть ли не на порядок. Разве это правильно?
A. Это нормально. Не полагайтесь на этот показатель как на абсолютную скорость рендеринга сцены, поскольку разные сэмплы вносят разный вклад в очистку изображения от шума. Обратите внимание на показатель Eff (от efficiency, эффективность). Он указывает, какой какой вклад вносят в изображение просчитываемые сэмплы. При использовании порталов он легко способен превысить тысячу процентов. В целом, лучше полагайтесь на глаз: отрендерьте пару изображений (одно с порталами, другое -- без) в течение одинакового времени, а затем визуально сравните, в каком из вариантов заметно меньше шума.
Q. Хочу купить новый компьютер для рендеринга с помощью Люкса. Каким характеристикам стоит уделить больше внимания?
A. Количество ядер процессора, его тактовая частота и объём процессорного кэша L2/L3 -- берите максимум на доступные в вашем бюджете деньги. Желательно, чтобы ваша система поддерживала двухканальную память с частотой не ниже 800 МГц. Примите во внимание, что рендеринг на Люксе изображений в высоком разрешении требует очень большой объём памяти; если планируете такие рендеры, оснастите машину минимум 4 Гб ОЗУ. Всё прочее, включая мощность видеокарты (и даже её наличие) не играет роли.
Q. Есть ли в Люксе поддержка SSS? Если нет, то как можно его симулировать?
A. Реализация субповерхностного рассеивания запланирована на версию 0.7. Но в его отсутствие дейсвительно можно воспользоваться некоторыми хитростями, которые хоть и не позволят добиться физической точности данного свойства, но помогут получить приемлемый результат.
Субповерхностное рассеивание (SSS) -- процесс прохождения света через неоднородные среды (в основном низкой плотности, но есть и исключения, в частности, янтарь и жемчуг). Фотоны не преодолевают его напрямую, как стекло, но и не отражаются сразу из предповерхностных слоёв, как с диффузными материалами, а вследствие столкновений с микроскопическими вкраплениями могут терять часть своей энергии и сильно менять траекторию движения. Процесс SSS имеет две составляющие, и разные материалы проявляют их в разных соотношениях: 1) субповерхностное прохождение, когда фотоны проходят материал насквозь, хотя и покидают его сильно в стороне от оси прохождения из-за изменения траектории, причём это "сильно" способно превысить и 90 градусов, и 2) субповерхностное отражение, когда после серии соударений с микровкраплениями фотоны выходят из материала с той же стороны, с которой в него попали, но довольно далеко от места входа (в чём заключается принципиальное отличие от диффузных материалов).
Среди материалов Люкса есть один, проявляющий приближенные субповерхностные свойства -- это mattetranslucent. Обычно используется для симулирования тонкой ткани и мягких пластмасс, но прекрасно подходит и для неточной симуляции SSS в материалах высокой плотности. Материал имеет два канала: reflection (диффузное отражение) и transmission (субповерхностное светопрохождение). Варьируя яркость transmission можно задать степень субповерхностного прохождения. Но есть ряд правил. Во-первых, для естественного результата держите яркость (V) каждого из каналов ниже 0.8, иначе возникнет эффект внутреннего свечения (хотя в каких-то случаях им можно воспользоваться, но соблюдайте осторожность -- выглядит очень ненатурально). Во-вторых, старайтесь, чтобы яркость канала transmission не намного превышала яркость reflection, иначе объект полностью потеряет объём, станет аморфным. В-третьих, использование материала mattetranslucent даёт наилучший результат в сочетании, например, с glossy (используйте материал mix, чтобы смешивать разные материалы в нужных пропорциях).
Всё вышесказанное позволит получить хороший эффект субповерхностного прохождения. Однако, если материал моделируемого объекта предполагает лишь свойства субповерхностного отражения, придётся воспользоваться особой хитростью. Смоделировав объект, сделайте копию его меша, нажмите Alt+S и сожмите его относительно оригинала на несколько миллиметров (обычно на 1-2, редко больше 5). Нормали обоих мешей должны быть направлены наружу. Теперь у вашего основного объекта есть подповерхностный слой. Верхнему слою (внешнему мешу) нужно назначить материал mattetranslucent (один или в сочетании). Нижнему слою (внутреннему мешу) должен быть назначен диффузный материал matte. Изменяя "глубину залегания" нижнего слоя вы можете влиять на степень субповерхностного рассеивания: насколько сильно отражённый свет будет отклоняться от точки входа. Изменяя цвет нижнего слоя вы будете влиять на цвет отражённого света. Таким образом можно получить очень реалистичные органические объекты, такие как кожа (почти серый верхний слой, ярко-красный нижний слой). Также ничто не запрещает иметь несколько светопроводящих слоёв для наиболее сложных эффектов.
Важно ещё раз подчеркнуть, что mattetranslucent позволяет симулировать только материалы высокой плотности. В отсутствие поддержки физически точной модели SSS невозможно получить эффекты, наподобие видимых лучей света в стеклянной чашке с чаем.