31 авг. 2012 г.

RenderMan - первые шаги (meShaderEd)

Постоянные читатели блога наверное заметили комментарии в предыдущем посте.
Эти комментарии заставили многое переосмыслить и написать новый пост.

Для тех кто не в курсе...
Мне пришло сообщение от mesh (к сожалению не знаю имени), талантливый программист из Киева. Он основательно переработал несколько редакторов шейдеров, главной основой был ShaderLink.

Итог - meShaderEd

Цель которую преследовал автор - создать инструмент не мене удобный чем Slim (Pixar)
Я не могу сравнить то что получилось и Slim, но по сравнению с ShaderLink, эта программа - буквально прорыв!

28 авг. 2012 г.

RenderMan - первые шаги (делаем шейдер)

Попробуем создать шейдер средствами ShaderLink и использовать этот шейдер в дальнейшей работе, применив к связке Blender + 3DLight

Поехали:

RenderMan - первые шаги (ShaderLink)

Ниже я жаловался на нехватку редактора шейдеров.
Поскольку тяжелая артиллерия пока не подоспела, я не могу использовать Slim.
Попробовал установить что-то из альтернативных редакторов. Надо сказать, что пробовал делать это много раз намного ранее, но каждый раз что-то не работало.
Сегодня заработало и дома и в офисе.

Приветствуем!



Для тех кому это интересно инструкция:

27 авг. 2012 г.

RenderMan - первые шаги (первые эксперименты с шейдингом)

Пока ожидаем окончание рендера Crazy Balls, пытаемся освоить рендермановский пэйплайн со связкой Blender+3DLight (автор связки Matt Ebb).
Много становится ясным и многое радует, в итоге получается нечто такое:


А теперь сеточку в студию:


RenderMan имеет кучу встроенных алгоритмов, создающих геометрию и детализацию. Благодоря этому вся детализация происходит на уровне рендера, на вход подается чуть ли не лоуполли...
Вся сцена весит 2МБ и это не предел, еще есть что урезать. Сетка подразбивается ровно на столько поликов, на сколько нужно, чтобы скрыть заломы. В зависимости от расстояния камеры, количество поликов меняется!
Астероиды описаны как примитив "сфера", и вообще не имеют поликов на входе, во время рендера сфера разбивается на дополнительные полики, применяется дисплейс, который описан в шейдере. То есть шейдер это не просто "затенитель", а мощный инструмент для создания сложной, высокодетализированнной геометрии.

RenderMan не только делает красивую картинку, он экономит кучу времени на упрощенном подходе к созданию сцены. Это весьма эффективно с точки зрения организации промышленной цепочки.

Скорость визуализации тоже радует. Бесплатная версия 3Dlight ограничивает возможности рендера двумя ядрами. На двух ядрах эта картинка посчиталась за 12 минут. Соответственно на сервере с 24-мя ядрами, было бы примерно 60 секунд. Время на загрузку сцены - крохи.

Пока очень недостает редактора шейдеров вроде Slim. Приходится ограничиваться штатным набором шейдеров. Хотелось бы многое добавить на этой картинке, но пока не все ясно. Разбираемся дальше...

25 авг. 2012 г.

Бородино - УРА! .... ????

Сегодня (в пятницу) сдали проект над которым трудились более полугода.



RenderMan - первые шаги (боремся за Point Cloud)

Сегодня проблема, о которой я писал ниже, была полностью решена. Как НЕ профессиональный программист, я уверен, что есть решения более мудрые, однако я поступил очень просто и это работает. (Если вы умнее, пишите коменты...)
Если вам интересно, как адаптировать pointcloud под windows, то:
  • топаем в директорию плагина
  • ищем там файл export.py
  • открываем его на редактирование (рекомендую Notepad++) и топаем к строке №918
  • Заменяем
    relpath = os.path.relpath( rpass.paths["gi_ptc_bake_path"], start=rpass.paths["export_dir"] )
    на
    #relpath = os.path.relpath( rpass.paths["gi_ptc_bake_path"], start=rpass.paths["export_dir"] )
    relpath = os.path.normpath( rpass.paths["gi_ptc_bake_path"] )
    relpath = relpath.replace("\\", "\\\\")
Сохраняем, перезагружаем Блендер, и радуемся правильной работе pointcloud
Напоминаю - это исправление нужно только для счастливых обладателей Windows, к Linux или MAC это не относиться.

P.S.
Для тех кто что-то пропустил. Речь идет о доработке плагина от Matt Ebb, позволяющего в Блендере использовать стандарт рендера от Pixar. В частном случае рассматриваем конкурентов Pixar - 3DLight.
Я пока не определился у кого будем покупать лицензии, тестируем, выбираем самое интересное. Ждем от "JC Systems Integration" (с которыми давно не просто дружим, а активно работаем), пиксаровской триалки. Наши партнеры - ЕДИНСТВЕННЫЕ представители Pixar на территории СНГ (Russia and CIS) и мы надеемся прикоснуться к великому через их помощь )))

23 авг. 2012 г.

RenderMan - первые шаги (Пытаемся применить к рабочим файлам)


Кусочек сцены из райда про машинки. Затащил его в 3D Light, через связку с блендером, написанную Matt Ebb.
По началу вообще ничего не получалось, потом выяснилось, что Matt писал все под Mac или linux и основная проблема под windows заключаетя в несоответсвии путей.
Решить проблему полность не удалось, но удалось найти обходные пути.
В результате все заработало.
Довольно просто сцена адаптируется под новый рендер. В результате получаем кучу гибкости, супер скорость и супер качество.
На этой картинке простой обыватель не заметит супер качетсва, но я отчетливо вижу развитие темы.

Если помогут партнеры, то в ближайшее время буду тоже саме тестить уже на родном RenderMan. Уверен - отличия будут в лучшую сторону.


22 авг. 2012 г.

Фиасочко


Слишком крупное разрешение для того, чтобы искупать в воде роботов. Если разрешение повысить в 2 раза, софт просто валится.
В общем пока жикость в Блендере не более чем забава, максимум что можно сделать, это что-то куда-то налить, например воды в стакан.

Рендер блока №6 пришлось начать заново. Шум на тирейне был слишком большой, на уровне брака, пришлось отказаться от GR и перейти на AO. Рендерит чуть быстрее (+5-10%), проработка теней не такая интересная, но зато не будет шума. Заодно подправил море и прибрежную полоску добавил, а то как-то странно было до этого.




21 авг. 2012 г.

Всякие дела

Завтра-послезавтра отдаем заказчику фильм про бородинскую панораму.
Последнее время особый вклад в этот проект внесли Юля и Денис. Я отошел от этого проекта.
Завершение всегда радует.

Рендер блока №6 (Crazy Balls) радует меньше. За сутки всего 500 кадров. Это значит, что ждать начала следующего блока нужно не менее 5 суток.

Между делом продолжаю ковырять анимацию жидкости и роботов.
Хочу как следует намочить славных железных друзей. Затем поджечь, потом обдуть, и напоследок отправить в космос. Уже подобраны 4 замечательных музыкальных трека для этого дела ;-) Автор, мой однофамилец - Никита Селивёрстов, очень талантливый композитор и выдающаяся личность, постоянно поставляющая изысканной московской публике самых экзотических музыкантов.

Проект затачивается исключительно под Блендер и Cycles, наполнение будет простое, но выразительное и эффектное. Соответственно сервера будут тихо, как и ранее заниматься своими ЦПУ-шными делами, весь рендер ляжет на GPU рабочих станций. Будет много физики, потенциальный зритель - дети от 5 до 99...

Вспомнил еще одного летающего робота, которого мастерил в Максе лет 6 назад. Думаю реанимировать его, уж больно забавный...

20 авг. 2012 г.

Между делом

Мега тормозной Vue дает мне кучу свободного времени.
Тратим его на старые начинания.


Анимация полный отстой, скажем честнее - её просто нет )))
Это всего навсего тест модели и рига.
Двигаемся дальше ;-)

19 авг. 2012 г.

Crazy Balls - блок №6

Блок №6 ушол на рендер


С предыдущими всё в порядке.
В шестом блоке пришлось отказаться от BackBurner, сама по себе сцена грузится и распаковывается около получаса, это чрезвычайно долго, картинка же рендерится за 15 минут. Если каждой картинке перед этим предшествовала получасовая загрузка, это было бы слишком долго. До этого во всех блок я поступал иначе. Скармливал менеджеру заданий паки по 10-15 кадров. Здесь же я решил скормить каждому серверу сразу по 300 кадров. При такой загрузке BuckBurner в любом случае отвалится из-за таймаута, как бы я не устанавливал настройки.
Видимо есть какие-то ограничения...


18 авг. 2012 г.

Crazy Balls - состояние дел

Отключение электроэнергии сильно спутало планы, потеряли почти 12 часов рендера.
Сейчас все восстановлено и система снова работает стабильно, до окончания рендера блока №2 буквально несколько часов. При этом готов следующий блок. С ним возможно будут проблемы - слишком много трассировок... Может потребоваться целая неделя...

15 авг. 2012 г.

Crazy Balls - ещё одна сценка


Это финиш трассы.
Не хватает вертолетиков на заднем плане и 2000 шариков, катающихся по взлётке.
И первое и второе уже готовы, но пока не получается затащить их в сцену. Vue тупо валится от нагрузки, жду когда освободится какой-нибудь сервер, чтобы сделать эту операцию на нем. Рабочей машины не хватает. ((( Ёлки тоже куда-то испарились. Это уже не первый раз. На рабочей машине экосистема игнорится (хотя и видна во вьюпорте), на серваке рендерится как ни в чем не бывало.

Текущая же сцена (№2) продолжает считаться. Пока все идет хорошо - 45% готово. По предварительным оценкам ждать нужно ещё чуть больше суток. Но сдается мне, что по факту получится двое суток.

Ждемс...
___________________

Ну вот, кое-что добавилось

Правим маты на вертолетиках


14 авг. 2012 г.

Crazy Balls - парим...

4:10 - сервера пашут без сбоев, 21% от поставленной задачи великолепно завершено.
Тестовая сборка радует, нет тех прибамбасов о которых я писал ниже.
Всё четко, гладко, без сучка и задоринки.

Параллельно пересчитываем несколько кадров из первой сцены на GPU машинах.

...выдох...

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

ВЫХОДИМ НА КРЕЙСЕРСКУЮ СКОРОСТЬ!

Дальше переключимся на Happy Jungle!!! (мой любимый проект из текущих)
И в этом проекте готово всё. Нужен режиссерский тюнинг, анимация и спецэффкты.
Фундамент уже создан, надеюсь, что будет легче.

Безусловно многие улучшения происходят благодаря Свете.
Без нее все валилось из рук...
Именно поэтому я ранее обвинял ее в предательстве. Просто мне нужна была группа поддержки ;-) Теперь она есть )))

Так что, никакой эзотерики ;-)
Просто иногда людям нужны люди )))

P.S.
От скорости, динамики и реализма мурашки по коже... господа производители оборудования, вы уверенны, что ваши железочки это осилят?
Хотя о чем я?
С такой динамикой можно кресла вообще не двигать, итак башню сносит...
...откроем новый вид кинозалов ))) 

13 авг. 2012 г.

Crazy Balls - воскресные грабли

День в общем-то не плохо начался.
Написал 2 полезных скрипта.
Первый обеспечивает импорт мешсиквенций во время рендера и это позволяет делать в Vue xStream динамику жидкости, или не стандартную анимацию.
Второй делает экспорт камеры в XML файл, чтобы любые данные стали доступными для прописывания трека платформы.

Дистанционно присматривал как идет рендер - все по плану, ровно, стабильно, без особых проблем. Вырубился 1 сервер. Решил это поправить, а заодно забрать телефон который забыл в офисе. Поехал в офис. Сервер перезапустился и встал на рендер как ни в чем не бывало.

50% очереди рендера готово, решил затащить в монтажку и посмотреть как оно смотрится в полном разрешении.

Ужаснулся...

Разные машины по РАЗНОМУ рендерят небо и освещение.
Стал разбираться, выяснилось, что на нескольких серверах произошло обновление Vue (у лицензионого софта есть свои плюсики), но разница в картинке между двумя последними билдами была катастрофической.

Зашол на сайт e-on, скачал саааамое последнее обновление.
Залил на все тачки.
И... о ужас...
НИХРЕНА не рендерится. Просто вылетает и всё.
Делаем даунгрейд - облом, не откатывается...
Перестанавливаем Vue с нуля - облом, не ставится.

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

Единственный плюс во всех этих приключениях - последняя версия ЗАМЕТНО дает меньше шума и более яркую картинку, рендер ускорился на несколько %

P.S.
Откуда все эти нескончаемые грабли? До этого были сделаны десятки серьезных тестов, все проверялось и выверялось. А когда дошло до финализации проекта - посыпалась всякая гадость... Я скоро уверую в эзотерику и буду пытаться искать причины и следствия между странными вещами. А что еще остается? Танцы с бубном.
Даже на К-62, почти с той же технологией отработали без сучка и  задоринки. Я отказываюсь что либо понимать....


9 авг. 2012 г.

Crazy Balls - шарики

Пришлось выбрать компромиссное решение. Снизил аппетиты и не стал делать слишком много шариков. При этом сцена и так довольно сильно распухла. На самом рендере это не отразилось, а вот время загрузки файла резко подскочило, что в общей сложности замедлит процесс визуализации.


Ну и смотрим обещанный тестовый прогон анимации шариков.
Местами из-за определенных причин анимация выглядит странной. Но мне почему-то хочется оставить как есть, так больше похоже на Crazy.




Да, и еще тут добавлен легкий тюнинг траектории камеры и первые эксперименты в цветокором.

7 авг. 2012 г.

Crazy Balls - идем дальше

Прогнали тест анимации


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

5 авг. 2012 г.

Crazy Balls - засадушка....

До этого все тесты по импорту\экспорту анимации между Vue Xstream и Blender 3D проходили на "Ура!". Все шло хорошо до тех пор, пока я не столкнулся с использованием Actions в анимации.
Без Actions дальше двигаться было невозможно, так как они мне нужны для использования в BGE, чтобы корректно отработать физику всех шариков. Однако в чем же засада?
Засада в том, что как только мы подключаем Action, хваленая COLLADA игнорирует анимацию, словно той и не существует.
Попытки сделать экспорт через 2-3 преобразования, вроде Blend->FBX->Collada - не увенчались успехом... слишком много тонкостей по сопряжению миров.

Выход из ситуации пришлось делать такой:


Сейчас процесс находится на стадии шлифовки скрипта.
В результате получаем следующее:
- Статичные сетки в Vue
- Анимируем их через скрипт, который читает данные из текстового файла
- Данные перед этим пишем другим скриптом из Blender

Вот и всё...
Еще минус два дня на решение грабель.
Может это и к лучшему, так как уверен на 100%, в следующих райдах придется сталкиваться с этим многократно. А так есть законченное решение.

Аллилуйя!

Всё встало на свои места

Засылам это дело на тестовый рендер, а пока заливаем в сцену шарики. Шариков будет много, даже очень много. Думаю больше десятка тысяч...
А тестовую анимацию посмотрим уже завтра утром ;-)