Урок Houdini "Кватернионы для чайников" (RUS)

  Рет қаралды 40,955

Houdini по-русски

Houdini по-русски

6 жыл бұрын

Курс по частицам: gum.co/popnet
Курс по Chops: gum.co/chopnet
Индивидуальные занятия по Гудини: hipnc.club
Телеграм-канал: t.me/hipnc
Что такое кватернионы, зачем они нужны и как ими пользоваться - вот три главных жизненных вопроса русскоязычной интеллигенции. Отвечаем.
Для понимания необходимо просмотреть уроки:
Векторы для чайников
• Урок Houdini “Векторы ...
Вращение частиц
• Houdini - Ответы - Вра...
Приложение для контроля рендера:
• RenderSpy - приложение...

Пікірлер: 78
@user-fe2yl6dc5l
@user-fe2yl6dc5l 3 жыл бұрын
У меня профессор в ВУЗе объяснить не мог, а ты за 20 минут управился, дай бог здоровья, братец
@AlexUdilov
@AlexUdilov 6 жыл бұрын
вот это поворот)
@maksimslobodian5211
@maksimslobodian5211 6 жыл бұрын
Это лучшее объяснения практического применения кватернионов. Большое спасибо за Вашу работу!
@sergeyborzikov7520
@sergeyborzikov7520 6 жыл бұрын
Традиционно - четко, просто и понятно. Огромное спасибо!
@vitaliyv.7071
@vitaliyv.7071 6 жыл бұрын
Ух, как класно!!! Большущее спасибо за такой урок!
@Dddimax
@Dddimax 6 жыл бұрын
Спасибо за урок! Ждем практики)
@PetrovMaxim3dmarks
@PetrovMaxim3dmarks 5 жыл бұрын
Спасибо за человеческое объяснения сути кватернионов!
@vladyslavlavrenov9167
@vladyslavlavrenov9167 5 жыл бұрын
Спасибо за такие полезные уроки!
@kovalenkov
@kovalenkov 6 жыл бұрын
Стас, спасибо - нереально полезный урок.
@RobotYoshi
@RobotYoshi Жыл бұрын
Очень толковое видео
@azersalmanov9498
@azersalmanov9498 3 жыл бұрын
огромная благодарность
@pavelbalagazov3647
@pavelbalagazov3647 2 жыл бұрын
Доктор Стас! Спс!
@alexeyignatov7297
@alexeyignatov7297 2 жыл бұрын
Восторг!
@user-pq1qr7wy1j
@user-pq1qr7wy1j 5 жыл бұрын
Спасибо за Ваши труды
@EDVVRD
@EDVVRD 6 жыл бұрын
Спасибо большое , как всегда грамотно и доступно
@Jozeff222
@Jozeff222 6 жыл бұрын
Блин, как же долго я искал хоть какой то тутор по работе с камерой.
@sazankarpovich2506
@sazankarpovich2506 4 жыл бұрын
Первое действительно понятное и наглядное объяснение того, что же такое Кватернионы. Миллион спасибо!
@AndruPavlov
@AndruPavlov 6 жыл бұрын
Круто! Спасибо за урок!
@doctormaddyson
@doctormaddyson 3 жыл бұрын
Углы, обозначающие поворот вокруг осей x,y,z - это не углы Эйлера, это самолётные или корабельные углы. Углы Эйлера задаются совсем по-другому
@canis_mjr
@canis_mjr 2 жыл бұрын
Это ролик для тех кто не знает что такое математика и механика))
@doctormaddyson
@doctormaddyson 2 жыл бұрын
@@canis_mjr тогда зачем вообще называть эти углы углами Эйлера? В лучшем случае это просто бесполезная для разработчика информация, а в худшем - если вдруг разработчик и столкнется с этой терминологией либо в разговоре, либо после какого-нибудь будущего обновления с4d и 3dsmax, где вдруг по какой-то причине внезапно добавят названия различных углов, то он попадет впросак и перепутает углы.
@canis_mjr
@canis_mjr 2 жыл бұрын
@@doctormaddyson вы правы, проще сказать три угла и всё сразу понятно. Я часто сталкиваюсь с тем, что углы Михайлова называют углами Эйлера, или наоборот, или просто три угла называют углами Эйлера или Михайлова, аж бесит. Назвался углами Эйлера, значит чётко задал последовательность поворотов и связь угол-ось. Мораль то проста, надо сначала изучать математику ^_^
@SergeiKrumas
@SergeiKrumas 6 жыл бұрын
Спасибо за урок!
@beatamvitam4782
@beatamvitam4782 6 жыл бұрын
Спасибо за урок! По чаще бы что-то из обыденного для вас, а для новичков - новое будет!
@andreyVK_D3D
@andreyVK_D3D 3 жыл бұрын
Отлично! про Gimbal Lock хорошо описано
@NegativeYee
@NegativeYee 6 жыл бұрын
Спасибо за урок! Очень круто. Радуйте нас почаще такими видео. Станислав, подскажите пожалуйста, как добавить свой пресет кода в ноде attribute wrangle или отредактировать пресеты, которые там уже есть по умолчанию.
@hipnc
@hipnc 6 жыл бұрын
Рекомендую сохранять через стандарный вариант - шестеренка/Save preset. Так он сохраняется вместе со всеми дополнительно созданными параметрами, это удобнее. А вообще, эти сниппеты лежат в отдельном файле, и там специальное форматирование. Обсуждение здесь: forums.odforce.net/topic/26244-how-to-enter-my-code-presets-in-a-wrangle/
@NegativeYee
@NegativeYee 6 жыл бұрын
Ок. Спасибо!
@xlista1543
@xlista1543 4 жыл бұрын
Спасибо за урок.
@kovalenkov
@kovalenkov 6 жыл бұрын
Стас подскажи какой эквивалент функции VEX chs - в питоне, чтобы строку из какого-нибудь окна(ну например путь до ноды, которую выбрал пользователь) вставить в код выше напечатанный drive.google.com/open?id=1_kZrYqXJpjiZS_GfHZeOd8348IU1HDUN вобщем чтоб с одной контрольной ноды все кэши пересчитывать нажав одну кнопку а не искать их по всему дереву нод
@hipnc
@hipnc 6 жыл бұрын
parm=node.parm("название параметра").evalAsString() node - это объект с выбранной нодой, естественно. Это аналог chs.
@kovalenkov
@kovalenkov 6 жыл бұрын
Спасибо! Буду экспериментировать
@Cryunreal
@Cryunreal 4 жыл бұрын
Мне тут говорят что есть еще такая штука как ротор, и типо она понятнее чем кватернион и при этом работает так же. Но я не специалист в этом, утверждать ничего не могу)
@cultura_ue
@cultura_ue 5 жыл бұрын
Спасибо за видео, но все равно образовался вопрос. Накинул на объект скаттер, на точки скаттера перекинулись нормали. Как можно эти нормали перевести в ориент аттрибут? Что бы после копи ту поинт поворачивать клоны вокруг нормали? upd. посчитал кросс продукт от нормали и вектора вверх (0,1,0) и записал его в вектор up. после этого с сайта cgwiki скопировал немного кода: matrix3 m = maketransform(@N,@up); @orient = quaternion(m); Помимо того что теория с матрицами осталась для меня в тумане, там есть еще решение по поводу поворота точек на рандомное значение, которое для меня то же непонятно как работает, тут нужно видимо углубляться в математику. Меня все еще интересует такой момент - как можно в point vop повернуть точки. Например я сначала для теста взял готовый ориент (полученный из N и up), преобразовал его в вектор и сразу же обратно в кватернион, и забаиндил в аттрибут orient. Это сразу все сломало. Ну или допустим, что нужно сделать, что бы каждую точку повернуть на 45 градусов от существующей позиции. Вобщем не могли бы вы немного подробней рассказать как вращать точки?
@maksimzyuzin3656
@maksimzyuzin3656 5 жыл бұрын
полученный тобой ориент из нормалей и ап вектора это ориентация(это два вектора N и up), но не аттрибут orient(кватернион). Чтобы повернуть каждую точку на 45 градусов от существующей позиции, нужно в аттрибуте orient (кватернион), задать вектором ось, по которой ты хочешь производить вращение, и потом в радианах повернуть на нужный угол ((для перевода в радианы) a * pi/180, где a - угол в градусах). Например можешь в вексе на точках 1) создать два канала float angle и vector axis 2) и скормить это в аттрибут: @orient = quaternion(angle, axis);
@vitalie96
@vitalie96 5 жыл бұрын
Я так и не понял, как этот кватерион решает проблему шарнирного замка. Я указал в VEX оси вращения по кватериону и крутанув Y на 90 градусов, далее получил такой же результат при повароте X и Z как и при Эйлере. Далее, поигрался немного с нодами типа Rotate by Quaterion. Подключил к входу ноду Quaterion и соответственно вектор, а result сумировал в ноде add с P, sum подал на вход в P в geometryvopoutput. Ожидал, что будет происходить поворот вокруг подключеного вектора, но оказалось что объект сдвинулся на длину вектора но не повернулся. А где обещянный поворот то? Или я как-то не правильно все подключил? Было бы и в правду очень полезно если бы был урок по практическому использованию кватерионов с использованием указаных нод и ситуацию как кватерион выходит их проблемного положения в отличие от Эйлера.
@ArntorRUS
@ArntorRUS 6 жыл бұрын
Расскажи пожалуйста, возможно ли процедурно создавать несложные текстуры для процедурно генерированых объектов в COP? Например, задача - создать коробки на палетах разных размеров и на них разместить разные эмблемы и знаки. По COP нетворку вообще не очень много информации.
@hipnc
@hipnc 6 жыл бұрын
Да, из коп можно читать текстуру прямо в шейдер. А в нем можно все, что можно в нодовом компоузере типа Нюка или Fusion. То есть накладывать картинки с альфой легко. Там есть и switch, которым можно переключать входные картинки через экспрешн. Большая задача - рандомить параметры в рендер-тайме из шейдера. В мантре можно поставить ноду random, читать с геометрии атрибут seed и переключать результатом текстуры. В редшифте так не получится. И придется похитрить, чтобы читать разные текстуры из копа в рендер-тайм. Возможно через анимированный параметр.
@ArntorRUS
@ArntorRUS 6 жыл бұрын
Не совсем то что имел ввиду. Нужно загрузить UV карту для куба внутрь COP (желательно без сохранения на диск). С координатами точек UV подстроенными под размер композиции (т.е. 1024х1024, 2048х2048 и т.д.) и групами, чтобы определять верх, низ и боковые примитивы. Далее зная где боковые примитивы и их координаты точек в 2д пространстве рандомно раскидать этикетки по ним, чтобы они естественно не выходили за пределы UV сетки. (для этого и координаты). Ну и уже после экспортировать в текстуру шейдера. Я себе так это представляю. Скажем в АЕ можно легко это сделать с помощью выражений. А не выходя из гудини и подстраиваясь к размерам примитивов.
@hipnc
@hipnc 6 жыл бұрын
Да, я об этом и говорю, можно расставить что нужно, куда нужно в КОП. Проблема лишь в том, что в шейдере ты не сможешь поменять параметры Seed внутри КОП нетворка, значит, надо как-то хитрить со скриптами. Возможно получится это сделать через Style sheets, не пробовал.
@ArntorRUS
@ArntorRUS 6 жыл бұрын
Спасибо! Я видимо не совсем понимаю принцип связывания этого всего)
@vladimirfedorchook7942
@vladimirfedorchook7942 5 жыл бұрын
@@hipncТекстур оверрайд в редшифте работает хорошо
@unfhunt
@unfhunt 5 жыл бұрын
Толково, спасибо!
@3dportableinc64
@3dportableinc64 3 жыл бұрын
Спасибо, было полезно. Отдельное спасибо за 13:10
@SowilTM
@SowilTM 2 жыл бұрын
Спасибо, очень полезно. Сам я работаю в Unity, где ситуаций с поворотами море, так что данное видео пришлось в тему.
@untitled_exr
@untitled_exr 6 жыл бұрын
Привет, ты не мог бы подсказать, как рендерить анимацию? Пока что все что я нашел по рендеру -- это рендер картинок через мантру
@hipnc
@hipnc 6 жыл бұрын
В имени файла пишешь выражение типа image_$F4.exr - вместо $F4 подставится номер кадра из секвенции. Потом эту секвенцию затягиваешь в компоузер или монтажку.
@untitled_exr
@untitled_exr 6 жыл бұрын
то есть полноценно рендерить в видео формате нельзя? Можно отрендерить секвенцию и сделать анимацию?
@untitled_exr
@untitled_exr 6 жыл бұрын
Вот пример того, что я имею в виду вимео ком/260841030 (8:14) он это сделал не только в гудини?
@hipnc
@hipnc 6 жыл бұрын
Можно из мплея сохранять в видео, но не рекомендую. Да, секвенция картинок - наше всё.
@untitled_exr
@untitled_exr 6 жыл бұрын
А на досуге не мог бы сделать видео обо всем, что касается рендера?
@andreikorda
@andreikorda 4 жыл бұрын
А можно с октонионами так?
@boole_cat
@boole_cat 5 жыл бұрын
А если у нас камера, как в том же максе таргетная и анимируется таргет а не сама камера(при этом лишь меняются координаты таргетной точки)
@hipnc
@hipnc 5 жыл бұрын
Шарнирный замок возникает везде, где есть повороты по углам Эйлера. Так что в этом случае он просто перенесется на нуль, к которому привязана камера. Надо делать несколько последовательных нулей, где каждый будет отвечать за свой поворот.
@RenoirEW
@RenoirEW 5 жыл бұрын
Я этот видос неделю искал! тоже столкнулся с поворотом на 90 град и тем что ось пропадает. ох бедаа....
@Reshavskyi
@Reshavskyi 4 жыл бұрын
Столкнулся при работе с частицами, ох и подгорело у меня. Принцип понятен, визуально вроде тоже примерно соответствует представлению, а начинаю напрямую задавать значения, какой-то бред. Спасибо за объяснение.
@DRUMMATEC
@DRUMMATEC 5 жыл бұрын
Только за одно упоминание углов Эйлера ставлю +
@ivank2661
@ivank2661 2 жыл бұрын
150 лет назад математики ломали голову как описать движение в 3х-мерном пространстве. Гамильтон придумал кватернионы. Но следующее поколение математиков и физиков не осилило объект, поэтому Хевисайд все упростил до векторов, введя роторы и дивергенции. В итоге сейчас и в физике и в математике имеем массу проблем.
@user-xc3vq4cw7k
@user-xc3vq4cw7k 2 жыл бұрын
а какое практическое применение этому "гимбл локу" зачем его сделали это-ж фактически баг? не?
@hipnc
@hipnc 2 жыл бұрын
Его не сделали, это просто особенность работы углов эйлера, которую необходимо учитывать.
@TheMaiden6666
@TheMaiden6666 5 жыл бұрын
2 вопросика - ты говоришь о том, что оси должны быть нормализованы, однако в случае оси {1,1,0}, она очевидно, не нормализована, и что делать в этом случае? Qconvert в этом случае выдаёт некорректный результат, а если нормализовать - вообще дикий. Второй вопрос - я использую Quaternion + Qrotate для поворота геометрии, однако, как-бы я не ухищрялся, поворот всегда происходит вокруг начала координат, хотя я на вход для оси подавал вектора, полученные разными способами, типа {1,0,0}+@P, надеясь, что это сдвинет ось в позицию точки, но фигушки...Ну собственно вопрос - как задать произвольную ось, то-есть находящуюся в нужной мне точке пространства?
@hipnc
@hipnc 5 жыл бұрын
С помощью Normalize. Это нода в Воп или функция в вексе. Она на выходе выдает вектор с длиной 1.
@hipnc
@hipnc 5 жыл бұрын
По поводу Pivot. Вообще главная задача Orient - это вращение копируемой на частицы геометрии. Если нужно просто повернуть один объект, то есть такой вариант: 1. Сохраняем исходную позицию, двигаем объект в центр координат (@P-центроид) 2. Вращаем кватернионом. 3. Восстанавливаем позицию. Это можно сделать в одном Воп. Берем Bbox от первого входа, его выходы подаем на Average (чтобы найти центроид), Subtract (P-центроид), результат подаем как вектор в Qrotate. Выход Qrotate прибавляем к @P и выводим в позицию. Если объектов много, это вставляется в цикл по ним. Ну или можно сделать одну точку, на ней создать Orient и скопировать геометрию на нее.
@TheMaiden6666
@TheMaiden6666 5 жыл бұрын
​@@hipnc конечно же я знаю про Normalize. А, возможно я тут просто прохлопал ушами - если использовать вектор 110, входная величина угла 45 не соотвествует той, что мы видим в в атрибуте @ang на выходе после qconvert, (31.8) но это видимо, потому, что это проекции осей, а сферический угол наверное те самые 45 (я надеюсь) c2n.me/3Zg9Yep
@TheMaiden6666
@TheMaiden6666 5 жыл бұрын
@@hipnc А, да, спасибо что напомнил, метод с переносом в начало координат мне попадался, где-то в заметках у меня есть Копирование на точку не подходит, мне нужно повернуть массу обьектов, и даже в идеале не обьектов, а отдельных точек каждого куска, которые должны поворачиваться с разной силой, в зависимости от атрибута(представь например кусочки облупившейся краски, края загибаются сильнее вдоль трещины, была мысль для каждого кусочка создать ось вращения в центре, и угол поворота привязать к расстоянию пойнта до этого центра, но не вышло, всё крутится вокруг нуля...
@m22d52
@m22d52 2 жыл бұрын
9:04
@kreatifchk6354
@kreatifchk6354 3 жыл бұрын
А поворот сразу по нескольким осям кватернионом не показан
@JohnWickMovie
@JohnWickMovie 5 жыл бұрын
Ты че программист?
@ztarlitz1
@ztarlitz1 6 жыл бұрын
Наверное надо сказать и о преимуществе углов Эйлера они все же быстро работают. Кватернионы довольно затратны по вычислениям.
@JohnWickMovie
@JohnWickMovie 5 жыл бұрын
Наоборот кватернионы быстрее работают
@user-ds2ry1xj1w
@user-ds2ry1xj1w Жыл бұрын
Математики расходимся... И да, правильнее компле́ксные числа
@hipnc
@hipnc Жыл бұрын
Правильно и так, и так, во всех словарях двойное ударение. Математики обычно проверяют свои гипотезы перед отправкой.
@user-gg5bl4ph6v
@user-gg5bl4ph6v 2 жыл бұрын
Числа компле'ксные, а не ко'мплексные.
@hipnc
@hipnc 2 жыл бұрын
Нет. Можно и так, и так. Далее в Википедии указано двойное ударение.
@kotikvadik3000
@kotikvadik3000 2 жыл бұрын
И это "кватернионы для чайников"? Муть какая-то!
Урок Houdini - "Инстансы или рендер леса" (RUS)
46:19
Houdini по-русски
Рет қаралды 31 М.
Base 6. Volumes (объемы)
36:54
$OS
Рет қаралды 207
Eccentric clown jack #short #angel #clown
00:33
Super Beauty team
Рет қаралды 18 МЛН
100❤️
00:19
Nonomen ノノメン
Рет қаралды 37 МЛН
Урок "Основы Гудини"
58:15
Houdini по-русски
Рет қаралды 77 М.
Кватернионы | Вращение в 3D [Самая суть]
13:08
Антон Филатов
Рет қаралды 19 М.
#225. КВАТЕРНИОНЫ и углы Эйлера
10:34
Wild Mathing
Рет қаралды 89 М.
Какую 3D программу выбрать? (Unreal engine) \ Топ 3Д программ
4:54
AI 3Design - Компьютерная графика
Рет қаралды 6 М.
Урок Houdini - "Ошибки новичков" (RUS)
20:04
Houdini по-русски
Рет қаралды 32 М.
17. Введение в кватернионы
19:58
ЦИТМ Экспонента
Рет қаралды 29 М.
Вращение, углы Эйлера, Кватернионы в Unity
9:26