HLFX.Ru Forum
Показать все 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 26-06-2020 в 22:19:

Unhappy Скелетная SMD анимация

Всем доброго времени суток, товарищи! Может кто-нибудь помнит, как я пытался имплементировать в свой движок анимацию из smd из древней статьи на tmlibе, лет этак пять назад. Тогда мне удалось успешно забороть все глюки и выверты скелета и меша. И вот спустя столько времени, я решил портировать этот код на текущую версию движа, используя в качестве матриц не самописную либу, а рекомендуемый в среде lwjgl погромистов - JOML (Java OpenGL Math Library). После определенных манипуляций я переписал загрузчик, но по итогу вновь вернулся к раскоряченному скелету и полигонам. Собственно, что удалось выяснить - в JOML используется порядок матрицы вертикального вида
00, 10, 20, 30
01, 11, 21, 31
02, 12, 22, 32
03, 13, 23, 33
в то время, как у меня порядок был горизонтальный. Кроме того, отпала необходимость в конверсии радианов в градусы, так как JOML изначально работает в радианах. В остальном же код не слишком изменился, но модели вновь корежит (координаты вертексов тут без преобразования, то есть загружены напрямую из smd "как есть").


Загружаю рефренсный фрейм прямо

C++ Source Code:
1
int boneId = Integer.parseInt(tokens[0]);
2
 
3
float x = Float.parseFloat(tokens[1]);
4
float y = Float.parseFloat(tokens[2]);
5
float z = Float.parseFloat(tokens[3]);
6
 
7
float ax = Float.parseFloat(tokens[4]);
8
float ay = Float.parseFloat(tokens[5]);
9
float az = Float.parseFloat(tokens[6]);
10
 
11
referenceFrame.pos.put(boneId, new Vector3f(x, y, z)); //Сюда сторим референсную позицию
12
referenceFrame.angles.put(boneId, new Vector3f(ax, ay, az)); //А сюда углы в радианах


Кости настраиваю так:
C++ Source Code:
1
//Читаем все кости подряд
2
for (Bone b : bones.values()) {
3
  Vector3f pos = startFrame.pos.get(b.id); //Получаем позицию для кости
4
  Vector3f angles = startFrame.angles.get(b.id); //И углы
5
 
6
  b.matRelative.identity(); //Промежуточная матрица
7
  b.matRelative.rotateX(angles.x);
8
  b.matRelative.rotateY(angles.y);
9
  b.matRelative.rotateZ(angles.z);
10
  b.matRelative.translate(pos.x, pos.y, pos.z);
11
 
12
  if (b.parentId == -1) {
13
    b.matAbsolute = b.matRelative; //Если парент-кости нет - то присваимаем абсолютной матрице локальную
14
  } else {
15
    //В ином случае - перемножаем абсолютную матрицу парента с текущей и сохраняем в текущую абсолютную
16
    Bone p = bones.get(b.parentId);
17
    p.matAbsolute.mul(b.matRelative, b.matAbsolute);
18
  }
19
 
20
  b.matAbsolute.transformPosition(b.pos);
21
}


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


Что-то мне подсказывает, что решение где-то под носом, но найти не могу, а возвращаться к самописным матрицам не хочется, тем более, что у JOML отличная интеграция с шейдерами

__________________
-Brain is dead-


Отправлено nemyax 27-06-2020 в 08:15:

Порядок эйлеров XYZ в этом жомле?


Отправлено Дядя Миша 27-06-2020 в 09:13:

Таблица конверсии

Original - smd
YAW -> ROLL
PITCH -> YAW
ROLL -> PITCH

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 28-06-2020 в 14:15:

Post

Цитата:
nemyax писал:
Порядок эйлеров XYZ в этом жомле?

Не совсем понял, порядок поворотов можно указывать в любой последовательности.

Как выяснилось на сумрачном форуме по JOML, порядок операций над матрицами должен быть T * R * v (вообще форумы по нему какие-то и прям люто сумрачные, учитывая вроде-бы относительную популярность этой либы, толком найти там что-то очень сложно, большинство ответов в стиле "сам дурак, иди учи линейную алгебру"). Применил его, а так же переделал трансформацию в соответствии с таблицей конверсии:
C++ Source Code:
1
b.matRelative.translation(pos.z, pos.x, pos.y);
2
b.matRelative.rotateX(angles.z);
3
b.matRelative.rotateY(angles.x);
4
b.matRelative.rotateZ(angles.y);


то есть поменял с (x, y, z) на (z, x, y). Скелет вроде бы грузится правильно, но развернутым на 90 градусов и где-то в стороне от начала координат. При этом, если менять порядок только углов (pitch, yaw, roll -> roll, yaw, pitch), но оставлять неизменным порядок позиции, то скелет опять-же плющит. С вертексами ситуация еще страннее, если оставить обычный порядок, то они грузятся перпендикуярно скелету. Если сменить (x, y, z->z, x, y), то тоже как бы "на боку". Более-менее правильно они грузятся в следующем порядке вершин (y, z, x), и то, где-то в воздухе, далеко от референсного скелета. Преобразование я даже пока не делал, там нужно какое-то сворачивание полигонов инвертированной матрицей, которую я эксперементально подберал в прошлой версии, тут она не заработала.

Скелет при pos(z, x, y) и angles(z, x, y)




Полигоны при (vy, vz, vx) при этом модель зеркально отражается


Добавлено 28-06-2020 в 17:08:

Ради интереса впилил обратно самописные матрицы. Итог - все замечательно грузится, скелет и полигоны на своих местах, за исключением того, что модель отзеркалена (как я раньше не замечал о_О)



Добавлено 28-06-2020 в 17:15:

Хотя зеркалится, вероятно, потому что я использую RH матрицу проекции вместо LH, а не как следствие неправильной загрузки

__________________
-Brain is dead-


Отправлено Дядя Миша 28-06-2020 в 16:40:

Компилятор действительно свапает вертексы и еще по дефолту вращает скелет на 90 градусов.

Цитата:
KiQ писал:
модель отзеркалена


t = 1.0 - t;

там почти всё свапнуто или повернуто, целый огород граблей.

Добавлено 28-06-2020 в 19:40:

Самое смешное, что это не проблема smd, это вальва зачем-то придумала.

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 28-06-2020 в 17:32:

Цитата:
Дядя Миша писал:
Самое смешное, что это не проблема smd, это вальва зачем-то придумала.

да уж, господа знают толк в...

Цитата:
Дядя Миша писал:
t = 1.0 - t;

если это про текстурную развертку, то у меня так и есть, проблема в том, что отзеркалены и кости...

Впрочем изначально я и собирался написать конвертер, а smd использовать как промежуточный формат. То есть, если оно будет правильно работать с самописными матрицами, то это некритично, просто сделаю дамп с этих матриц в конечный файл модели и потом буду грузить уже в JOML исправленные данные. Полагаю, mdlcompiler так и делает.

__________________
-Brain is dead-


Отправлено Дядя Миша 28-06-2020 в 18:56:

Цитата:
KiQ писал:
Хотя зеркалится, вероятно, потому что я использую RH матрицу проекции вместо LH

Может. В кваках заданы некоторые неявные стандарты, которые потом вылазиют, когда начинаешь пилить что-то своё.

__________________
My Projects: download page

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

Цитата:

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


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

Переделал под LH проекцию, ну это просто какая-то жесть. Такое ощусчение, что вальва просто рандомно свапала значения в smd, до кучи добавив этот непонятный и ненужный поворот root кости на 90 градусов. Теперь буду проверять анимации. Кстати, хотел спросить, по идее у модели же может быть несколько мировых костей (с parent == -1)?




Тут внезапно всплыла еще одна проблема, а именно - нормали вертексов, которые не трансформируются вместе с костями, в итоге при развороте скелета вместо симпатичного "пинхеда" мы получаем такое

__________________
-Brain is dead-


Отправлено FiEctro 29-06-2020 в 14:21:

Походу они никак не могли определиться в какой системе координат им работать.

Надеюсь в ксаше и волатиле такого трешака не будет

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


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

Эксперементально выяснил, что если в матрице проекции ось Z направлена от камеры, то модель отзеркаливается горизонтально. Ерунда какая-то

Добавлено 29-06-2020 в 17:23:

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

__________________
-Brain is dead-


Отправлено Дядя Миша 29-06-2020 в 15:45:

Цитата:
KiQ писал:
по идее у модели же может быть несколько мировых костей (с parent == -1)?

да, конечно.

Добавлено 29-06-2020 в 18:39:

Цитата:
KiQ писал:
нормали вертексов, которые не трансформируются вместе с костями

это как?

Добавлено 29-06-2020 в 18:45:

Цитата:
FiEctro писал:
Надеюсь в ксаше и волатиле такого трешака не будет

да я вот думаю запилить smd version 2, который от первой по содержанию будет отличаться ничем, но там уже не придется ничего свапать, вращать и переставлять.

Цитата:
FiEctro писал:
Походу они никак не могли определиться в какой системе координат им работать.

грёбаная оптимизация. Вместо того, чтобы нормально всё трансформировать через матрицу, они начали это свапать, типа так быстрее. И окончательно всё запутали. Впрочем в ase точно такой же адок творится, даже еще хуже. Потому что в ase умел сохранять q3map2, который это делал прямо в системе координат самого квейка, т.е. повернутым два раза на 90 градусов. И вот у нас стоит изумительная задачка - отличить обычный ase вот так такого повернутого. Я зацепился за комментарий "written by q3map2", других способов просто нет.

__________________
My Projects: download page

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

Цитата:

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


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

Цитата:
Дядя Миша писал:
это как?

Ну вот для примера, как нормали выглядят сразу после загрузки


а вот так после поворота нулевой кости на 90 градусов (чтобы пофиксить поворот который добавила вальва)


Белым выделено начало координат (0,0,0)

Добавлено 29-06-2020 в 22:56:

Это нормали именно вертексов, которые в smd пишутся в секции triangles. Нормали треугольников я еще не считал

__________________
-Brain is dead-


Отправлено Дядя Миша 29-06-2020 в 21:20:

Если ты делаешь VectorTransform для вертексов, очевидно надо сделать и VectorRotate для нормалей.

__________________
My Projects: download page

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

Цитата:

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


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

Дядя Миша именно только вращение? То есть, получается берём матрицу кости, вычленяем из неё вектор вращения и умножаем на ноомаль?

Добавлено 30-06-2020 в 01:45:

Так-то эта вся визуализация чисто утилитарная, потом я оставлю только консольный конвертер, но мне важно сейчас все правильно настроить

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

Вообще интересно, например, читаю Quake Specs, там пишется, что квака использует стандартную left-handed проекцию, где ось Z идёт положительно вверх. В то время, как JOML упорно строит матрицу проекции с z от камеры или в камеру. С другой стороны, это логично, Z-buffer же. Где-то меня клинит, а где, не могу понять. Как будто в 2010 откатился

__________________
-Brain is dead-


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

Цитата:
KiQ писал:
То есть, получается берём матрицу кости, вычленяем из неё вектор вращения и умножаем на ноомаль?

бери vec4(gl_Normal, 0.0) и умножай на те же матрицы, что и вершины


Отправлено 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-


Отправлено Crystallize 30-06-2020 в 11:03:

Цитата:
FiEctro писал:
Хоть бы кто то тутор написал как эта вся фигня в 3д работает... Много вещей делается посредством скриптов и разных плясок с бубном (для тех кому знакомо слово Maya).

Сергей Цыпцын два тома по Майе написал, там конечно не Дядя Миша но именно текст а не формулы.


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

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

А потом начинаются наезды от креативной команды, мол "А какого вот эта моделька в игре выглядит вот так, в редакторе у нас всьо по-другому!", а оказывается, что моделлер применил там какой-нибудь пятый модификатор из третьей вкладки, о котором программист и в жизни не слыхивал, зато в редакторе "все красиво".

Цитата:
FiEctro писал:
Так что здесь понятие "дезигнер" прямо пересекается с понятием, если не "программист" то "скриптёр" уж точно

Есть же понятие геймдизайнера, который как раз и должен хоть чутка, на уровне скриптов, но понимать, как взаимодействовать с движком. По крайней мере я так это вижу.

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

то же самое, сейчас вот вообще 3ds max переосваиваю. Никак у меня не получается перестроиться от кубания. Да и не надо оно, может...

__________________
-Brain is dead-


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

Цыпцын доходчивый чувак.

Цитата:
KiQ писал:
там и матрицы жомловские

И как там, базисы подряд или "сверху вниз"? И где лежит трансляция?


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

Цитата:
nemyax писал:
И как там, базисы подряд или "сверху вниз"? И где лежит трансляция?

базисы как и в OGL column-major, сверху вниз. Трансляция лежит в [3, 0] [3, 1] и [3, 2], соответственно (ну или в m[12], m[13] и m[14] если развернуть в линейный массив. Вообще странно, ибо это соответствует тому, что было у меня. Мне кажется, что-то там с умножением не-то, по-разному оно делается

__________________
-Brain is dead-


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

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

А в чём неадекватность текущей развесовки? Вышеперечисленное это не особенность формата, а вопрос поддержки этих вещей самим софтом. К примеру, тот же ase может содержать кадры анимации, но эти кадры никто и никогда не читает в кваках. То есть возможность есть, но не используется.
Цитата:
KiQ писал:
Да вот же http://www.tmtlib.narod.ru/skeletal.htm

Цитата:
type TModelka = object

Понятно.

Цитата:
KiQ писал:
Насколько я понял они также решают проблему gimbalock, хотя с другой стороны матрицы тоже ее решают

У Эйлера нет проблемы блокировки, пока ты не начинаешь их складывать. Можно сложить в матрице и трансформировать обратно в Эйлера.

Цитата:
KiQ писал:
да и интерполировать матрицы тоже можно

у матриц интерполяция только линейная, у кватернионов - сферическая. Тем они и ценны.

Добавлено 30-06-2020 в 14:28:

Цитата:
KiQ писал:
"А какого вот эта моделька в игре выглядит вот так, в редакторе у нас всьо по-другому!"

Так вот тож. Чем меньше фишек поддерживает формат, тем меньше вероятность разночтения редактором и движком. Поэтому я и не хочу поддерживать всякие там вертекс-колоры и смутч-группы. Тут ведь еще вот какое дело. Мне по сути нужен один общий исходный формат для всего.
ase развесовку не поддерживает и кости тоже, obj аналогично.
Только smd и остается. Проще пожертвовать цветом вертексов, тем более что его всё равно компилятор создаёт. Впрочем, я может быть создам какой-то свой текстовый формат, посмотрим. Не хотелось бы конечно.

__________________
My Projects: download page

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

Цитата:

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


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

Вот не пойму, неужто в итоге весь сыр-бор с глюками в JOML из-за того, что кости нужно трансформировать row-major матрицы, а рисовать column-major, ну не должно же это по идее никак влиять

__________________
-Brain is dead-


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

Забавно. Оказывается вальва добавила в 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'


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

Цитата:
Дядя Миша писал:
Только smd и остается.

IQM не рассматривал?


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

Цитата:
Дядя Миша писал:
Оказывается вальва добавила в SMD расширение vertexanimation

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

А между тем есть прогресс с JOML. Скелет изкаропки грузится вертикально, кости позиционируются правильно. Проекцию я вернул right-handed, соответственно ничего не зеркалится. Вертексы пока так, сейчас буду разбираться с ними

__________________
-Brain is dead-


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

Цитата:
nemyax писал:
IQM не рассматривал?

IQM бинарка, а я про промежуточные форматы. Можно кстати от милки подключить формат, я правда хз, юзают ли её еще.
Но там жеж все эти смутч-группы есть, как положено.

__________________
My Projects: download page

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

Цитата:

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


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

И все же некоторые скелеты корячит на JOML, причом на моих матрицах всё отлично. Обращаю внимание, что с моими матрицами я читаю значения костей подряд как они записаны в time0, только инвертирую Z. В JOML же я загружаю в порядке Z, X, Y и не инвертирую ничего

Гордон




Учоный




Добавлено 30-06-2020 в 15:51:

Так же в JOML сначала применяется трансляция, потом вращение, а вмоих - наоброт

__________________
-Brain is dead-


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

>> А потом начинаются наезды от креативной команды, мол "А какого вот эта моделька в игре выглядит вот так, в редакторе у нас всьо по-другому!", а оказывается, что моделлер применил там какой-нибудь пятый модификатор из третьей вкладки, о котором программист и в жизни не слыхивал, зато в редакторе "все красиво".

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

>> А в чём неадекватность текущей развесовки? Вышеперечисленное это не особенность формата, а вопрос поддержки этих вещей самим софтом. К примеру, тот же ase может содержать кадры анимации, но эти кадры никто и никогда не читает в кваках. То есть возможность есть, но не используется.

Игровые движки одной квакой не заканчиваются. Поиграй хотя бы в ГТА4 и ГТА5, посмотри на физику игрока, анимации персонажей. Меня например переворачивает когда у перса рука как росток лука перегибается, и простой развесовкой тут не отделаешься.

>> Сергей Цыпцын два тома по Майе написал, там конечно не Дядя Миша но именно текст а не формулы.

А можно полное название? Звучит вкусно.

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


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

Цитата:
FiEctro писал:
Поиграй хотя бы в ГТА4 и ГТА5, посмотри на физику игрока, анимации персонажей

Так это вообще Euphoria, сторонняя технология и очень тяжеловесная, рокстары ее просто лицензировали.

Я не понимаю, я уже привел код к идентичному состоянию, в загрузчике гружу в аналогичном порядке без всяких конверсий
Мои матрицы:
C++ Source Code:
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);


JOML
C++ Source Code:
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);


и все равно разный результат! Мои матрицы отрабатывают нормально, JOML корёжит

__________________
-Brain is dead-


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

Цитата:
FiEctro писал:
когда у перса рука как росток лука перегибается, и простой развесовкой тут не отделаешься.

ну вот для этого и нужна сферическая интерполяция, о которой так долго твердили большевики. А еще DualQuats.

Цитата:
FiEctro писал:
Поиграй хотя бы в ГТА4 и ГТА5

Ну я бывал в этой игре для многих лет. Я вытащил заживо!

__________________
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 в 13:35:

>> ну вот для этого и нужна сферическая интерполяция, о которой так долго твердили большевики. А еще DualQuats.

Ну будет у тебя вместо перегиба шланга, эта рука надуваться. Никакая интерполяция здесь не поможет. Для костей есть специальные шейпкеи, где в одной позиции у кости один шейп кей, в другой позиции - другой. Т.е. формально мы эту складку редактируем ещё морфингом. Это используется трёхмерщиками уже много лет повсеместно. Но да, в кваках такого нету.

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

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


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

Цитата:
FiEctro писал:
Т.е. формально мы эту складку редактируем ещё морфингом. Это используется трёхмерщиками уже много лет повсеместно.

это где ты такое видел?


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

И корректирующие блендшейпы, и dual quat успешно борются с потерей объёма. С блендшейпами контроля больше, понятное дело.

Цитата:
FiEctro писал:
А можно полное название? Звучит вкусно.

"Понимая Maya".

Добавлено 30-06-2020 в 17:46:

Цитата:
FiEctro писал:
своя система борьбы с этим, без шейпкеев

Если по кости на каждый луп-срез добавить, то тоже кукожить не будет.


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

http://wiki.polycount.com/wiki/Limb_Topology


Отправлено ***FantoM*** 30-06-2020 в 15:08:

FiEctro
Я непонимаю твою нелюбовь к smd формату.
Чем он тебе не угодил?

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

Не знаю на счет других 3дэ редакторов, но под 3DS Max уже давно обновлены плагины на версию 2020.
https://www.wunderboy.org

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

А что плохого в QC скриптах?
Ведь на создани QC уходит около 1-5мин в голд, и 1-15мин. в соурс
А на компиляции модели уходит 1-10сек в голд, и 5-30сек в сорс.

Мне лично нравится, что для создания какого-нибудь эффекта на модели, нужно всего лишь добавить несколько строк кода в скрипт.

Цитата:
Дядя Миша писал:
Поэтому я и не хочу поддерживать всякие там вертекс-колоры и смутч-группы.

Как же без SmoothGroups можно? в голде - есть, в сталкере- есть, в других движках - есть,а в новом XashNT не будет?

Цитата:
FiEctro писал:
Меня например переворачивает когда у перса рука как росток лука перегибается, и простой развесовкой тут не отделаешься.

Так ведь тут проблема не в развесовки, а проблема в кривых руках человека
который сделал риг на модель.

А знаете, что меня реально бесит в смд? только то, что нельзя задать влияние развесовки
для более двух костей на один вертекс.


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

Вот ещё от жухлых коленок средство без всяких погромистских затей:



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

Цитата:
***FantoM*** писал:
Как же без SmoothGroups можно?

Не можно, а нужно! Вместо смувингрупп должны быть острые рёбра.


Отправлено Crystallize 30-06-2020 в 17:46:

Цитата:
nemyax писал:
"Понимая Maya".

На рутрекере есть, причём лучше читать версию в djvu, она чётче.


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

Цитата:
***FantoM*** писал:
А знаете, что меня реально бесит в смд? только то, что нельзя задать влияние развесовки
для более двух костей на один вертекс.

во первых причём тут smd, а во вторых, в сорсе влияние - 3 кости, а в ксаше - 4 кости. Это больше двух.

Цитата:
***FantoM*** писал:
Как же без SmoothGroups можно?

Я просто не вижу. Эти группы задаются поматериально и имеют влияние только на освещение. Значит их можно задать в самих материалах и пусть их учитывает компилятор света. Логично? На мой взгляд нет вообще особой необходимости в этих кастомных группах, можно сгладить все нормали разом под какой-то угол - обычно этого достаточно.

Добавлено 30-06-2020 в 22:48:

Цитата:
nemyax писал:
Вот ещё от жухлых коленок средство без всяких погромистских затей:

Тут еще такое дело - пользователи обычно посылают пограмиста куда подальше и делают по своему через хитрозакрученную жопу, потому что привыкли. С этим бесполезно бороться.

__________________
My Projects: download page

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

Цитата:

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


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

Цитата:
Дядя Миша писал:
делают по своему через хитрозакрученную жопу

Ты ролик-то видел? Всё решается одной дополнительной костью.
Однако в паре с айкеем типа сорсового-ксашного коррекция работать скорее всего не будет, это да.


Отправлено FiEctro 01-07-2020 в 07:37:

Цитата:
ncuxonaT писал:
это где ты такое видел?


Майщики так делают.

Цитата:
nemyax писал:
Если по кости на каждый луп-срез добавить, то тоже кукожить не будет.

Цитата:
ncuxonaT писал:
http://wiki.polycount.com/wiki/Limb_Topology


Будет кукожить, меньше конечно, но топология никак на потерю объёма не влияет. Все вот эти радужные примеры по ссылке работают только при сгибе конечностей на 90 и менее градусов, а дальше начинается треш и содомия.

Цитата:
nemyax писал:
Вот ещё от жухлых коленок средство без всяких погромистских затей:


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

Дело в том что все 3д пакеты используют ось Z как вертикальную, но всякие Кармаки решили что нафиг надо, давайте у нас ось Y будет вертикальной. К чему это привело? К тому что хошь, не хошь, приходится поворачивать модель в движке на 90 градусов, но Кармаки видимо в Эйлерах и Кватернионах тоже не очень хорошо разбирались, потому что бы знали что на скелеталке такой изврат может просто добавить какие то рандомные и случайные повороты костей вокруг своей оси, при том что если вернуть модель в её исходную ориентацию, как она была в редакторе, то всё работает нормально. И вот сейчас сижу и думаю, как фиксить это говно?

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


Отправлено nemyax 01-07-2020 в 08:01:

Цитата:
FiEctro писал:
все 3д пакеты используют ось Z как вертикальную, но всякие Кармаки решили что нафиг надо, давайте у нас ось Y будет вертикальной

В майе изначально был вертикальный Y. У Кармака всю дорогу был вертикальный Z.


Отправлено Дядя Миша 01-07-2020 в 11:25:

Цитата:
FiEctro писал:
потому что бы знали что на скелеталке такой изврат может просто добавить какие то рандомные и случайные повороты костей вокруг своей оси

Ну пошла бредятина, прямо в духе Мастера

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 01-07-2020 в 11:33:

Цитата:
Дядя Миша писал:
бредятина, прямо в духе Мастера

Видимо имеются в виду перескоки в анимации. Там ведь при конвертации кватернионов и эйлеров тудым-сюдым действительно бывают неоднозначности. Но виноваты в них не кармаки.


Отправлено Cybermax 01-07-2020 в 13:26:

Я когда сталкеровские ogf перегонял в smd, то меши и анимации были повернуты на 90 градусов. Приходилось в 3ds Max разворачивать. Это как-то связанно с тем что вы обсужлади на первой странице?


Отправлено Дядя Миша 01-07-2020 в 18:00:

Цитата:
nemyax писал:
Там ведь при конвертации кватернионов и эйлеров тудым-сюдым действительно бывают неоднозначности.

Ну это вам лучше знать, что вы там конвертируете сначала туда, а потом сюда. Если где-то ошибка начала накапливаться, то дело плохо.

Цитата:
Cybermax писал:
то меши и анимации были повернуты на 90 градусов

всё относительно С точки зрения тех, кто делает под сталкер - ничего не повернуто.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 01-07-2020 в 18:43:

Цитата:
Дядя Миша писал:
Ну это вам лучше знать, что вы там конвертируете сначала туда, а потом сюда.

Так вы же конвертируете. Оно в smd лежит в эйлерах, а в движке слёрпится уже с рывками. Помогает переориентация кости.

Добавлено 01-07-2020 в 21:43:

Впрочем в те эйлеры конкретно в моём случае оно вообще преобразуется с матриц. Может, ошибка есть уже на этом этапе.


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

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

Из вторых неприятностей - блендер просирает веса, после применения модификатора субдивайда, вернее как, веса остаются как на лоупольной версии, из-за чего модель хоть и хайполи, но всеравно вся квадратная.

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


Отправлено Дядя Миша 02-07-2020 в 08:29:

Цитата:
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 02-07-2020 в 09:07:

Дядя Миша
А кто?

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


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

FiEctro
Блендер весов не просирает, разбирайся.


Отправлено FiEctro 02-07-2020 в 10:16:

nemyax


Порядок модификаторов если что, ничего не меняет.

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


Отправлено nemyax 02-07-2020 в 10:41:

А, ну тут понятно, что развесовку редактировать надо. Пока модификатор не применённый, оно динамически субдивайдит деформируемую сетку. А так ты замораживаешь те веса, которые он втупую поделил между вершинами в одной позе.


Отправлено FiEctro 02-07-2020 в 10:55:

nemyax
А говорил, не просирает. Кстати, не знаешь случаем, можно ли в блендере как то размыть сразу все веса для кости, без кисточки?

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


Отправлено nemyax 02-07-2020 в 11:23:

Цитата:
FiEctro писал:
А говорил, не просирает.

Ну так делит же по-братски =)

Цитата:
FiEctro писал:
можно ли в блендере как то размыть сразу все веса для кости, без кисточки?

Не видел. Можешь попробовать настроить капсулы и применить веса с них, если такое подойдёт.


Отправлено Дядя Миша 02-07-2020 в 11:43:

А разве веса задаются не настройкой радиуса от положения кости?
Ну типо, всё что попало в радиус будет учитывать положение кости затухая с квадратом расстояния. Я даже одно время думал авто-развесовку сделать на подобном принципе, но потом меня что-то отвлекло и я забыл.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 02-07-2020 в 11:48:

Дядя Миша
Это один из способов. Другой — явное назначение весов раскраской. В блендере их можно комбинировать как хош и есть ещё дополнительные методы контроля весов.


Отправлено FiEctro 02-07-2020 в 12:11:

Цитата:
nemyax писал:
Не видел. Можешь попробовать настроить капсулы и применить веса с них, если такое подойдёт.


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

Цитата:
nemyax писал:
Другой — явное назначение весов раскраской.


И это сильно сбивает с толку, поскольку визуально эта красилка не показывает нормализированные веса, по факту видишь что к кости эти вертексы привязаны жестко, а на деле веса на других костях вносят куда больший вклад. Потому приходится некоторые места вручную назначать в едит моде, что конечно ещё как то канало для лоуполи, но после такой жесткой подставы с сабдивайдом, даже не знаю.

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

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


Отправлено ncuxonaT 02-07-2020 в 12:26:

Цитата:
FiEctro писал:
развесовка в блендере даже несмотря на красилку, осталась где то там в нулевых и 90х.

а где она лучше и чем?


Отправлено FiEctro 02-07-2020 в 12:29:

ncuxonaT
У Автодеска, хотя в целом принцип конечно везде один и тот же, но у Автодеска инструментов больше.

Цитата:
Дядя Миша писал:
А разве веса задаются не настройкой радиуса от положения кости?
Ну типо, всё что попало в радиус будет учитывать положение кости затухая с квадратом расстояния. Я даже одно время думал авто-развесовку сделать на подобном принципе, но потом меня что-то отвлекло и я забыл.


Это годится разве что для каких то совсем элементарных случаев, как и с эвенлопами, а вот для тех же персонажей - тяжелый ручной труд, берешь каждый вертекс и сидишь прописываешь ему веса НЕДЕЛЯМИ. Не всегда конечно, но и такое бывает . Потом заходишь куда нибудь в какую то CG группу, и смотришь как люди радуются бед не знают, хвастаются своими солид модельками - глупцы

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


Отправлено nemyax 02-07-2020 в 13:04:

Цитата:
FiEctro писал:
развесовка в блендере даже несмотря на красилку, осталась где то там в нулевых и 90х

Ну можно в майе заполнять эксель-табличку, как в 80-х.

Добавлено 02-07-2020 в 16:04:

Цитата:
FiEctro писал:
визуально эта красилка не показывает нормализированные веса

Auto Normalize жеж есть.

Слово SMD из темы совсем выцвело =)


Отправлено Дядя Миша 02-07-2020 в 20:34:

Я так понимаю, хорошего редактора до сих пор нету или просто у ково-то руки кревые?

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 02-07-2020 в 21:04:

Цитата:
Дядя Миша писал:
Я так понимаю, хорошего редактора до сих пор нету или просто у ково-то руки кревые?


И то и то. Редакторы все хорошие, но имеют свою специфику и подводные камни. А когда тебе нужно заставить модель правильно работать ещё и в игровом движке, это вообще взрыв мозга. Самое хреновое что нет никаких стандартов.

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


Отправлено nemyax 02-07-2020 в 21:19:

Цитата:
FiEctro писал:
Самое хреновое что нет никаких стандартов.

Потому и надёжнее всего, когда система анимации в движке — простой проигрыватель печёных кадров. Наиболее предсказуемый результат. А остальное уже слишком зависит от конкретной реализации.


Отправлено Дядя Миша 02-07-2020 в 21:33:

Тут корочи неразрешимое противоречие. Общий редактор наверняка обладает мощными средствами редактирования, но не заточен ни под один из движков. Плагины позволяют экспортировать, а вот редактировать некоторые движко-зависимые вещи визуально - вряд ли.
И наоборот - редактор идущий в комплекте с движком может быть дико неудобен в плане обычных операций, т.к. у тех, кто его писал в любом случае опыта меньше чем у разрабов майи или автодеска.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 02-07-2020 в 22:59:

Цитата:
Дядя Миша писал:
Тут корочи неразрешимое противоречие. Общий редактор наверняка обладает мощными средствами редактирования, но не заточен ни под один из движков. Плагины позволяют экспортировать, а вот редактировать некоторые движко-зависимые вещи визуально - вряд ли.
И наоборот - редактор идущий в комплекте с движком может быть дико неудобен в плане обычных операций, т.к. у тех, кто его писал в любом случае опыта меньше чем у разрабов майи или автодеска.


Движок заточен под оси Майя как тут сказали, почему именно в Майя такие оси, для меня загадка, в том же 3д максе от того же Автодеска, Z вертикальная. Движкозависимые вещи редактируются в собственной IDE, где ты можешь самостоятельно дописать констрейнты из 3д редактора (если тебе это надо), проблема именно в матане, как грачёво это всё обрабатывается и конвертируется из одной системы координат в другую.

Бесит больше всего физика, я так понимаю игровые движки экономят на тактах для просчёта физики, из-за чего сильно падает точность, отсюда различные поломки, особенно с углами. В 3д редакторах же я так понимаю точность просчёта трансформаций и физики в разы выше. В целом в юнити например можно эти вещи регулировать, но всеравно высокого качества не добиться.

Цитата:
nemyax писал:
Потому и надёжнее всего, когда система анимации в движке — простой проигрыватель печёных кадров. Наиболее предсказуемый результат. А остальное уже слишком зависит от конкретной реализации.


Это да, только выглядеть оно как говно будет, если объект интерактивный.

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


Отправлено nemyax 02-07-2020 в 23:11:

В майе к слову уже лет 10 как есть возможность переключить up axis на Z.


Отправлено FiEctro 02-07-2020 в 23:14:

nemyax
Я почти уверен что им Автодеск откаты давал, у них стиль работы такой
Щас они Майю ещё активнее продвигают и зачем то питон в придачу.

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


Отправлено nemyax 02-07-2020 в 23:15:

Цитата:
FiEctro писал:
почему именно в Майя такие оси, для меня загадка, в том же 3д максе от того же Автодеска, Z вертикальная

Они в автодеск пришли умирать. А так-то они из разных мест родом.
Майя: Alias | Wavefront -> Alias -> Autodesk.
Макс: Kinetix -> discreet -> Autodesk.


Отправлено Дядя Миша 03-07-2020 в 08:36:

Цитата:
FiEctro писал:
в том же 3д максе от того же Автодеска, Z вертикальная

Надо не забывать, что Кармак в своё время оказывал влияние почти на всю индустрию, его слово весило больше, чем комитета ARB вначале.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 03-07-2020 в 08:46:

Ну вот теперь и имеем такой зоопарк

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


Отправлено nemyax 03-07-2020 в 08:59:

Ось Z в небо — CAD-ошная традиция, где первичен чертёж на плоскости XY, а Z его расширяет. Ну как у Кармака по сути дела.
А ось Y киношники придумали наверх. Видимо оттого, что для дваде-аниматора такая проекция естественнее.


Отправлено FiEctro 03-07-2020 в 09:20:

nemyax
2д аниматорам вообще пофиг на оси, как 2д кадр не крути, перспектива будет той же.

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


Отправлено nemyax 03-07-2020 в 09:28:

Им пофигу до тех пор, пока их не сажают за софт с осями. В софте для дваде-анимации Y будет именно в небо. А теперь добавим глубину.


Отправлено Дядя Миша 03-07-2020 в 09:36:

Насчёт осей у меня вот какое соображение. Графики всю жизнь чертили в двухмерном пространстве XY. Следовательно X у нас слева направо, Y снизу вверх. Добавили еще одну ось - фглупь. Поэтому Z-буффер так и называется, что он вглубину, которую на бумажке не изобразить.
Кармак, рассудил, что это как-то не очень удобно и повернул оси на 90 градусов раз ( Z оказался снизу-вверх). И повернул два, x оказался вперёд-назад. Вот эти два волшебных поворота и являются камнем преткновения. Потому что их легко симулировать простой перестановкой компонент вектора, но это далеко не всегда корректно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 03-07-2020 в 09:47:

nemyax
И какой 2д софт имеет явное название осей?

Дядя Миша
У математиков вроде Z всегда была вертикальной, разве нет? Хотя в учебниках так же встречаются оба варианта.

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


Отправлено nemyax 03-07-2020 в 10:22:

Цитата:
FiEctro писал:
И какой 2д софт имеет явное название осей?

Та любой хоть с какими-нибудь элементами векторной графики. Это только для чистого флипбука типа Plastic Animation Paper они ни к чему.

Добавлено 03-07-2020 в 13:22:

Всё просто же: либо ты пляшешь от вида сверху (тогда Z-up), либо от вида сбоку (тогда Y-up).


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

Всеравно удручает что сам софт не даёт переворачивать эти оси, ни одного движка не знаю.

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


Отправлено nemyax 03-07-2020 в 11:29:

Оси перевернуть не проблема, только ворочать надо как положено матричкой, а не перестановкой.


Отправлено Дядя Миша 03-07-2020 в 11:50:

Цитата:
nemyax писал:
только ворочать надо как положено матричкой, а не перестановкой.

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 03-07-2020 в 11:58:

Дядя Миша
Можно ведь эти долбаные перестановки тоже представить в виде цепочки матриц, а там уж дело техники, не?


Отправлено Дядя Миша 03-07-2020 в 12:10:

nemyax там была моделька, которую сперва сохранили в ASE, загрузили в q3map2, скомпилили в BSP и им же обратно экспортнули в ase.
Понять что и сколько раз там переставлялось, учитывая перестановки в самом ase уже почти невозможно. Заметьте, я не говорю что она корректно выглядит, задача в том, чтобы воспроизвести баги для совместимости.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 03-07-2020 в 12:45:

>> Начинаешь инвертировать оси - её еще в какую-то сторону выворачивает, корочи я устал с этим бодаться.

Вот и у меня таже ситуация, в редакторе выворачивает в одну сторону, а в движке в другую.

Вот наверное кватернионы эти и вылазят. Если принять во внимание то что ещё каждая кость является дочерней и все они имеют свою систему координат, то бошка пухнет от попыток представить что вообще там происходит. Придётся ставить эксперименты и выявлять для себя наиболее стабильные ориентации костей по осям.

Дядя Миша
По твоему мнению, в идеале как бы это должно было правильно работать?

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


Отправлено Дядя Миша 03-07-2020 в 13:20:

Может записывать в формат порядок следования координат? Я такого вроде бы нигде не встречал. Ну вот писать, что тут у нас XYZ или YZX. Чтобы сразу понятно было.

__________________
My Projects: download page

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

Цитата:

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


Отправлено thambs 05-07-2020 в 18:33:

Цитата:
Дядя Миша писал:
Значит их можно задать в самих материалах и пусть их учитывает компилятор света. Логично? На мой взгляд нет вообще особой необходимости в этих кастомных группах, можно сгладить все нормали разом под какой-то угол - обычно этого достаточно.

В общем случае нельзя. Для бмоделей это ещё более-менее работает, а для сложных мешей это неправильно.

__________________
http://www.moddb.com/mods/monorail-quest


Отправлено ncuxonaT 05-07-2020 в 23:28:

Группы сглаживания вообще не имеют отношения к материалам. Они сделаны для удобства редактирования, грубо говоря, чтобы иметь возможность делать острые грани, не разбивая при этом ребра.


Отправлено FiEctro 05-07-2020 в 23:46:

Цитата:
Дядя Миша писал:
Может записывать в формат порядок следования координат? Я такого вроде бы нигде не встречал. Ну вот писать, что тут у нас XYZ или YZX. Чтобы сразу понятно было.


Оказывается FBX такое умеет, правда в контексте юнити это не сильно спасает ситуацию.

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


Временная зона GMT. Текущее время 22:09.
Показать все 100 сообщений этой темы на одной странице

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