glm::transpose(glm::inverse(model))
а как передаёшь её в шейдер?
Ну юниформой
а в C++ как это выглядит?
нормаль должна с вершиной идти
а нигде layout(row_major) uniform; не стоит?
тут имелось ввиду матрица нормали?
это normal matrix
я всё равно не понимаю почему оно в per model данных, может конечно это какой-то трюк и он реально имеет смысл
а у тебя что, нормали во вьюспейсе?
Ну вообще да, странно )
нормали должны к вершине привязываться, т.е. в вершинный буфер класться, а не в юниформный
это не нормали это их матрица
и зачем она?
ЧТОБЫ ИХ ТРАНСФОРМИТЬ АХАХАХ
а зачем они нужны в противном случае?
а от модели трансформ не проканает?
Структура так, подготовка (ubo.model * fragment->GetLocalMatrix(), потому что у модели есть базовый рут, и относительно этого рута уже идут кусочки модели), поредача в шейдер
надеюсь, ты не забыл #pragma pack?
ФУ, брось каку!!!!!!!!
Тут вроде все ок
Ну у gltf идеология такая, что там вся сдеца это набор нод. Есть рутовая нода, и из неё строится сцена. Когда экспортируешь модель в gltf, он делит её на фрагменты, и каждый фрагмент имеет свою матрицу трансформации
венгерская нотация
а зачем тебе глтф?
Понравилась идеология
вот кстати это причина писать шейдеры на том же языке что и рендер
а так разве можно?
в rust все можно ;3
тут недавно про это говорили, в свете раста
typedef float __attribute__((ext_vector_type(3))) vec3;
Обсуждают сегодня