Sidebar

Paranoia 2 SDK

ncuxonaT

Well-known member
05.05.13
1 221
51
48
Ну скинь исходники, объясни, как студию настроить, я сам и проверю
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Нет ножек - нет мультиков :)

Post automatically merged:

Чтобы раз и навсегда закрыть этот вопрос. Смотрим сорцы компилятора моделей первохалфы:
Код:
// move vertex position to object space.
VectorSubtract( p.org, bonefixup[p.bone].worldorg, tmp );
VectorTransform(tmp, bonefixup[p.bone].im, p.org );

// move normal to object space.
VectorCopy( normal.org, tmp );
VectorTransform(tmp, bonefixup[p.bone].im, normal.org );
VectorNormalize( normal.org );
Еще на этапе парсинга SMD и вертекс и нормаль переносятся в локальное пространство кости. Отсюда и берутся эти "обломки" - каждый обломок привязан к своей кости. Т.е. они уже находятся не в абсолютном пространстве и модель расчленена. А локальная матрица кости в модель не пишется, чтобы избежать лишних трансформаций при рендеринге. Идёт предумножение в компиляторе.
В хл2 этой порнографии нет. Там модель записывается в неизменном виде, а те самые локальные матрицы костей сохраняются в структуру mstudiobone_t, в результате чего появляется возможность построить TBN для целостной модели и избежать артефактов на тех границах где кости делят меш на кусочки.
Т.е. единственный выход из положения - смена\доработка формата модели.

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

ncuxonaT

Well-known member
05.05.13
1 221
51
48
Так разве при скиннинге вертекс и нормаль не переносятся обратно в абсолютное пространство?
Где брать сорцы модельвьювера?
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Сорцы модельвьювера как ни странно - на сайте разработчика: http://www.chumba.ch/chumbalum-soft//hlmv/index.html

Post automatically merged:

И еще немного информации по теме. То что модель режется на обломки, которые сбиваются в кучу - никоим образом не мешает правильно построить TBN, поскольку он не опирается на позицию, а только на направление. Но! Некоторые кости не только двигают, но еще и вращают кусок меша, в этих местах и возникают артефакты. Я решил эту проблему при помощи постоянно включенного глобального сглаживания, но только отчасти. Любая попытка построить TBN для якобы целой модели, приведт просто к двойной прямо конкатенциии нормалей, их в итоге развернет дополнительно еще на 90 градусов, т.е. некоторые части скорее всего будут полностью черными или со странным затенением.
 
Останнє редагування:

KiQ

Member
12.07.10
397
2
18
так может таки формат моделей поменять?
 

ncuxonaT

Well-known member
05.05.13
1 221
51
48
Ну вот построение вектора касательной для модели в произвольной позе работает нормально.
 

Вкладення

Останнє редагування:
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Ну выкладывай, так сказать, рабочий пример. Я надеюсь там уже и бамп есть и анимации работают, так? Или дальше отрисовки TBN дело не пошло?
 

ncuxonaT

Well-known member
05.05.13
1 221
51
48
Дальше отрисовки T и N дело не пошло. А дальше и не надо идти, потому что в Паранойе проблема в T и В.
 
Останнє редагування:
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Пока ты не доделаешь до момента с работающим бампом от виртуального источника и с возможностью переключения построения TBN для обоих случаев, говорить не о чем. Я выше написал почему.
 

ncuxonaT

Well-known member
05.05.13
1 221
51
48
Может мне еще свой движок написать?
Для каких обоих случаев?
Выше ерунду какую-то написал. Какую-то конкатенцию нормалей выдумал. Нормали вообще трогать не надо, они и так нормально работают.
 

KiQ

Member
12.07.10
397
2
18
2 ncuxonaT:
в чем смысл твоих скринов-то?
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Значит так, объясняю крайний раз для особо одаренных.
ты при построении "случайной" позы нормали умножал на матрицу костей этой случайно позы? Умножал. Т.е. у тебя они уже в пространстве модели, а не в пространстве кости. Теперь когда ты их умножишь еще раз на матрицу кости, но уже при отрисовке, куда повернется нормаль? Причём все твои упражениня на первый взгляд могут выглядеть почти правильно для тех случаев, где кость не вращает меш, а только двигает его. Но в конечном итоге получится по принципу "уши приклеили - хвост отвалился".

Post automatically merged:

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

Post automatically merged:

На тебе две картинки. Первая - TBN построен для вертексов из позы. Вторая - текущий вариант. Они обе неправильные.
 

Вкладення

Останнє редагування:

ncuxonaT

Well-known member
05.05.13
1 221
51
48
2 KiQ:
в том, что если строить TBN не для фарша, а для модели в произвольной позе из анимации, то не будет артефактов.

2 Дядя Миша:
Т.е. у тебя они уже в пространстве модели, а не в пространстве кости.
А после расчетов в пространстве модели я умножаю TB на обратную матрицу кости, и вуаля, они в локальном пространстве кости.
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Диффузко.

Post automatically merged:

А после расчетов в пространстве модели я умножаю TB на обратную матрицу кости
Эххх. Локальная матрица кости не покидает пределов компилятора :) Тебе её неоткуда взять.
 

Вкладення

Останнє редагування:

ncuxonaT

Well-known member
05.05.13
1 221
51
48
2 Дядя Миша:
ты в локальное пространство кости переводил TB?
Какая еще локальная матрица?
Я ставлю модель в позу, умножив вершины и нормали на матрицы костей, рассчитываю TB, умножаю их на обратные матрицы.
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
На тебе дллку - играйся сам.

Post automatically merged:

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

Вкладення

Останнє редагування:

ncuxonaT

Well-known member
05.05.13
1 221
51
48
.

Post automatically merged:

Как ты правильный бамп от неправильного отличаешь?


Post automatically merged:

Переделал скрин с Полиной. А то в шейдере фонаря еще был мой перерасчет бинормали.
 

Вкладення

Останнє редагування:
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Как ты правильный бамп от неправильного отличаешь?
На воротник посмотри - весь микрорельеф исчез. Я тут еще чуть-чуть побаловался с вращением бинормали и тангенты. Любые попытки просто приводят TBN к исходному состоянию.

Post automatically merged:

2 ncuxonaT: не выкладывай скрины "справа\слева". Выкладывай два скрина, чтобы их можно было щелкать - так мозгу проще увидеть отличия.
 
Останнє редагування:

Game Server

Доноры Красавчики

Користувачі онлайн

Немає користувачів онлайн.