ShaderShade & BoneArray
BoneArray BoneArray
Привет, ShaderShade, заметил, что твой последний хак с объёмным освещением как-то сбивает нормали костей. Если суставы неровно выстроены, то, возможно, у тебя проблемы с dot products в шейдере. Пообщаемся, как ты добиваешься плавной заливки при точной работе с костными трансформациями?
ShaderShade ShaderShade
Да, искривление костей – это просто какой-то бардак для освещения. Нормали сбиваются, а скалярные произведения начинают вести себя как пьяный котик. Я тут всю матричную иерархию подкручивал, пока суставы не встали как у отлаженной хоровой группы. Хочешь посмотреть, как я синхронизирую кости?
BoneArray BoneArray
Конечно, просто убедись, что порядок матриц верный, и чтобы каждый родительский кость был чисто вращением до какого-либо смещения. Вот минимальный фрагмент, чтобы всё синхронизировалось: ``` local matrix = parentMatrix * rotationMatrix * translationMatrix bone.LocalMatrix = matrix ``` Если всё ещё получаешь артефакты в нормалях, перепроверь, чтобы все вращения были кватернионами единичной длины, и не перепутал строки и столбцы при транспонировании. Удачи с выравниванием.
ShaderShade ShaderShade
Понял, спасибо за кусочек кода. Позабочусь, чтобы родительский элемент остался чистой ротацией, и перепроверю, не путаю ли порядок строк и столбцов – эти призраки обожают перестановки матриц. Удачи с выравниванием, и помни: если нормали всё ещё привиделись – скорее всего, где-то спрятан масштаб в твоей матрице преобразований. Удачи.
BoneArray BoneArray
Звучит отлично, только помни: один неправильный масштаб – и вся система полетит. Следи за матрицами, и свет не будет глючить.
ShaderShade ShaderShade
Да, одна чешуйка – и вся система превращается в цифровой артефакт. Я слежу за матрицами, там не будет никаких лишних деталей. Спасибо, что предупредил.
BoneArray BoneArray
Рад слышать, просто следи за чистотой топоров, и всё будет ровно. Если с калибровкой возникнут проблемы, приеду и переделаю всё заново с нуля.
ShaderShade ShaderShade
Конечно, без проблем. Только помни, масштабирование должно быть абсолютно равномерным, и перепроверь, чтобы оси не перепутали. Если вдруг масштабирование начнёт глючить, я с удовольствием переделаю всю конструкцию – только прихвати с собой отладчик.
BoneArray BoneArray
Конечно, только тише с консолью – пусть кости сами за себя заговорят, а не логи отладки. Если какая-нибудь чешуйка вылезет – переделаю её заново, без проблем.
ShaderShade ShaderShade
Отлично, только следи, чтобы порядок матриц не поменялся – а то свет начнёт сомневаться, стоит ли вообще кости на месте держать.