Подпишись на этот RSS-канал и читай новые статьи и уроки о 3D!
Повторение пройденного, или БРИЛЛИАНТОВЫЙ ЗАП
…В незапамятные времена, еще до регистрации на нашем любимом сайте, где-то попался мне на глаза форумный диалог. Точнее, одна фраза, —несколько удивленная, но написанная явно от души: "Похоже, этот швед действительно рубит в Ментале". Меня тогда интересовали, каюсь, не столько граждане Швеции, сколько mental ray — интегрированный, т.е. самим Максом избранный визуализатор, — поэтому пропустить тему я никак не мог. Оттуда по ссылкам набрел на урок, который потом встретил здесь и о котором сейчас пойдет речь. С тех пор стараюсь не пропускать того, что делает "этот швед" с помощью mental-рендера, потому что "рубит" он, как правило, метко и со знаком качества.
Hakan "Zap" Andersson, он же Мастер Зап из города Eskilstuna, — парень вообще интересный. Сорок три года, музыкант, тонкий эстет, знаток виртуальных синтезаторов, фантастики и кинематографических спецэффектов… а по совместительству еще и софт-инженер в Mental Images. Еще бы ему не "рубить"! У него какой-то особый почерк; от художника в Андерссоне, пожалуй, не меньше, чем от инженера. Конечно, он дотошно следует всем законам физики и оптики, но только до тех пор, пока они не мешают замыслу — в этом случае Зап без колебаний отменяет законы и рендерит самой короткой и простой дорогой. Он никогда не усложняет, если можно не усложнять, поэтому его советы особенно притягательны для новичка в mental ray. А если учесть, что все дороги и тропинки Ментала Зап знает "изнутри"… Словом, стоит присмотреться.
Очередной анекдотический диалог встретился буквально сегодня. Некто, видимо, следовал скачанным советам — и теперь обиженно жалуется на результат рендеринга: "А оно не соответствует действительности…". И кто-то, похоже, из ветеранов CG тут же отвечает: "Да ведь ВСЯ графика не соответствует действительности!". Это я к тому, что Мастер Зап тоже, конечно, прекрасно знает об этом несоответствии. Самые лучшие 3D работы лишь приближаются к реальности (иногда и впрямь очень близко), — как асимптота стремится к прямой. В завершение своего урока "Fire and Ice" ("Пламя и лед"), Мастер почти искренне сожалеет, что получившиеся камни "нельзя ни отнести в банк, ни продать на сайте eBay". Однако, Зап и не пытается их СДЕЛАТЬ, он применяет типичную fake-технику, чтобы заставить зрителя ПОВЕРИТЬ… или хотя бы СОМНЕВАТЬСЯ — то ли перед ним фотография, то ли все-таки 3D-рисунок. Кажется, Зап по натуре изрядный шаман и великий иллюзионист:
И еще двумя причинами я извиняюсь за столь длинное вступление.
Во-первых, сама по себе тема — проблема рендеринга драгоценностей, о которую рано или поздно спотыкается, наверное, каждый любитель и каждый профессионал. Казалось бы, чего проще: смоделил, осветил, добавил прозрачности и каустики, поднял отражение до максимума, забликовал… все верно, да только получаются не бриллианты, получается, в лучшем случае, хорошо вымытое стекло. И даже у самых высоких профессионалов всегда остается интонация какого-то недовольства своими виртуальными "брюликами", какой-то их недоработанности, что ли. То же самое звучит в аннотациях к специальным плагинам и шейдерам (которых, кстати, на удивление мало, если сравнивать с инструментами для решения других задач) — например: "Да, дисперсия тут есть, но для визуализации драгоценностей все равно не годится"… Чтоб далеко не ходить за примерами, заметим, что и у нас эта тема уже всплывала (можно не сомневаться, что всплывет еще не раз). Уважаемый админ
Fly-69
предпринял серьезную попытку к ней подступиться (см. урок) — и обратите внимание на лексику нашего форумного обсуждения: "Буду очень благодарен за любой совет... "; " Задачка сложная...с таким не сталкивался..."; " Ээх, если бы все было так просто…"; "…ничего не получилось, как я ни крутил, ни светил и прочее... ".
Знаю точно: эта тема не без чертовщинки, и в доказательство могу предоставить коллекцию набитых шишек. С очередными (боюсь, далеко не последними) граблями поздоровался не где-нибудь, а именно в уроке Запа, на что сейчас и пожалуюсь.
Ну и, наконец, последняя причина обратиться к уже вроде бы "пройденному" уроку. Недавно раздобыл очень нужную мне инструкцию — глядь, а она на немецком. Что касается легендарного всеми нами google-переводчика… дальше можно не продолжать. И тогда я подумал: "А кому-то другому, может быть, вот так же нужен этот урок, — хотя бы для того, чтобы познакомиться с Мастером или с чего-то начать освоение mental ray, — но только вот если бы по-русски…".
Давайте попробуем основные моменты пройти на русском языке, а к подробностям в случае чего вернемся потом. Оригинальный текст урока "Fire and Ice", надеюсь, никуда от нас не денется.
ЧАСТЬ 1.
Уточняю: здесь и далее все происходит в 3Ds Max 2009. Уровень подготовки не имеет особого значения, — достаточно знать, что такое "Окно визуализации", оно же "Rendered Frame Window", оно же "Окно вывода", - словом, то самое окно, в котором появляется картинка и которое можно в любой момент вызвать из двух мест:
Предполагается также, что в настройках визуализации вы знакомы со вкладкой "Common", общей для всех рендеров, и сможете по необходимости изменить размер картинки, сохранить ее на диск и т.п. В этой же вкладке, внизу, в самом нижнем разделе Assign Renderer, необходимо заменить "Default Scanline", "V-Ray" или другой ваш рендер на "mental ray". С теми, кто впервые видит этот визуализатор или знает его не очень хорошо, уделим две минуты основным настройкам (лишь тем, которые понадобятся в дальнейшем). Вот такой вид принимает окно вывода, когда выбран mental ray:
Все как обычно, кроме нескольких рычагов контроля, вынесенных прямо на панель (все они продублированы также в основных настройках рендера). Что такое Reflection, Refraction, Soft Shadows - объяснять, думаю, не надо, просто оставляем их включенными. По умолчанию отмечен также пункт "Final Gather", т.е. активирован фирменный ментал-рэевский режим "финальной сборки света", просчета непрямого освещения. Параметр "Bounces" задает количество учитываемых отскоков-отражений каждого луча. Для данного случая я себе зачем-то поставил "2", хотя смысла в этом практически нет - у вас, в общем, пускай все остается как есть, в т.ч. "Bounces=0" и выключенный нижний параметр "Subset Pixels". Если понадобится, mental ray сам подстроится, напр., проигнорирует режим Final Gather (при включенной каустике и GI) и сообщит вам об этом. Вообще, в дальнейшем могут появляться устрашающего вида окна с сообщениями типа "Отключаю Jitter", "Прерываю генерацию фотонов" или "Не поддерживаю прозрачность" - если при этом рендеринг продолжается и его результат вас устраивает (хотя бы не удивляет), то все остальное не столь важно. Далее, по центру панели имеется раздел "Reuse" ("повторно использовать"), позволяющий записать на диск и при многократных визуализациях не пересчитывать заново одни и те же данные о геометрии объектов и o Final Gather. В подробных настройках рендера, разумеется, предусмотрена такая возможность и для карты теней, и для фотонной карты - только нам это все не пригодится, потому что мы постоянно будем что-то менять. Наконец, справа внизу находятся два слайдера-ползунка, регулирующих качество визуализации (Image Precision) и качество "финальной сборки" (Final Gather Precision). Верхний слайдер будем подстраивать в зависимости от того, рисуем ли мы какой-то промежуточный вариант или рендерим окончательный шедевр. Здесь у нас выбор из пяти предустановок, в диапазоне от Draft (черновик) до Very High. Второй, нижний ползунок оставляем как есть (Custom).
А пока из двух важных для нас вкладок контроля визуализации:
…заглянем во вкладку Renderer и сверим параметры.
Наиболее важные установки таковы:
Раздел "Filter" - вместо сглаживающего фильтра Box, который ставится по умолчанию при выборе mental ray, лучше установить более качественный и универсальный фильтр Mitchell.
Раздел "Samples per Pixel" - контроль качества картинки, более гибкий, чем на слайдере-ползунке с его пятью предустановками. В учебниках и Help'ах детально описана суть каждого параметра, но для нас сейчас достаточно понимать, что чем больше значения Minimum и Maximum, тем выше качество конечного изображения (и продолжительнее рендеринг). Наверное, для итоговых рендерингов поставлю вручную более серьезные значения, чем в режиме Very High.
Флажок "Lock Samples" снимайте, а "Jitter" оставляйте включенным, если собираетесь делать анимацию. Для статичных изображений можно ничего не менять.
В разделе "Rendering Algorithms", в пункте "Ray Tracing", должно быть включено "Enable", и обязательно включаем флажок "Use Autovolume". Сразу появляется диалог-предупреждение о том, что для использования режима "Autovolume" необходимы такие условия:
Этот диалог предлагает автоматически включить опции, которые нам так или иначе понадобились бы. Поэтому просто отвечаем "Да" и… и больше здесь ничего не делаем. Можно начинать путь.
Шаг 1
. Геометрия камня. Ювелиры давным-давно вычислили все наиболее удачные варианты формы и огранки драгоценных камней, учитывая оптические характеристики каждого. Этих вариантов не так чтоб много, они хорошо известны, и подразумевается, что мы уже создали себе заготовку. Пусть это будет что-то очень приблизительное, сделанное из GeoSphere - реалистичность огранки пока не играет для нас решающей роли, мы только учимся. Что-то вроде такого:
Шаг 2.
Мистер-мастер Zap настоятельно рекомендует поднять общее значение гаммы (яркости) картинки. Ищем в главном меню Customize, а там - самый нижний пункт Preferences. Сделаем, как советует Зап:
Шаг 3.
Источники света. Здесь стремимся к правдоподобной физике и фотореалистичности. Создаем два источника света, оба из класса "Photometric". Отмечаем про себя: а) выбор именно фотометрических источников обусловлен тем, что при включении каустики они автоматически выдадут необходимое количество фотонной энергии; б) наши ИС должны быть "прицельными" (Target), чтобы эта энергия использовалась именно там, где она нужна, а не освещала бы Вселенную попусту.
Итак, создали два ИС и "прицелили" каждый на заготовку. Примерно так:
В диалоге "Environment and Effects" убеждаемся, что включился режим "mr Photographic Exposure Control", и сразу, чтобы потом не забыть, включаем флажок "Process Background & Environment Map":
В моем случае окошко Preview поначалу оказалось почти белым, засвеченным (слишком ярким), поэтому пришлось снизить интенсивность ИС: вместо 1500 кандел (свечей), которые стояли по умолчанию, достаточным оказалось установить им по 50 cd. Как вариант, можно было отодвинуть источники света подальше или увеличить Exposure Value.
Продолжаем настройку света. Мастер Зап не допустил бы слишком резких, неестественных теней, поэтому вместо точечных ИС он использует Area Lights, т.е. придает эмиттеру форму, в данном случае, дисковую:
Обратите внимание - должен был включен флажок "Light Shape Visible In Rendering" (форма источника видима при рендеринге), на будущее пригодится для дополнительного отражения. Кроме того, не забудьте включить "Shadows" - "on" в режиме "Ray Traced Shadows".
Вот что изменилось после придания формы источникам света:
Шаг 4.
Добавляем непрямое освещение.
Тут необходимо кое-что уточнить. Бриллианты, конечно, и за пазухой красивы, но только в реалистичном окружении они прекрасны по-настоящему. Fly-69 в аналогичном уроке для V-Ray, разумеется, не упустил этого момента, резонно заметив: "Бриллиантам нужно что-то отражать". Золотые слова. Точнее, бриллиантовые...
Мы помним, как это делается: из выводного окна снова вызываем диалог "Environment and Effects", назначаем какую-нибудь карту в кнопку Environment Map (я использовал качественную "панорамную" HDRI-фотографию, но здесь особого значения это не имеет, лишь бы что-нибудь пестрело вокруг и дополнительно освещало сцену), цепляем кнопку мышкой, перетаскиваем в свободный слот Material Editor, на запрос отвечаем Instance, в координатных свойствах стоит Environment вместо Texture. Остается в скролл-окошке выбрать "Spherical Environment" (или "Cylindrical Environment").
Здесь может понадобиться подстройка яркости/контраста самого окружения. Это нетрудно отрегулировать в разделе "Output" того слота-материала, куда мы перетащили нашу Environment-карту (на настройках битмап-изображений не останавливаемся).
Создаем еще один источник света, на этот раз стандартный, тип - Skylight:
В результате у меня сложилась вполне жизненная ситуация - гигантские "драгоценности" лежат под открытым небом посреди площади:
Но не буду даже пытаться доработать это дикое зрелище, потому что не в нем суть. Зато, как видите, задал нейтральный цвет и добавил мягкой рельефной текстуры той "подложке", на которой находятся будущие бриллианты (на "кирпичах" они смотрелись совсем странно), еще немного прибрал интенсивность обоих фотометрических ИС… Вообще, к этому моменту результаты у всех свои, поэтому советую постоянно подстраивать расположение ИС и, соответственно, глубину-длину-направление теней, менять интенсивность света, попробовать заменить HDR-карту, "размножить" камни и придать копиям несколько другие формы, затем можно будет поиграть и с их цветом … Нет нужды пошагово комментировать все эти поступки. Скажу лишь, забегая вперед, что очень быстро убеждаешься в целесообразности именно стандартной "ювелирной" огранки, пусть даже приблизительной - потому что оптика алмазного, например, куба или шара совершенно не интересна. Кроме того, будьте готовы к тому, что ваши виртуальные камушки поведут себя столь же капризно и непредсказуемо, как их реальные прототипы. Однако терпения нам не занимать.
Шаг 5.
Материал. Здесь ради связности и экономии места опять вынужден кое-что пропустить - на этот раз теоретические замечания Запа об особенностях отражения/бликования, а также некоторые промежуточные шаги настройки. Все это есть в его уроке, все это действительно очень полезно, но, если понадобится, обсудим позже. А сейчас просто следуем алгоритму.
В параметрах mr Photographic Exposure (окно "Environment and Effects") разгоняем значение Highlight до единицы, чтобы блики были максимально яркими, - и для пущей декоративности добавляем виньетку:
Назначаем камушкам менталовский материал Arch&Design;, в разделе заготовок которого (Templates) сразу же выбираем заготовку "Glass (Physical)".
Выбрав этот Template, особое внимание обращаем на следующие параметры: Diffuse=0; Reflectivity, Transparency и оба Glossiness - по единице; параметр BDRF должен обеспечивать эффект стеклянного отражения по Френелю, т.е. быть в режиме "By IOR" (кривая отражения полностью определяется коэффициентом преломления, Index Of Refraction). Этот самый коэффициент рефракции задаем в соответствии с оптическими повадками алмаза = 2,42. И делаем еще некоторые подстройки, доступные только в материалах mental ray.
Прежде всего, мы можем немного смягчить, округлить ребра материала (это во вкладке Special Effects). Фактически, мы снимаем фаску, причем без применения геометрической модификации или дополнительных плагинов! И хотя на прозрачном объекте может показаться, что особой разницы нет, но даже при небольших значениях Fillet Radius эта чудесная способность материалов mental ray заметно добавляет реализма (в природе ведь не существует абсолютно четких граней). Судите сами:
А вот флажок "Skip Reflection on Inside" - снимаем обязательно (это во вкладке Advanced Rendering Options). Мы не хотим терять ни одного кванта света, поэтому нам не надо "Пропускать отражения внутри" материала ради ускорения рендеринга. Вообще, эта вкладка должна выглядеть вот так:
Данные установки сообщают Менталу о том, что мы будем рендерить цельный прозрачный объект, способный генерировать эффект каустики при включении соответствующего режима. Обратите также внимание на параметр Color at Max Distance - для выбранного темплейта этот режим включен по умолчанию, т.к. физическое стекло дает, начиная с определенной толщины (т.е. с определенной глубины проникновения света) голубоватый оттенок. Как менять этот параметр, как подстраивать оттенки прозрачности, отражения, внутреннего "рассеивания" - обо всем этом мы догадаемся интуитивно или научимся эмпирически. Кстати, сам Зап в конце концов объявляет, что ему больше всего нравятся бриллианты идеально чистой воды, и вообще выключает режим Max Distance. Мы тоже его выключим - и получим вот это:
Забрезжила робкая надежда, что в конце концов чего-нибудь да добьемся.
Шаг 6.
Пора включать каустику. В настройках рендера, теперь уже во вкладке "Indirect Illumination", вносим такие коррективы:
Здесь не все физически честно (напр., Multiplier-множитель каустики должен, по идее, всегда оставаться равным единице), но результат важнее педантичности. А результат - вот он:
Так, каустика заработала, под камнями зажглось. Добавим один важный штрих, один "психовизуальный" эффект, основанный на свойствах человеческого зрения - в частности, на особенностях восприятия чисто белого цвета. Ясное дело, цвет не может быть белее белого (R=255, G=255, B=255), однако, если окружить его даже легеньким ореолом "свечения", то, по выражению Запа, "вы сразу потянетесь за темными очками". Из многочисленных способов добиться этого Мастер Зап применяет самый простой. Снова зайдем в настройки рендера (раздел Camera Shaders) и просто включим флажок "Output", чтобы задействовать линзовый шейдер с эффектом свечения "Glare".
Помните пинк-флойдовскую "Shine Of Your Crazy Diamond"?
Вполне может статься, что сияние мы получим неестественное, слишком уж "crazy" (зато какая каустика по стенам пляшет!):
Теперь уже не мы, а почему-то сам автор Зап игнорирует такую вероятность ("засветить" камни), не считая нужным напомнить: в этом случае нужно перетащить задействованную нами кнопку "Default Output Shaders (Glare)" в свободный слот редактора материалов, а там уже отрегулировать параметр Spread, добавить и настроить лучи (Streaks) и т.п. Можно также применить любой другой из аналогичных линзовых или Vpost'овских эффектов, но главное - помнить, что их осмысленное применение добавляет к рендерингу бриллиантов очень многое. Это достаточно интересный вопрос, к которому не лишне будет вернуться в будущем.
Шаг 7.
Здесь Мастер иронично восклицает: "А сейчас, наконец, пришло время дисперсии!".
Не знаю, надо ли специалистам в CG напоминать прописные физические истины... Всем известно, что белый солнечный свет в действительности представляет собой сложный поток лучей, у каждого из которых своя длина волны (человечий глаз видит только небольшую их часть — лучи с длинами волн в диапазоне между инфракрасным и ультрафиолетовым). Считается, что в вакууме свет не встречает препятствий, а в т.н. "абсолютно черном теле" (не путать с черной дырой) поглощается полностью. А в прозрачном материале свет тормозится, причем каждый из "лучиков" тормозится и отклоняется чуть-чуть по разному — в зависимости от длины волны. При определенных условиях этот разброс, или дисперсия, лучей света принимает весьма заметный характер, — коромыслом через все небо, к примеру. Большинство драгоценных камней (бриллианты особенно) как раз и отличаются очень большим коэффициентом дисперсии, отсюда возникает неуловимая радужность внутренних отражений и бликов, и поэтому без визуализации данного эффекта ну никак не "сделать" нам настоящих камней.
В 3DS Max'e или любом другом редакторе, чтобы разложить преломленные рефракцией, отраженные рефлексией или аккумулированные каустикой лучи в спектральную "растяжку", фактически надо свет от каждого ИС отрендерить многократно, всякий раз чуть-чуть меняя цвет и коэффициент преломления (I.O.R.). На форумах встречаются идеи и попричудливее: например, при помощи карты Blend собрать материал из нескольких Shellac с разными IOR. Или размещать в нужных точках не один, а сразу три источника света, различных по цвету (Red, Green, Blue), на очень маленьком расстоянии друг от друга, чтобы в совокупности их яркость достигала белого цвета, но по краям световых пятен все-таки воспринималась бы как разноцветная. Или, скажем, создать из призмы семь разных клонов в одном и том же месте, да назначить им семь разных прозрачных материалов, не отличающихся ничем, кроме десятых или даже сотых долей IOR и оттенка прозрачности. Такого рода идеи не лишены логики, но на практике… Представьте, что вам надо в высоком качестве и разрешении, с просчетом каустики и GI рендерить картинку, которая среди прочего содержит пригоршню сапфиров. Уверен, вам будет далеко не безразлично, сотня их там или семь сотен, четыре у вас ИС или двенадцать…
И все-таки Зап пошел примерно по этому же пути. "Примерно" - потому что количество объектов и источников света умножать не придется. А "по этому" - потому что нужен троекратный (или шестикратный, если хотите) multipass-просчет. Мастер Зап написал маленький скриптик… если кто не знаком с MaxScript или другими аналогичными технологиями, то "скрипт" - это текстовый файл, содержащий набор команд на понятном программе языке. Вы просто запускаете последовательность - и программа сама выполняет все действия, которые иначе пришлось бы монотонно выполнять вручную.
Скрипт Запа называется "dispersionhack.ms" и весит меньше 7 килобайт. Чтобы вам не пришлось искать ссылки, качайте отсюда:
Сохранив файл на винчестер (все равно, в какую папку, лишь бы не забыть), заходим в меню MaxScript, пункт Run Script. В появившемся диалоге находим и выбираем наш файл, после чего появляется управляющее окно скрипта:
Поместите его сразу на заведомо свободное, не занятое другими окнами место (в какой-нибудь угол, например). И рассмотрим то, что нам предлагают.
Заголовок "Dispersion Hack" (и авторский комментарий в самом тексте скрипта) честно предупреждает: все, что будет происходить дальше - это лишь антинаучный "взлом", имитация законов физики. Кстати, одно из значений слова "hack" — "рубить".
Ниже - кнопка со словом "Diamond". Скрипт, по словам автора, "пытается быть умным", т.е. при загрузке первым делом ищет в компонентах сцены материал под названием Diamond или Diamant. Если у вас драгоценное вещество называется как-то иначе, следует нажать кнопку и вручную выбрать его в Material Editor среди прочих материалов сцены (на появившийся запрос отвечаем "Instance"):
Еще раз приходится подчеркнуть: скрипт "не признает" других типов материала, кроме Arch&Design.; Смотрим далее.
Параметр IOR, понятно, это Index of Refraction, коэффициент рефракции (преломления света). По умолчанию IOR установлен таким, каков он у алмаза: 2,42. То же самое касается коэффициента дисперсии: по умолчанию Dispersion=0,044.
Далее следует сделать выбор: будем ли мы раскладывать спектр на три составляющие (RGB, знаменитые "red-green-blue"), или нам хочется увидеть шестиполосный спектр (RYGCBM, т.е. red-yellow-green-cyan-blue-magenta, здесь пропущен только оранжевый цвет). Зрительно первый вариант намного заметней, второй - мягче и естественней… и занимает вдвое больше времени. Оставляем пока первый.
Жмем "Do Dispersion Render", набираемся терпения. Скрипт должен трижды просчитать распределение фотонов и трижды отрендерить картинку (к слову, в любой момент процесс можно прервать нажатием Esc)… а потом смешать все три варианта в один. Смешиваемые варианты отличаются друг от друга а) цветом отражения-преломления-каустики и б) углом преломления, т.е. IOR на каждом шаге чуть-чуть меняется. В результате сборки должен получиться "радужный" эффект.
Вот тут самое время поставить двоеточие и показать картинку. И (алле-ап!) - ничего у меня не вышло. Скрипт срабатывает, три раза добросовестно рендерит, каустика действительно "размазывается" (и чем больше устанавливаем значение dispersion, тем больше размазывается) - однако все три варианта рендерятся у меня одним и тем же (белым) цветом. Я проделал этот фокус примерно полтора миллиона раз, перепроверяя настройки рендера, свойства материалов, параметры света… с неизменной песней "Ooops, I did it again"… Не помогли даже самые радикальные, испытанные методы: протереть экран, перезагрузить систему, выпить кофе с сигаретой. В отчаянии я открыл скрипт-редактор (признаться, понимая лишь основы этого языка), и стал строго смотреть на программу — но она меня не испугалась и продолжала рендерить по-своему.
Конечно, проще всего сослаться на собственную криворукость. Дескать, простите, господа, невдобно выйшло. Очень может быть, что и впрямь у меня где-то в настройках стоит не та галочка или глючит какая-то библиотека. Однако, во-первых, на блог-форуме самого Андерссона, в потоке "Thanks!", "Cool!" и "Great!" также встречаются сообщения о проблемах. Во-вторых, я не постеснялся обратиться за помощью к двум куда более серьезным людям, и их реакция примерно такова: скрипт, конечно, очень короткий и простой, примитивный даже, но при этом не срабатывает адекватно ни в Мах Design 2010, ни в ритейл-версии Мах 2011. Что-то там не смешивается или, вероятнее всего, является зависимым от конкретной версии программы или ОС… иначе говоря, гарантированно работает только на машине Запа и в руках Запа. Уж не знаю, так ли это. Вот тут у меня элементарная тестовая схема:
Вот результат рендеринга, лишенный дисперсии:
А здесь все это упаковано в архив (380 Кб) вместе с самим макс-файлом "Disp_Test.max" и злополучным скриптом:
http://www.letitbit.ru/files/28186/zap_script_test.rar
Очень надеюсь, что кто-нибудь из знатоков MaxScript найдет время разобраться и поставить точку в этой темной истории.
Тем временем попробую окропить скрипт святой водой. О результатах сообщу.
…А должно ведь было получиться вот что:
Думаю, не станете спорить: прозвище свое он оправдывает, сработано мастерски. А у нас… что ж, мы тоже очень старались, у нас все впереди.
Мимоходом заметим, что у Запа применяются некоторые сугубо дизайнерские приемы фотореалистической "доводки" изображения. В оригинальном туториале объясняется каждый из вариантов, в т.ч. выполненных с использованием дополнительной опции в скрипте - режима хроматической абберации (искажения). Однако, эти приемы касаются уже не рендеринга бриллиантов, а их наиболее выгодной презентации, "подачи", поэтому здесь мы их не рассматриваем.
В заключение принято подводить итоги и извлекать пользу. И все-таки сначала, дабы не портить последнего впечатления, давайте о плохом.
1. Все было очень вкусно, только центральное "блюдо" не сработало.
2. А даже если бы и сработало, то:
- срипт предназначен для одной очень узкой задачи (чистые бриллианты) и рассчитан на работу только с ОДНИМ материалом (иначе говоря, с его помощью вы не сможете визуализировать лежащие рядом изумруд и рубин);
- время multipass-рендеринга возрастает втрое или вшестеро.
3. Требуется подстройка сцены, все подчинено главному объекту, необходим разгон гаммы, highlights, каустики и т.п. Конечно, недостатком это можно считать с известной натяжкой, но все-таки…
4. О таких вещах, как постановка света и тени, правильный подбор фона, поиск наиболее выгодных ракурсов (а на все это, учитывая чрезвычайно строптивый характер объекта, уходят часы работы) Зап практически не говорит. Хотя, как я погляжу, сам заканчивает урок совсем не при тех условиях освещения, в которых начинал.
I.M.H.O., чему всегда стоит поучиться у Мастера Запа, так это стилю. Эффектно и эффективно. Минимум средств, максимум результата. Конечно, для этого необходимо доскональное знание всех средств и инструментов, которые реализованы в Максе, а также умение находить кратчайшее, пусть даже неординарное решение.
Вот, скажем, во многих источниках, да и во встроенных Help'ах настойчиво рекомендуется применять для рендеринга драгоценностей карту "Falloff" (зависимость того или иного параметра от угла зрения). Иногда "спад" назначают в канал прозрачности, иногда бликования или даже свечения. Для бриллиантов карту "Falloff" Зап не использует вообще — и, видимо, правильно делает, не желая даже на самую малость ограничивать отражение/преломление света.
Далее, без дисперсии Андерссон, конечно, не обошелся. И заметим, что даже такой знаток секретов Ментала здесь не справился теми средствами, которые предлагает Макс — понадобилось что-то дополнительное, внешнее.
Важным и тонким штрихом являются финальные эффекты, в частности "подсветка" камней. Но это разговор отдельный, и, наверное, слишком длинный для того, чтобы начинать его сейчас. Скажу лишь, что рекомендованный эффект "Lens Glare", — далеко не лучшее решение, хотя бы потому, что плохо поддается регулировке и засвечивает все без разбору (включая, например, светлые каустические пятна, что совершенно не обязательно делать).
Кому как, а мне все эти нюансы не кажутся бесполезными. Постараемся их запомнить и… пойдем дальше?