![]() |
Страницы (7): « 1 2 [3] 4 5 6 7 » Показать все 100 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Скелетная SMD анимация (https://hlfx.ru/forum/showthread.php?threadid=5532)
__________________
-Brain is dead-
Цыпцын доходчивый чувак.
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Вот не пойму, неужто в итоге весь сыр-бор с глюками в JOML из-за того, что кости нужно трансформировать row-major матрицы, а рисовать column-major, ну не должно же это по идее никак влиять
__________________
-Brain is dead-
Забавно. Оказывается вальва добавила в SMD расширение vertexanimation.
Да там в принципе можно любые расширения добавлять, по такому же принципу: begin keyword - end
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
И все же некоторые скелеты корячит на JOML, причом на моих матрицах всё отлично. Обращаю внимание, что с моими матрицами я читаю значения костей подряд как они записаны в time0, только инвертирую Z. В JOML же я загружаю в порядке Z, X, Y и не инвертирую ничего
Гордон
Учоный
Добавлено 30-06-2020 в 15:51:
Так же в JOML сначала применяется трансляция, потом вращение, а вмоих - наоброт
__________________
-Brain is dead-
>> А потом начинаются наезды от креативной команды, мол "А какого вот эта моделька в игре выглядит вот так, в редакторе у нас всьо по-другому!", а оказывается, что моделлер применил там какой-нибудь пятый модификатор из третьей вкладки, о котором программист и в жизни не слыхивал, зато в редакторе "все красиво".
Вот потому и надо садиться вместе и обсуждать, а не спихивать собственные косяки друг на друга, порой программист может подсказать более элегантное решение чем те костыли которые городят моделеры, а порой и моделеры могут нагородить костылей которые будут работать, но к ним не нужно писать код. Но лучше конечно когда есть свобода выбора, если продукт ориентирован для юзания другими людьми.
>> А в чём неадекватность текущей развесовки? Вышеперечисленное это не особенность формата, а вопрос поддержки этих вещей самим софтом. К примеру, тот же ase может содержать кадры анимации, но эти кадры никто и никогда не читает в кваках. То есть возможность есть, но не используется.
Игровые движки одной квакой не заканчиваются. Поиграй хотя бы в ГТА4 и ГТА5, посмотри на физику игрока, анимации персонажей. Меня например переворачивает когда у перса рука как росток лука перегибается, и простой развесовкой тут не отделаешься.
>> Сергей Цыпцын два тома по Майе написал, там конечно не Дядя Миша но именно текст а не формулы.
А можно полное название? Звучит вкусно.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
1 | Vector3f pos = startFrame.pos.get(b.id); |
2 | Vector3f angles = startFrame.angles.get(b.id); |
3 |
4 | b.pos.reset(); |
5 | b.matRelative = Matrix.rotate(angles.x, 1, 0, 0); |
6 | b.matRelative = Matrix.mul(b.matRelative, Matrix.rotate(angles.y, 0, 1, 0)); |
7 | b.matRelative = Matrix.mul(b.matRelative, Matrix.rotate(angles.z, 0, 0, 1)); |
8 | b.matRelative = Matrix.mul(b.matRelative, Matrix.translate(pos.x, pos.y, pos.z)); |
9 |
10 | if (b.parentId == -1) { |
11 | b.matAbsolute = b.matRelative; |
12 | } else { |
13 | Bone p = bones.get(b.parentId); |
14 | b.matAbsolute = Matrix.mul(b.matRelative, p.matAbsolute); |
15 | } |
16 |
17 | b.matAbsolute.transform(b.pos); |
1 | Vector3f pos = startFrame.pos.get(b.id); |
2 | Vector3f angles = startFrame.angles.get(b.id); |
3 |
4 | b.pos.zero(); |
5 | b.matRelative.rotationX(angles.x); |
6 | b.matRelative.mul(new Matrix4f().rotationY(angles.y), b.matRelative); |
7 | b.matRelative.mul(new Matrix4f().rotationZ(angles.z), b.matRelative); |
8 | b.matRelative.mul(new Matrix4f().translation(pos.x, pos.y, pos.z), b.matRelative); |
9 |
10 | if (b.parentId == -1) { |
11 | b.matAbsolute = b.matRelative; |
12 | } else { |
13 | Bone p = bones.get(b.parentId); |
14 | p.matAbsolute.mul(b.matRelative, b.matAbsolute); |
15 | } |
16 |
17 | b.matAbsolute.transformPosition(b.pos); |
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
>> ну вот для этого и нужна сферическая интерполяция, о которой так долго твердили большевики. А еще DualQuats.
Ну будет у тебя вместо перегиба шланга, эта рука надуваться. Никакая интерполяция здесь не поможет. Для костей есть специальные шейпкеи, где в одной позиции у кости один шейп кей, в другой позиции - другой. Т.е. формально мы эту складку редактируем ещё морфингом. Это используется трёхмерщиками уже много лет повсеместно. Но да, в кваках такого нету.
У меня впрочем своя система борьбы с этим, без шейпкеев, правда пришлось дописать дополнительные констрейнсы для костей уже в самой игре.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Временная зона GMT. Текущее время 04:08. | Страницы (7): « 1 2 [3] 4 5 6 7 » Показать все 100 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024