HLFX.Ru Forum Страницы (7): « 1 [2] 3 4 5 6 » ... Последняя »
Показать все 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)


Отправлено KiQ 29-06-2020 в 23:34:

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-


Отправлено ncuxonaT 29-06-2020 в 23:37:

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


Отправлено KiQ 30-06-2020 в 01:25:

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

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

__________________
-Brain is dead-


Отправлено ncuxonaT 30-06-2020 в 01:40:

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

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


Отправлено KiQ 30-06-2020 в 02:07:

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-


Отправлено FiEctro 30-06-2020 в 06:16:

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


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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 30-06-2020 в 08:44:

Цитата:
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'


Отправлено FiEctro 30-06-2020 в 08:52:

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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено nemyax 30-06-2020 в 09:41:

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

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

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

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


Отправлено KiQ 30-06-2020 в 10:12:

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

Да вот же 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-


Отправлено FiEctro 30-06-2020 в 10:23:

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

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

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

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

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

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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено KiQ 30-06-2020 в 10:44:

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

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

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

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

__________________
-Brain is dead-


Отправлено nemyax 30-06-2020 в 10:47:

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

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

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

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


Отправлено FiEctro 30-06-2020 в 10:52:

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


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

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


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

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


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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено KiQ 30-06-2020 в 10:56:

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

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-


Временная зона GMT. Текущее время 04:08. Страницы (7): « 1 [2] 3 4 5 6 » ... Последняя »
Показать все 100 сообщений этой темы на одной странице

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