Войти
ПрограммированиеФорумГрафика

Зачем нам эти жирные матрицы? (3 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#30
20:35, 21 июня 2016

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


#31
20:39, 21 июня 2016

ronniko
> Видяхи заточены онли матрицы.

Ерунда.

> Если кватернион передал в шейдер, то кватернион надо еще перевести в матрицу.

Зачем в матрицу переводить? Надо и считать в кватернионах.

> Что будет медленее.

Ну если кватернион в матрицу переводить, то конечно.

Femidko
> Дискуссия ведется в таком ключе, как-будто видеокарты аппаратно поддерживают математику кватернионов.

Нет никакой спец математики для кватернионов или матриц. Там обычные операции типа дот продуктов, сложений, умножений и т.п.

MrShoor
> Будет таким же (в пределах погрешности floating point)

Ты видимо про lerp для кватернионов говоришь. Поидее да, разницы тогда не будет, но если кватерниону делать slerp, то разница будет.

#32
20:45, 21 июня 2016

Executor
В матрице уже сидит произвидение от cos и sin. Когда матрицу дали шейдеру.
А кватернион умнож на VertecsPos. Че получишь, если не сделаешь костыль в шейдере для этого ?
А этот костыль и даст тормоза.
Так что мат и рицы :)

#33
20:48, 21 июня 2016

Executor
> Поидее да, разницы тогда не будет, но если кватерниону делать slerp, то разница будет.
А если матрицу отнормировать после lerp'а? По идее должно быть что-то более похожее на slerp?

#34
20:55, 21 июня 2016

ronniko
> В матрице уже сидит произвидение от cos и sin. Когда матрицу дали шейдеру.
> А кватернион умнож на VertecsPos. Че получишь, если не сделаешь костыль в
> шейдере для этого ?
> А этот костыль и даст тормоза.
> Так что мат и рицы :)

Какие ещё синусы и косинусы?
Два кросс продукта и два mad'а. Против трёх/четырёх (3x4 и 4x4 соответственно) dp4 с матрицами.

#35
20:57, 21 июня 2016
Два кросс продукта и два mad'а.

Ага !
Против одного mul, который заточен в шейдерах версии 5.0 на ура !
#36
20:58, 21 июня 2016

ronniko
> Ага !
> Против одного mul, который заточен в шейдерах версии 5.0 на ура !

Ты про какой mul?

#37
20:59, 21 июня 2016

HLSL
output.Pos = mul( input.Pos, World );

Или output.Pos = mul( input.Pos, WorldViewProjection );

#38
21:00, 21 июня 2016

ronniko
Что за чудо mul который умножает матрицу на вектор в одну инструкцию? Пруф давай.

#39
21:01, 21 июня 2016

Ну на счет в одну инструкцию не скажу, а вот то что быстрее чем два кросс продукта и два mad'а.
Это точно.

#40
21:19, 21 июня 2016

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

#41
21:27, 21 июня 2016

Ну я и не настаиваю.
Можно юзать и то и то. Для разных ситуаций.
Просто сказал что под матрицы видяха лучше заточена.

Вот если бы вендоры кватернионные команды бы втулили в GPU, то было бы хороше.

#42
22:53, 21 июня 2016

не понятно только почему мощнее множества кватернионов быть ничего не может

#43
23:56, 21 июня 2016

Executor
> Ты видимо про lerp для кватернионов говоришь. Поидее да, разницы тогда не
> будет, но если кватерниону делать slerp, то разница будет.
Я ни про lerp, ни про slerp не говорю. Я говорю про поворот через домножение.

Quat RotatationStep  = Quat(Vec(Dir), Angle);
Rotation = Rotation * RotatationStep;
и
Mat3 RotationStep = Mat3(Vec(Dir), Angle);
Rotation = Rotation * RotationStep;
#44
6:30, 22 июня 2016

Слушайте, откуда вообще у вас вот это "видяхи под матрицы заточены"? Уж десять лет как расточены, с тех пор как запилили USA, и GPU скалярными стали. Или вы этот момент провафлили?

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.