суббота, 16 июля 2011 г.

Продолжаем учить нюк

Маски рисовать...

пятница, 15 июля 2011 г.

Небольшое исследование

Потестил зависимость скорости рендера Blender в простейшей сценке в зависимости от установленного в настройках рендера количества тайлов.
По поводу скорости рендера и числа ядер сейчас потестил немного:
1 тайл - 0.8 с
2 тайла - 0.53 с
3 тайла - 0.34 с - минимальное время (у меня трёхядерные процессор)
4 тайла - 0.36 с
5 тайлов - 0.38 с
10 тайлов - 0.37 с
15 тайлов - 0.41 с
20 тайлов - 0.45 с
25 тайлов - 0.56 с
100 тайлов - 1.62 с

среда, 13 июля 2011 г.

Nuke. Изучаем

Решил изучить Нюк. А то давно уже установлен (PLE-версия, потому артефакты на картинке), а не используется.
Взял фотку, слегка совместил с 3D в Блендере, отрендерил это дело в EXR с кучей пассов и загнал в Нюк...
Нюк крут, правдо иногда поведение его меня ставит в тупик - особенно проблематична для меня нода Merge. Ну да ладно, разберёмся.


четверг, 7 июля 2011 г.

Оптимизация рендера простой сцены в Blender 2.58

Ох, как давно я сюда не писал! Как-то не находится ни интересной темы, ни времени по CG что-нибудь написать.
Но вот сейчас делаю заочнику визуализацию для какого-то предмета в универе - что-то о сплайнах. Сцена простейшая - несколько торов, в которые изгибаясь входит 1-вертексный меш, анимированный вдоль сплайна, оставляя за собой след из разноцветных частиц - линия как будто растёт. Частицы эти рендерятся как Halo, теней нет, сложных материалов и геометрии тоже. Итого один кадр в 720p - рендерится 1.7 секунды. Вроде бы быстро, но кадров всего 1000. Полчаса на такую херню, простите меня!
Взял и в настройках рендера в панельке Perfomance выставил количество тайлов в 3х1 - у меня трёхядерный процессор, и таким образом на каждый кадр ядрам сразу выдаётся вся информация, которую они будут "думать" о текущем кадре, не перебивая работу подгрузкой информации о новом тайле. Ну, это если объяснять "на пальцах". И даже не уверен, что всё именно так.
Но время рендера снизилось до 0.7 секунды. Уже лучше.

вторник, 31 мая 2011 г.

Camera-mapping: как это сделано

В предыдущем посте я показал первые наброски из разрабатываемой сцены спецэффекта, создаваемого по технике Camera Mapping. Делаю я это в Blender 2.57. Если вам интересно узнать немного о этой технологии или просто узнать, как это делается в Блендере, читайте далее.
 КамераМэппинг позволяет "оживить" фотографию, даёт возможность создать из одного статичного кадра анимацию с небольшим панарамированием/трансфокацией. На фотографии определяется фон и объекты на разных планах. Все эти дела вырезаются в отдельные изображения с альфа-каналом. Я решил организовать один объект (турист в красной куртке) и фон (всё остальное). В этом деле ваш лучший друг - Stamp Tool в Фотошопе.




Затем необходимо установить камеру в сцене так, чтобы она более менее соответствовала позиции камеры при съёмке. Для этого стоит посчитать "правильную" фокусную длину камеры. Так как съёмка велась камерой с не фул-фрэйм матрицей, нужно откорректировать фокусное расстояние, записанное в EXIF-данные. У меня фотик с матрицей 5.9 мм шириной (Canon SX110), поэтому 16 мм в ЭКСИФе  надо домножить на 36/5,9 = 6,1. Затем, это число прописать в настройках камеры Блендера. Можно не считать в калькуляторе, а просто прописать выражение 16*6,1 в строке значения - Блендер сам посчитает его.
Затем надо включить отображение изображения во вьюпорте (только для камеры) и совместить выставить позицию камеры. Очень хорошо, если есть возможность ориентироваться по таким элементам, как горизонт (чтобы с ним проще совместить кадр, можно задрать количество линий сетки вьюпорта), параллельные и перпендикулярные линии на ровных горизональных поверхностях. Ещё можно специально измерять место съёмки, угол и положение камеры... но для начала можно обойтись и без таких обострений.
Скажу по секрету - в предыдущем посту я ошибся в фокусном растоянии камеры более чем в два раза и заметил это только сейчас, когда писал эти строки. Ниже будет исправленный вариант.

Затем создаётся примитивная геометрия - плоскость земли и грубая, примерная модель человека (только та сторона, которая видима на фотке). Модель должна слегка выступать за контуры изображения - это скомпенсируется прозрачностью текстуры. Стоит заметить, что когда земля выполнена плоскостью с полигонами большой площади - вылазят косяки мэппинга текстуры, поэтому стоит применить несколько операций Subdivide.
Чтобы определить позицию солнца, я установил лампу типа Sun на макушку человеку и направил его так, чтобы линия направления указывала на конец тени человека. Для облегчения ориентирования я создал пустышку, которую установил в конец тени. Из ортогональных проекций в этом случае очень просто корректно сориентировать положение солнца. Правда, солнце понадобится нам только тогда, когда в сцену добавятся 3Д-объекты, которых на фотке не было и которые требуется реалистично осветить, чтобы они совпали по свету с фотографией. А если условия освещения были другими (пасмурно, искусственный свет), то, возможно, солнце не подойдёт, и придётся искать другие варианты.
Теперь стоит создать материалы. Пока их два - человек и поверхность земли.
Оба создаются одинаково. Для того, чтобы правильно проецировалась текстура, из вида камеры, выделив человека жмём пробел и выполняем команду Add Sticky. Затем такое же действие повторяем и с поверхностью земли. Это создаст на объекте привязку к текстуре, соответствующую его положению в кадре. В отличие от проецирования типа View (Window), Sticky "цепляет" координаты в момент своего добавления и держит их постоянными, тягая вслед за объектом.
Так как изображение на фотке уже максимально фотореалистично и освещено в соответствии с законами природы, нам не нужно настраивать материалы - достаточно просто указать Shadeless и включить прозрачность, добавить текстуру, установить мэппинг в Sticky и влияние на прозрачность. Всё.


Теперь можно сделать тестовый рендер и посмотреть, что к чему:

На этом пока всё. Продолжение следует.

Camera-mapping

В разгар работы над дипломом провёл один вечер издеваясь над фоткой.
Вот первые результаты:


И тестовое видео:

воскресенье, 17 апреля 2011 г.