Andrey
> Все там понятно.Реализовать самому анимацию это значит написать экспортер в
> собственный формат,загрузчик обновление с шейдером далее можно еще подумать про
> оптимизации в виде заливке кватернионов с позицией в шейдер вместо матриц .Если
> ты это сделал,то странно что нет понял статьи.
Автор не написал ничего из того, что меня заботило, когда я делал скелетную анимацию. По-моему самая жопа в скелетной анимации - это череззадые перевороты матриц на 180 градусах, об этом почему-то ничего не написано. Ну и вообще, как в шейдер запихнуть все данные о скелете вместо той хрени, что написано из разряда для даунов типа "складываем 4 коэффициента".
Например, когда я делал, то внезапно для себя узнал, что аттрибутами вертексов могут быть только числа с плавающей запятой, то есть спокойно так взять и в лоб запихнуть туда индексы нодов не получится. Причём это даже в самых последних GAPI.
Не понятно зачем в ноде хранить все чайлды и зачем в нём же хранить исходную матрицу. Хотя это уже архитектурные вопросы.
Кстати, если у вас на входе в шейдер не набор типа "вес и позиция с индексом кости", а набор вроде "вес и номер кости", то тоже некие проблемки имеются ;) Об этом ничего не сказано, с чем я автора и поздравляю.
А так в целом можно например выложить шейдер вроде такого:
И оставить это без комментариев.
Всё понятно, да?
совершенно нубский вопрос: если я использую cpu для анимации, как обновлять координаты вершин: обновлять вешинный буфер или можно как–то индивидуально к каждой вершине треугольника применять матрицы?
Gringosol
>если я использую cpu для анимации, как обновлять координаты вершин
обновлять вешинный буфер на cpu
> или можно как–то индивидуально к каждой вершине
рендер через вешинный шейдер
Chaos_Optima
> а во вторых я не считаю что эту матрицу лучше использовать.
Поясните
Статья не о чем
1 - те кто знает она не нужна!
2 - те кто не знает, запутаются еще больше!
Лучше примеры и кода по больше
Типа -
3dmax редактор
экспорт в файл
импорт в программу
описание всех классов в программе
сборка
рендер
и люди тебя полюбят
а кому нужна мат часть сами найдут)
SNVampyre
> Автор не написал ничего из того, что меня заботило, когда я делал скелетную
> анимацию. По-моему самая жопа в скелетной анимации - это череззадые перевороты
> матриц на 180 градусах, об этом почему-то ничего не написано.
+10
а ещё к примеру не написано про то, как это сделать матрацами, кватернионами, и даже обычными углами эйлера и позициями костей, как правильно выставить геометрию и кости (или объяснить, что это не обязательно), а так же как смешивать несколько анимаций в одну аля "для продвинутых".
хороших статей про скелетную анимацию мало. В моём случае из статей я нашёл только как мне заставить скелет и геометрию правильно выглядеть, и про кадры анимации. Остальное достигалось своими исследованиями.
По мне так статья больше походит на подсказку.
innuendo
> Поясните
сори перепутал кое с чем.
NEMES_KILL
> 1 - те кто знает она не нужна!
ды собственно как любая статья для новичков.
NEMES_KILL
> 2 - те кто не знает, запутаются еще больше!
вот с этим несогласен.
NEMES_KILL
> а кому нужна мат часть сами найдут)
дык тут нет мат части, я постарался сделать без всяких сложных выкрутасов.
МЫЛО
> а ещё к примеру не написано про то, как это сделать матрацами, кватернионами, и
> даже обычными углами эйлера и позициями костей, как правильно выставить
> геометрию и кости (или объяснить, что это не обязательно), а так же как
> смешивать несколько анимаций в одну аля "для продвинутых".
блин ну это реально уже для продвинутых, можно было в принципе написать про декомпозицию матрицы и интерполяцию через кватернионы, но мне кажется это для начального уровня лишнее, не говоря уже о смешивании нескольких анимаций.
Chaos_Optima
Ну не всё для продвинутых. К примеру в моём движке так вообще используются кватернионы только в шейдерах для поддержки 128 костей, а интерполяция и вообще вся анимация работает через углы эйлера и позиции, так как они представлены относительно стандартной позы, только потом переводится либо в матрицы, либо в кватернионы, в зависимости он нужды. Пусть даже кто-нибудь сочтёт это не верным, но оно работает.
АП.
Тем более, откуда новички сразу так взяли и получили матрицы?
Chaos_Optima
Ниасилил, слишком сложно для меня.
Chaos_Optima
Не понимаю почсему 4x3 хуже чем 4x4. Данных шлется меньше.
SNVampyre
про повороты на 180 градусов это случайно не проблема Gimbal Lock ?
Шейдер делает расчет анимации, данные для расчета берутся из текстур. Причем как-то хитро все это там хранится и зачитывается Я так понял текстуры динамически меняются. Не видно интерполяции между кадрами. Думаю такая реализации будет тормоз по сравнению с простым расчетом костей на CPU. Столько выборок из текстуры в вершинном шейдере это жесть.Единственное применение текстур для скелетной анимации это случай когда число костей выходит за пределы числа констант шейдера.
Andrey
Кости считаются на CPU.
А повороты на 180 градусов - это проблема кватернионов.
SNVampyre
> А повороты на 180 градусов - это проблема кватернионов.
Это проблема аниматора :)
Добавил демку
Che@ter
> Это проблема аниматора :)
+1
Chaos_Optima
Где такого паучка взял? Он шикарен )))
fzr125
> Где такого паучка взял? Он шикарен )))
эт из нашей игрухи
Тема в архиве.