HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Скелетная SMD анимация
Снова здорова
Страницы (7): « 1 [2] 3 4 5 6 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Smile

Нормали поправил, благодарствую


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

Добавлено 30-06-2020 в 02:27:

ncuxonaT я не подключал шейдеры в конвертер, это чисто утилитарная визуализация на FFP, мне главное настроить чтобы корректно конвертировалось и в самом движке отображалось

Добавлено 30-06-2020 в 02:34:

Это уже дальше пойдут разные MaterialGroup, шейдеры и все такое, мне главное из smd сделать валидную vertex data и скелетную анимацию

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 195168

Старое сообщение 29-06-2020 23:34
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



KiQ я прост идею хотел донести, как нормали вертеть вместе с вершинами

Сообщить модератору | | IP: Записан
Сообщение: 195169

Старое сообщение 29-06-2020 23:37
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



ncuxonaT в том-то и дело, что когда я просто умножил ноомаль на матрицу кости, то она люто искорежилась, а вот если из матрицы вычленить вектор вращения и перемножить на ноомаль, то как раз все хорошо)

Кстати, относительно моего предыдущего поста, вангую, что предпочтительнее использовать квантерионы?

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 195170

Старое сообщение 30-06-2020 01:25
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
KiQ писал:
когда я просто умножил ноомаль на матрицу кости, то она люто искорежилась

четвертая компонента нормали была 0 или 1?

Сообщить модератору | | IP: Записан
Сообщение: 195171

Старое сообщение 30-06-2020 01:40
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



ncuxonaT у меня матрицы и векторы самописные ещё пятилетней давности, нлрмаль там Vector3f, соответственно w отсутствует как факт)

Добавлено 30-06-2020 в 05:04:

Если бы я делал через JOML, то там у матрицы есть отдельные методы transformPosition и transformRotation, вероятно юзал бы их

Добавлено 30-06-2020 в 05:07:

https://github.com/DarkPartizaN/fen...nyx/engine/geom

Вот матрицы брал свои же из этого бэкапа, там же в ветке render/smd непосредственно первая версия рендер smd. Ну у меня там моими матрицами и проекция задавалась, а вот в новой версии проекцию я задаю на JOML

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 195172

Старое сообщение 30-06-2020 02:07
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Цитата:
KiQ писал:
FiEctro это я для своего движка делаю, smd взял как промежуточный формат, потому-что в нем нет ничего лишнего и удобная скелеталка, плюс его легко парсить


Сложно назвать это форматом, из современных фишек ничего не поддерживает, в 3д пакете так просто не отредактируешь, смд плагины давно устарели.

Отредактировано FiEctro 30-06-2020 в 06:19

Сообщить модератору | | IP: Записан
Сообщение: 195173

Старое сообщение 30-06-2020 06:16
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
KiQ писал:
вычленяем из неё вектор вращения

У тебя матрица какой размерности?

Добавлено 30-06-2020 в 11:44:

Цитата:
KiQ писал:
В изначальной статье говориться о некоем свертывании полигонов

а где ссылка на изначальную статью? Я предполанаю речь идёт о том, что вертексы при компиляции переносятся в локальное пространство кости, а в smd расположены в абсолютном. Ну это кстати частая практика. Например те же кривые безье в ку3 и дуум, имеют абсолютную позицию и дублирующий оригин, который надо вычесть.

Цитата:
KiQ писал:
в том-то и дело, что когда я просто умножил ноомаль на матрицу кости, то она люто искорежилась, а вот если из матрицы вычленить вектор вращения и перемножить на ноомаль, то как раз все хорошо)

потому что нормаль, это вектор, а не положение в пространстве. У нее нет позиции, у нее только направление, как у самурая. А ты её пытаешься трансформировать. И в матрице нет никакого "вектора вращения". Ты наверное хотел сказать - базис.

Цитата:
ncuxonaT писал:
четвертая компонента нормали была 0 или 1?

в матлибах обычно делают кейсы на вращение трёхкомпонентных векторов.
Цитата:
KiQ писал:
предпочтительнее использовать квантерионы?

Кватернионы для сферической интерполяции. Больше они там ни для чего не нужны.
Цитата:
FiEctro писал:
из современных фишек ничего не поддерживает

перечисли современные фишки

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 195176

Старое сообщение 30-06-2020 08:44
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Морфинг, адеквакватная развесовка, материалы, анимационные слои, вертексколор, вертексгруппы (не только для костей), миррор, субдивижен, кривые и т.д. Ещё бы добавил разные констрейты, но это скорее вопрос софта и движка, нежели формата.

Отредактировано FiEctro 30-06-2020 в 08:54

Сообщить модератору | | IP: Записан
Сообщение: 195178

Старое сообщение 30-06-2020 08:52
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Цитата:
FiEctro писал:
Морфинг, адеквакватная развесовка, материалы, анимационные слои, вертексколор, вертексгруппы (не только для костей), миррор, субдивижен, кривые и т.д.

Разве что вертексколор и вертексгруппы в кассу. Остальное либо специфика редактора или движка, либо уже выражено в SMD (в сорсовом же есть морфы, а имя текстуры чем не имя материала).
Ты, наверное, этим хочешь сказать, что мол хороший формат FBX. Но приятного в нём мало и не будем забывать, что это изначально родной формат редактора MotionBuilder, отсюда и редакторские фишки.

Добавлено 30-06-2020 в 12:41:

Хотя про морфы гоню, там же в сорсе отдельный формат для них.

Сообщить модератору | | IP: Записан
Сообщение: 195179

Старое сообщение 30-06-2020 09:41
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Цитата:
Дядя Миша писал:
а где ссылка на изначальную статью?

Да вот же http://www.tmtlib.narod.ru/skeletal.htm Но там лютый код на паскале

Цитата:
Дядя Миша писал:
вертексы при компиляции переносятся в локальное пространство кости

А, ну вот походу да, оно и есть

Цитата:
Дядя Миша писал:
А ты её пытаешься трансформировать. И в матрице нет никакого "вектора вращения". Ты наверное хотел сказать - базис

Я сначала попытался, но сразу исправил) ну я просто в матрице скопировал метод трансформации вектора и убрал из него сумму компонент перемещения.

Цитата:
Дядя Миша писал:
Кватернионы для сферической интерполяции. Больше они там ни для чего не нужны.

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

Цитата:
FiEctro писал:
Морфинг, адеквакватная развесовка, материалы, анимационные слои, вертексколор, вертексгруппы (не только для костей), миррор, субдивижен, кривые и т.д.

Я буквально пару постов назад писал, что взял smd, потому-что там нет всего этого нагромождения Материалы у меня будут в скрипте компиляции, развесовка там имхо достаточная, для морфинга есть сорсовский аналогичный формат с vertex animation, анимационные слои не очень понял, что ты имеешь в виду, я не моделлер, так что вряд-ли с ними буду заморачиваться. Вертекс-группы я думаю не проблема добавить в экспортере из редактора, например как и номер кости в той же строчке, вертексколор аналогично. Отражение можно указать в том же скрипте и делать при компиляции программно.

Цитата:
FiEctro писал:
3д пакете так просто не отредактируешь, смд плагины давно устарели

https://hlfx.ru/forum/showthread.php?s=&threadid=4871

последнее обновление - от 7 июня 2020 у импорта, и от 2019 года у экспортера о чем ты?

__________________
-Brain is dead-

Отредактировано KiQ 30-06-2020 в 10:15

Сообщить модератору | | IP: Записан
Сообщение: 195182

Старое сообщение 30-06-2020 10:12
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



KiQ
>> последнее обновление - от 7 июня 2020 у импорта, и от 2019 года у экспортера о чем ты?

Не видел, спасибо, посмотрю

>> Я буквально пару постов назад писал, что взял smd, потому-что там нет всего этого нагромождения Материалы у меня будут в скрипте компиляции, развесовка там имхо достаточная, для морфинга есть сорсовский аналогичный формат с vertex animation, анимационные слои не очень понял, что ты имеешь в виду, я не моделлер, так что вряд-ли с ними буду заморачиваться. Вертекс-группы я думаю не проблема добавить в экспортере из редактора, например как и номер кости в той же строчке, вертексколор аналогично. Отражение можно указать в том же скрипте и делать при компиляции программно.

Ну да, не хотим делать в редакторе, нам давай циферки в блокнотике набивать.

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

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

Отредактировано FiEctro 30-06-2020 в 10:31

Сообщить модератору | | IP: Записан
Сообщение: 195183

Старое сообщение 30-06-2020 10:23
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



FiEctro так компилятор в любом случае будет не в mdl а в свой формат, иначе бы проще было взять и расширить mdl)

Цитата:
FiEctro писал:
Ну да, не хотим делать в редакторе, нам давай циферки в блокнотике набивать.

Я давно таким вдалбливаю, что моделер должен делать модели, а не писать скрипты

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

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 195184

Старое сообщение 30-06-2020 10:44
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4133

Рейтинг



Цитата:
FiEctro писал:
Ну да, не хотим делать в редакторе, нам давай циферки в блокнотике набивать.

Работать, конечно, надо в редакторах. Соответственно и исходники ресурсов хранить в редакторских, а не в движочных форматах (которые совсем для другого).

Цитата:
KiQ писал:
последнее обновление - от 7 июня 2020 у импорта, и от 2019 года у экспортера

Оно для блендера 2.79, а уже на дворе 2.83. Я портану под 2.8*, но пока руки не доходят.

Сообщить модератору | | IP: Записан
Сообщение: 195185

Старое сообщение 30-06-2020 10:47
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12882
Возраст: 32

Рейтинг



Цитата:
KiQ писал:
FiEctroНо индустрия сейчас заточена под дезигнеров, да


Я бы не сказал, много матана с этими вашими кватерионами, эйлерами и векторами в которых я ноль. Хоть бы кто то тутор написал как эта вся фигня в 3д работает... Много вещей делается посредством скриптов и разных плясок с бубном (для тех кому знакомо слово Maya). Так что здесь понятие "дезигнер" прямо пересекается с понятием, если не "программист" то "скриптёр" уж точно. Но фишка в том что я не призываю вообще от этого отказаться раз и навсегда, да? Я просто предлагаю максимально автоматизировать самые шаблонные операции. Нравится циферки в блокноте колупать? Да не вопрос, но дай другим возможность сделать эти вещи автоматически.

Цитата:
nemyax писал:
Оно для блендера 2.79, а уже на дворе 2.83. Я портану под 2.8*, но пока руки не доходят.


Я щас в 2.83 работаю, обучался на 2.79, но уже полностью отвык от его интерфейса.

Цитата:
KiQ писал:
Не забывай, что все, что там наворотит моделлер, программисту потом парсить и обрабатывать.


Если программист не умеет парсить и обрабатывать, тогда какой из него программист?

Отредактировано FiEctro 30-06-2020 в 10:56

Сообщить модератору | | IP: Записан
Сообщение: 195186

Старое сообщение 30-06-2020 10:52
- За что?
KiQ
Житель форума

Дата регистрации: Aug 2010
Проживает: Смоленск, Москва
Сообщений: 2087

Рейтинг



Цитата:
Дядя Миша писал:
У тебя матрица какой размерности?

4 x 4 флоата. Да собственно я в лоб пока сделал, для экспортера несущественно, вот в самом движке надо будет что-то думать, но там и матрицы жомловские

C++ Source Code:
1
public void transform(Vector3f v) {
2
  float x, y, z;
3
 
4
  x = v.x;
5
  y = v.y;
6
  z = v.z;
7
 
8
  v.x = x * m[0] + y * m[4] + z * m[8] + m[12];
9
  v.y = x * m[1] + y * m[5] + z * m[9] + m[13];
10
  v.z = x * m[2] + y * m[6] + z * m[10] + m[14];
11
}
12
 
13
//Это для нормалей
14
public void transformRotate(Vector3f v) {
15
  float x, y, z;
16
 
17
  x = v.x;
18
  y = v.y;
19
  z = v.z;
20
 
21
  v.x = x * m[0] + y * m[4] + z * m[8];
22
  v.y = x * m[1] + y * m[5] + z * m[9];
23
  v.z = x * m[2] + y * m[6] + z * m[10];
24
}


Добавлено 30-06-2020 в 13:56:

Цитата:
FiEctro писал:
Нравится циферки в блокноте колупать? Да не вопрос, но дай другим возможность сделать эти вещи автоматически.

Мне кажется, Дядя Миша предложил идеальный вариант в своем modelviewer, с визуальной настройкой аттачментов и все такое. Вот я думаю тоже вроде этого запилю, а писаться будет в скрипт. Ну чтобы например можно было батником пакетную компиляцию запускать. Но до этого еще долго и упорно идти (надеюсь получится быстрее, чем предыдущие восемь лет)

__________________
-Brain is dead-

Сообщить модератору | | IP: Записан
Сообщение: 195187

Старое сообщение 30-06-2020 10:56
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 23:34. Новая тема    Ответить
Страницы (7): « 1 [2] 3 4 5 6 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Скелетная SMD анимация
Снова здорова
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024