ВИЗУАЛИЗАЦИЯ ПРОСТРАНСТВЕННОГО КОНТИНИУМА

фотография и компьютерное искусство


Previous Entry Share Next Entry
Cyberatonica.Evolution
Willyam Bradberry фотография
vitaly_sokol
Robot holding human skull

Robot holding human skull

Допилил, наконец-то ребро ладони, но признаюсь, стал жертвой жесточайшей прокрастинации.



Робот-то без рук и без ног живёт.
А уж туловища и подавно у него нет.
И заставить себя взяться наконец за работу - выше моих сил.

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

А проблема нарисовалась с Z-пассом. Тем самым, который отвечает за глубину резкости в трёхмерном пространстве.
Ну и спецэффектами всякими можно баловаться с ним помимо красивых диафрагменных размытий...


Выглядит это как резкий перепад яркости в двух соседних кадрах - фликер.
При этом на диск он сохраняет одно, а во вьюпорте показывает другое - светлее.
Баг налицо.
При монтаже видео оно прыгает, скачет и мешает жить.

Первый вопрос - КАКОГО ХРЕНА!



Голову ломал долго.
Настроек перелопатил кучу.
Разобрал всё на мелкие детали и стал проверять.

А потом обнаружил закономерность
Баг обнаруживается когда в поле зрения камеры вдруг появляется что-нибудь до этого скрывавшееся от камеры за другим чем-нибудь.

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

http://i.imgur.com/ajfDfmH.gifv

Оказалось, что собака порылась в модуле Normalize, с помощью которого собственно Z-пасс превращается в картинку для вывода на экран, которую можно потом использовать во всяких афтерэффектах и фотошопах.



Сам по себе пасс глубины в блэндере простым настройкам яркость/контраст не поддаётся, юзер увидит просто белый экран.
А нод Normalize находит в массиве и принудительно приводит самое тёмное оттуда к чёрному, а светлое к белому, сужая динамический диапазон,
а точнее впихивая в привычную гамму тот участок, который попал в поле зрения камеры.

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

Выход есть.
Помимо сохранения секвенции в EXR (ужасно много весит, ага)
...первый и самый логичный - поставить напротив камеры стенку, кубик или любой полигон, который камера будет видеть на протяжении всей анимации, но разве оно мне в кадре надо?

А второй более красивый, но тоже требует поломать голову.
В виртуальной природе блэндера теперь есть такой модуль Map Range, без бутылки не разберёшься.

Но я разобрался.
Я взял усреднённое значение минимальной дистанции камеры (70..90) и привёл его к нулю (в ноде я ввёд его в поле "from min").
А максимальную дистанцию камеры (110...150) я привёл к единице и вписал это в поле "from max".

Мин-Макс дистанции камеры выставляются в настройках камеры и называются Camera Clipping (begin/end)
и отвечают они за расстояние от и до которого камера "видит" сцену, а всё, что выпадает из этих пределов, камерой на экран не выводится.
Можно головы роботам разрезать, чтобы внутренности увидеть.



Вобщем, самое непонятное для меня было собственно "сколько вешать в граммах", точнее какие числа указывать в полях From Min и From Max и откуда их вообще брать.
Такие дела.



Приятных мыслей.


Posts from This Journal by “blender” Tag

  • Cetonia Eve

    Весь процесс создания закинул на artstation Модель: Александра. Фото/постпроцесс: Виталий Сокол Приятных мыслей в процессе созерцания.

  • Zbrush 4R8 же ж.

    Они, разработчики зибраша, чем дальше тем глубже в жопу засовывают то, что и так было через жопу. Например, какого хрена до сих пор, чтобы…

  • Думатель.

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


  • 1
очень крутенский рендер получился! Уж не знаю как вы раскапываете и решаете эти баги, я тут бываю голову ломаю над стандартами... Ощущение, что до Грааля мне еще далеко))


Методом тыка и решаю, лезу на форум blenderartists и developer.blender.org

Если depth это длина вектора от точки камеры до точи меша, которая потом через normalize укладывается в диапазон 0 - 1, то не проще через grater than или less than отсекать лишнее, чем морочатсья с клиппингом и range камеры?

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

Хм. Насколько я понял рассуждения, проблема возникает из-за того, что максимальная длина из точки камеры в какую-то точку отрисовываемых объектов различна для различных кадров. Когда плеча в области видимости нет, максимальная длина где-то на черепе (образно = 100), а когда появляется плечо - она на плече и соотв-но длиннее (пусть будет 120). Далее при нормализации диапазонов 0-100 и 0-120, что логично, наблюдается изменение общей яркости. Поэтому и приходит простая мысль, до нормализации отсечь все, что больше 100, оно как бы все равно не нужно.

вообще круть конечно. я в восхищении))

воркинг хард. Будет ещё хардер.

Случайно наткнулся, вроде с той же проблемой борятся: https://www.youtube.com/watch?v=DL7ojdEBZsg

  • 1
?

Log in

No account? Create an account