24 сент. 2013 г.

Blender - Cycles vs V-Ray

Cycles GPU (GTX 590) - 2 минуты

V-Ray CPU (i7) - 8 минут

Время в пользу Cycles, но я выбираю V-Ray так как это надежнее (не шумит, не колбасится, всегда предсказуемый результат), да и сама картинка как-то больше нравится.

16 сент. 2013 г.

Итоги выходных

Почти определился с элементной базой.
От 13-х тинек пришлось все же отказаться в пользу ATtiny2313, чуть дороже на первый взгляд, но заменяет две 13-х + легче приделать SPI (что весьма важно). Так что можно считать, что экономика не пострадала.

Собрал схему.


Н-мосты пашут, моторчики крутятся (будут заменены в железе на катушки), лампочки мигают (так отслеживаем смену полярности напряжения), SPI успешно пересылает пакеты.
Пока всё как планировал. Это эмуляция. В железе обязательно всплывут всякие неожиданности.

В итоге получилась 2-х координатная электромагнитная матрица 4х4, каждый электромагнит в которой имеет независимое управление с возможностью изменения напряжения в 256 шагов в отрицательном диапазоне и столько же в положительном, то есть в общей сложности 512 шагов.

В качестве управляющего процессора пока взял ATmega2560, но сомневаюсь нужна ли там такая мощь.
Может подберу что-то попроще.
На процессор ляжет 2 основные функции: расчет математических матриц и рассылка заданий по SPI.
Второе она уже научилась делать. Насчет математики я сам пока в раздумьях. Возможно потребуются эксперименты и теоретизация.

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




13 сент. 2013 г.

Планы на выходные

Андрей решил дописать к Vray/Blender систему нодов для создания качественных и сложный V-Ray материалов. Это изменение повлечет довольно много изменений в коде, поэтому я решил пока сложить оружие и дождаться окончания глобальных переделок (то есть пока не имеет смысла что-то программировать, но можно рисовать ;-) ).

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

Железки все готовы и худо-бедно подходят для исследований, но я еще не начинал городить контроллер.
Изначально планировал делать это на базе PIC от Microchip, но вот почти случайно наткнулся на ATtiny13A и впал в ступор.



Что поразило:
  • Всего 6 ног и при этом 2 ШИМ 
  • Цена - около 32 руб за таракашку...
  • Скорость работы
Я и ранее часто натыкался в форумах на фразы вроде: "Ребята, плюньте на PIC, переходите на Atmel, это проще, дешевле, производительнее".
Но поскольку на форумах часто пишут что-попало, я относился к личным суждениям скептически, пока не пришлось сравнить две модели одного класса от разных производителей. Среди PIC изначально планировалось - PIC16C62B, и это:
  • гораздо медленнее работает
  • один ШИМ
  • Цена 70-150 руб
Что еще порадовало относительно Atmel - бесплатный С++ компилятор, какое-то безумное количество готовых решений в сети, исходных кодов, документации и уроков.

Так что выходные посвятим железкам и коду, но в офис тоже придется съездить, райды не простят забвения )))


7 сент. 2013 г.

Vray/Blender - маленькие скрытые возможности

Сегодня закончил работу над SphereFadeGizmo
Интерфейс схож с тем как это реализовано в MAX, то есть всё что нужно, было помещено в атмосферные эффекты, получилось так:


Только в отличии от MAX работаем не со списком объектов, а с группой, которую предварительно нужно создать.

Однако в процессе тестирования случайно обнаружил интересную штуку...

Так выглядит тестовая сцена в Blender

Так выглядит рендер всей сцены, с отключенными контейнерами
Считалось это 47 секунд

А это уже эффект в действии - 12 секунд

Ничего не замечаете? ;-)
Я создавал 3 Empty и это хорошо видно на скриншоте.
2 красные обезьянки не имеют Empty, но добавлены в группу как объекты, и это работает!
Это значит, что для того, чтобы создать вокруг персонажа "ореол", не обязательно создавать контейнер, объект САМ может быть этим контейнером, достаточно добавить его в группу эффекта.

Для сцены с шариками в Crazy Balls это просто незаменимый "глюк", там более 4000 анимированных шаров и вешать на каждый контейнер - убийственно.
А вот засунуть все шары в группу - легко.

Обнаружив это интересное свойство, я стал бродить по интерфейсу Vray/Blender, чтобы решить куда разместить параметр, управляющий радиусом Fade сферы и...

Нахожу вот это:


Оказывается Андрей давно разместил этот параметр, но не задействовал.
Это очень здорово, так как подключить его теперь не составит труда.
А "скрытая возможность" ничто иное, как естественная функция V-Ray.
Просто это я, столкнулся с ней близко впервые. )))





Vray/Blender - оптимизация рендера

Сегодня довольно много колдовал с кешами, но какого-то внятного результата достичь не удалось.
Решил пойти другим путем.
Дописываем к Блендеру SphereFadeGizmo

Выглядит как обычное гизмо (Empty)


В выключенном состоянии Empty ничего не дает и получаем такую картинку:

Этот кадр занял 5 сек.

Теперь переключаем Empty в режим SphereFadeGizmo и получаем такую картинку:
Этот кадр занял 2 сек.

Лайт кэш и IM может хорошо отработать в одном случае - рендер летающей камеры, где нет анимации объектов. В этом случае можно экономить на рендере, но что делать с анимацией объектов?

Анимацию можно считать вторым проходом, с использованием SphereFadeGizmo.
Это довольно занятный метод, так как в случае с использованием SphereFadeGizmo тени, и всякие световые трассировки - учитываются и сохраняются, в отличии от классического послойного рендера (тени отдельно, свет отдельно и т.д.), когда слоев слишком много и процесс слишком сложный.

Подробнее о методе см. в уроке для MAX. Суть для Блендер та же.




5 сент. 2013 г.

V-Ray proxy - проверка в бою

Сегодня довольно много пришлось работать с проксями.

Начало дня


Конец дня


Завтра добиваю этот кусок и двигаюсь дальше.
Очень хочется в понедельник закинуть эту сцену на рендер,
так как уже в субботу сервера начнут "отдыхать".

Итоги:
Благодаря дополнению которое появилось вчера, работать стало чрезвычайно удобно.
Более того - удобнее именно в Blender.
Одно нажатие и прокси готов, и автоматически заменяет исходный объект (а может и нет, как хотите...)
Еще один клик и вы разгружаете сцену от лишних полигонов, а созданная сетка вполне подходит для того, чтобы ориентироваться в пространстве..

В итоговой сцене получилось около 10 млн. поликов.
Скорость рендера упала не значительно, на вьюпорте вообще никак не сказывается, так как в нем чуть больше миллиона (пока... завтра будет меньше, значительно меньше)
Таким образом я не переживаю за анимацию.
Работать с ней будет легко и просто, будет реалтайм, долой тормоза ;-)


4 сент. 2013 г.

Vray, Blender и атака клонов

Я добил гнустную ощибку в стерео-камере.
Теперь позиционирование придельно точное. Стерео-база и нулевой параллакс соответствуют тому, что мы видим во вьюпорте.


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

Андрей сегодня выложил очень полезное дополнение для Vray/Blender.
Теперь появилась возможность предварительного просмотра у прокси (vrmesh)
Всё в точности как у МАХ или MAYA


Работает скрипт довольно быстро.
Это дополнение облегчает работу во многом, особенно важно для работы с vrmesh сгенерированное внешними приложениями.

И все это помогает нам перейти к рендеру сцены №2


Двигаемся далее...