Render.ru

Как ускорить подготовку к рендеру???

#1
Привет всем,

В Майской сцене много маленьких объектов составляющих один большой, и на них сложные (много-многоуровневые) слимовские шэйдеры с рисоваными картами и т.п.

Проблема - крайне долго происходит генерация шэйдеров при нажатии на рендер - минут 20, риб генерит тоже медленно - около 13 минут, а вот рендерит быстро.

Неужели нельзя не перекомпилировать все шэйдеры со всеми картами перед каждым рендером а только те, что я изменил?
Как же ,блин, использовать PRman в таких сценах?


Буду рад любому конкретному предложению....

Алексей Гусев
 
#2
Конкретные рекомендации дать, конечно, сложно, но если вкратце - я бы пошел по пути reusable components. Например, если ты знаешь, что какая-то часть модели не будет меняться - экспорти ее в RibArchive и подставляй ее вместо исходной модели при экспорте через RibBox - таким образом модель не будет перегенерироваться. То же самое с шейдерами - если в нем ничего не меняется - экспортни его в slo, засоси обратно в Slim и назначь нужному объекту. Текстуры - руками сделай нужное преобразование текстур и полученные файлы назначай, вместо того, чтобы назначать исходные TIFF файлы, которые потом придется каждый раз конвертировать в текстуры.

У меня есть под рукой статья Костика Харитонова по этому поводу, я ее скоро в рамках проекта "Renderman-related ViAGra" выложу, там это все с примерами рассмотрено.

Joss, где твоя статья???!!!! ;-))
 
#3
Привет, Kidd

Спасибо, буду пробовать,
только вот при работе в слиме для шэйдеров и текстур создаются временные .sl и .slo, а вот для ensemle ,похоже, не создаются...
как же мне экспортнуть ансамблю вместе со всеми , нижележащими шэйдерами чтобы все связи остались?

Алексей
 
#4
ИМХО никак, потому что Ensemble - это майско/слимовская абстракция для удобства юзера. В рендермане все шейдеры существуют отдельно друг от друга.
 
#5
Я кстати столкнулся с такой фигней - если дисплейс накладываться через Ensemble , то при рендере тени (shadow pass) он не накладывается %\ (может я конечно что-то не то делаю)
 
#6
Сёдня как на работу приеду - по аське свяжемся......у меня есть сомнения по поводу её содержания......
Вкратце - есть ли смысл фактически пересказывать доку?
И вообще - кого что интересует по MayaMan'у?
 
#7
Интересует все :)
Наверняка еще помнишь как начинал пользовать, что в памяти осталось - то видимо и интересно. Если перескажешь доку, тоже хорошо: вольный перевод обычно более интересен (велик и могуч рус. яз.:))).А также тонкости и проблемы с которыми столкнулся. Прямо по очереди ;-)


ЗЫ. имею шкурный интерес: мне видимо скоро тоже придется подсесть под МаяМан ;-))) (Четверка программ знатного ПРманщика: МТОР, МаяМан, Шейдерман, Нотепад :)
 
#8
Привет, Алексей.

Про RIBArchive и текстуры уже сказано, а вот насчет slim-овских shader-ов - в Palette есть опция Flatten, которая создает true RenderMan shader из slim shading network, при этом оригинал сохраняется, а вместо него на геометрию вешается hardcoded RM shader. Этот способ позволяет редактировать оригинал и опять - flatten & attach.

Точные цифры выигрыша по времени назвать трудно - зависит от shader, но то что генерация будет быстрее - гарантировано.
 
#9
D'N'D

Большое спасибо,
буду пробовать.....

О результатах сообщу.

Алексей
 
#10
На самом деле именно для этого и придуман distributed RIBGen...правда он работает _нормально_ вроде как только на IRIX'е...(хотя я могу ошибаться - вроде в 4.5 что-то правили на эту тему).....в общем это у Костика узнавать надо, он у нас RAT-маньяк, а я в последнее время как-то на mayaman переполз. ;)

PS: Jackal еще про ATOR писал, что "время рибгена сопоставимо со временем рендера сцены". :(
 
#11
Если я не ошибаюсь в 4.5 distributed RIBGen работает, только надо соответственно все пути до файлов прописать и диски подмапить. Это экономит время, но только конечно при анимации. На приличную сцену обычно уходит порядка 5-20 мин времени, если не оптимизить процесс генерации рибов.
 
#12
Привет, D'n'D

В который раз ты мне очень помогаешь...
Действительно, после одного, хоть и многочасового предкомпилирования
Flatten-ом сцена практически перестала тормозить при рендере.(выигрыш в десятки раз),
Deferred RIB Gen method в GZIP Binary тоже помогает, конечно, но все равно
не быстро, т.к. в каждый из RIB-ов для SoftShadows он записывает копию сцены. Интересно, можно ли генерацию мягких теней для некоторых источников света просчитать в первом кадре и далее использовать без пересчета? Я включал ONCE per Job у генератора SoftShadow и видел вообще картинку без теней... :(
Может есть хитрости?

Спасибо за помощь

Алексей Гусев
 
#13
>Интересно, можно ли генерацию мягких теней для некоторых источников света просчитать в первом кадре и далее использовать без пересчета? <

Да, можно.

>Я включал ONCE per Job у генератора SoftShadow и видел вообще картинку без теней... :( <

Было бы неплохо проверить также:

1. Soft shadow map generator

Make shadow map -> Once per job
Laziness -> Use Global

2. RenderMan Globals -> Job setup -> Cleanup -> Map

Uncheck

3. RenderMan Globals
Accel -> Computed Maps -> Use
Lazy Compute -> Maps
 
#14
Да, это все я ,конечно, делал,
но результата не было....
Попробую еще раз, хотя времени до deadline все меньше и меньше....
Спасибо

Алексей
 
#15
Алексей, я забыл упомянуть еще одну штуку, возможно самую гл...ую (глупую , главную whatever)

RenderMan Controls -> Spool -> Frames -> Compute Start/Stop

У тебя наверняка стоит 1 / 38 000 000 (может чуть меньше :) )

А что у тебя стоит в Reference Frame - не 0 ли?

Если да, то поставь 1 и "все у тебя получится".
 
Сверху