Render.ru

Shadow/Light map в MAYA

Рейтинг
638
#1
Привет!
Делаю shadow/light map в майя, рендерю ментал реем:
surfaceLuminance->ramp->specular слот в mib_photon_basic
На surfaceLuminance выдается ошибка - оказывается ментал рей эту ножу не поддерживает. Попробовал ее заменить на lambert шейдер (outColor) - тоже выдается ошибка. Посоветуйте, как сделать shadow/light карту, чтобы можно было рендерить ментал реем?
 

Puppet

Активный участник
Рейтинг
19
#2
Брр... написано не понятно.
Зачем на фотонный шейдер вешать surface shader?
Зачем столько извращений?
Почему нельзя просто забейкать освещение путем нажатия одной кнопки?
Зачем столько примудростей, да и еще не правильных?
 
Рейтинг
638
#3
Puppet, этот способ советуют люди на CgTalk. Этот стандартный способ для создания shadow/light карты, не знаю, с чего ты взял что он неправильный.Что же касается lambert вместо surfaceLumianance, то это взято с урока Стивена Штальберга по skin шейдеру. Тоже вариант создания shadow/light карты.
Теперь о фотонах и карты для них: на вопрос зачем, отвечаю, затем, чтобы темная сторона испускала больше фотонов, чем светлая. Только как оказалось, ментал рей не поддерживает surfaceLuminance. Не поддерживает он и карту, созданную через lambert.
При чем здесь бейк путем нажатия одной кнопки?
 
Рейтинг
638
#5
Прежде, чем давать советы о том как надо делать, неплохо бы было тебе взять и поискать поисковичком в интернете - что же это такое.
 

Puppet

Активный участник
Рейтинг
19
#6
Что есть в твоем понятии "создания shadow/light карты"?
Я понимаю это как бейкинг освещения.
 
Рейтинг
638
#7
Toon-шейдер, мне кажется, самый наглядный пример, если такую карту выводить на color. Его конечно можно сделать и основываясь на угле между гранью и направлением на источник света. Но проще на основе общей освещенности, особенно, если много источников.
ИМХО, бейкинг тут ничем не поможет.
 
Рейтинг
638
#9
Здесь речь идет не о том, чтобы забейкить и получить текстуру. Речь о том, чтобы всю градацию освещения объекта перевести в интервал от 0 до 1. Самое темное - 0, самое светлое - соответсвенно 1. И на основе этого градиента строить дальше, если конечно, знаешь, что с ним дальше делать ;) Но два примера я уже в этом топике приводил.
 

Puppet

Активный участник
Рейтинг
19
#10
Так а причем тут световая и теневая карта???
Если речь о банальном картуне. Что мозги то пудрить?
И тем более причем тут mib_photon_basic? mib_photon_basic вешается на слот фотонного шейдера шейдинг группы и больше никуда.

А если тебе нужно просто чтобы GI влиял на картунный шейдер, то не понимаю в чем проблема, используй обычный Ramp Shader.

А "создания shadow/light карты" это и есть как раз бейкинг, тоесть запись в текстуру(карту) теней и освещения.
 
Рейтинг
638
#11
Млин. Еще раз поясняю: куда вешается mib_photon_shader я и без тебя прекрасно знаю. Еще раз поясняю: чтобы из темной стороны испускалось больше фотонов, чем из светлой.
Shadow/Light карту можешь считать хоть чем, нормальные люди ее считают именно тем, чем она есть. За сим прошу лично тебя больше не советовать. Потому что твоей полезной информации, основанной на неверных представлениях, ноль целых хер десятых. Не надо меня учить, что есть бейкинг, а что есть shadow/light. Оставайся при своем мнении, меня оно честно говоря не волнует абсолютно.
 
Рейтинг
638
#12
Блин, сто раз написал про фотоны. Человек спрашивает, "Если речь о банальном картуне. Что мозги то пудрить?". Для тех, кто в танке, картун - это всего лишь был пример. К фотонам не имеющий никакого отношения. Надо читать внимательно, а не по-диагонали. Может хватит уже свое ламерство так упорно отстаивать и действительно пудрить мозги и действовать по принципу, главное ответ, а не его смысл?
 
Рейтинг
638
#13
Мне нужно управлять specular слотом в mib_photon_basic.
При чем здесь Ramp шейдер?
Только полный дегенерат, извините конечно, может советовать из совсем другой оперы и при этом вначале утверждать, что способ нестандартный. Потом, что бейк и shadow/light одно и тоже. Потом про картун шейдер, хотя не про него вообще была речь. В общем, Puppet, не лезь сюда больше.
 

Puppet

Активный участник
Рейтинг
19
#14
Фотонные шейдера не испускают фотоны, а отражают.

Попробуй перевести "создания shadow/light карты" и посмотри что получится. Хотя это не принципиально и не так интересно.

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

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

Тем более фотонов с темной стороны больше е станет, они в лучшем случае могут стать только ярче. Хотя можно написать фотонный шейдер который будет на основе нормали к свету рождать большее количество лучей при попадании, что кстати может существенно просадить фотонный трейсинг.

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

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

Может я тупой и опять не понял вопроса?

P.S. По поводу ламера и дегенерата... аккуратнее надо быть с выражениями, тем более с незнакомым человеком, об уровене знаний которого не имеешь представления.
 
Рейтинг
638
#15
Уверяю тебя, в 6 максе ментал рей работает с этой идеей и рендерит на ура. Фотоны управляются картой - градиент shadow/light, о чем я тебе давал уже ссылку. То что в майе просто не получается "просто" так сделать, это еще не значит, что проблема не стоит того. Твое мнение по поводу стоит оно того или нет не играет никакой роли.
Ты опять делаешь совершенно неверные предположения о работе рендера:
Ты написал:
"По всей видимости проблема не в том, что ментал не поддерживает ноду surfaceLuminance, а в том что во время фотонного трейсинга, когда вызываются фотонные шейдера у ментала еще нет информации по поводу освещенности объектов, так как сам рендер еще не начался."
Объясняю:
Для surfaceLuminance совершенно не важно есть фотоны в сцене или нет. Вычисления этой ноды зависят только от того, как ориентирована грань, которой принадлежит точка, и как и на каком расстоянии расположены источники света, с учетом их интенсивности. Вычислить таким образом некоторую фиктивную яркость не представляет никакого труда. В сцене летают фотоны, естественно, реальная яркость другая будет из-за их взаимодействия с поверхностью. SurfaceLuminance вычисляет некую математическую яркость, от чего она зависит смотри выше. Совершенно не верно отсюда твое утверждение про отсутствие информации о яркости во время рендеринга, твое утверждение снова основано на неверном представлении. Математическая фиктивная яркость рассчитывается влет. На ее основе и строится Shadow/Light карта. Конечно, можно сколько угодно говорить, а зачем нужна такая фиктивная яркость. Но тем не менее, это не физика, это прием для обмана. Такой прием существует уже давно.
Я допускаю, что с точки зрения физичности, которой гордится ментал рей, разработчики могли опустить эту возможность. Но я также предполагаю, что если в максе работает, значит, можно сделать и в майе.
 

Puppet

Активный участник
Рейтинг
19
#16
Что оно в максе работает ни о чем еще не говорит.
Как работает эта нода я знаю.
Я вовсе не утверждаю что вовремя фотонного трейсинга информация о нормалях и тп. наглухо не доступна я лишь предполагаю что данная нода не идеальна и не расчитана на фотонный трейсинг.

Свои варианты решения я уже подсказал, так что удачи!
Думаю продолжение дискуссии лишено всякого смысла.

P.S. Самое смешное что у меня все это работает.
 
Рейтинг
638
#17
Конечно, она работает только с software.
У меня майя выдает surfaceLuminance: internal error, если я пользуюсь surfaceLuminance и ренедерю ментал реем. У меня 5 майя, сейчас усиленно качаю 6. Если у тебя стоит 6, то это обнадеживает.
Удачи! Извини, если что.
 
Рейтинг
638
#18
5 версия вообще какая-то кривая немного: если рендерить ментал реем, то нужно снижать irradiance во вкадке mental ray абсолютно у всех шейдеров. Вместо интенсивности 1 ставить 0.314. В 6 говорят уже не надо.
Удачи!
 

Puppet

Активный участник
Рейтинг
19
#19
Про Software речь не идет.
На 6 все работает и в mental ray for Maya и в Mental Ray Stand Alone.
На 5 не работает, да :) типа даже, судя по ошибке, я был прав, типа при фотонном трейсинге state как то не правильно передается.

Удачи!
 
Рейтинг
638
#20
Ну, возможно ты прав, у меня нет точных данных, почему в 5 версии эта нода не поддерживается или криво поддерживается, потому что майя хоть и плюется, но продолжает рендерить. Раз в 6 уже все работает, то пора на нее переходить :).
 
Сверху