Войти
ПрограммированиеФорумОбщее

исходники кватернионов и математики в разных движках (2 стр)

Страницы: 1 2 3 Следующая »
#15
15:25, 12 фев 2023
+ Doom3
#16
17:49, 12 фев 2023

Зачем вообще этот тред?

Если я пользуюсь движком А, то мне пофиг, как это сделано в движке Б.
А может я даже вообще не знаю, что такое кватернион.

А если я пишу свой велосипед, я скорее всего справлюсь с вариациями поисковых запросов "c++ quaternion source".
Написал бы уж тогда статью как гуглить - практической пользы было бы больше.

#17
18:01, 12 фев 2023

Der FlugSimulator
> Если я пользуюсь движком А, то мне пофиг, как это сделано в движке Б.
Так здесь движкописатели собрались, а ты продолжай пользоваться своим движком)

#18
18:46, 12 фев 2023

Der FlugSimulator
> Зачем вообще этот тред?
>
> Если я пользуюсь движком А, то мне пофиг, как это сделано в движке Б.
> А может я даже вообще не знаю, что такое кватернион.
Да не обращай внимания, людям интересно - пускай изучают. Вдруг родится универсальна либа или даже в стандарт для плюсов включат )

#19
19:56, 12 фев 2023

stratego
> Storm-Engine, движок Корсаров.
OMG:

inline Quaternion &Quaternion::operator-()
{
    x = -x;
    y = -y;
    z = -z;
    w = -w;
    return *this;
}

Употребление −q внезапно портит q.

#20
20:44, 12 фев 2023

}:+()___ [Smile]
> Употребление −q внезапно портит q.
Это пятимерная геометрия, просто не до росли всякие недоматематики )))

#21
21:22, 12 фев 2023

}:+()___ [Smile]
> inline Quaternion &Quaternion::operator-()
> {
> x = -x;
> y = -y;
> z = -z;
> w = -w;
> return *this;
> }
> Употребление −q внезапно портит q.
:DDDD
правда, противо-естественная операция над кватернионом.

#22
(Правка: 21:27) 21:22, 12 фев 2023

}:+()___ [Smile]
> Употребление −q внезапно портит q.
Та же в Думе сделано...

ID_INLINE idQuat idQuat::operator-() const {
  return idQuat( -x, -y, -z, -w );
}


А в Иррлихте, не так

// Inverts this quaternion
inline quaternion& quaternion::makeInverse()
{
  X = -X; Y = -Y; Z = -Z;
  return *this;
}

И в Огре

 Quaternion Quaternion::UnitInverse () const
    {
        // assert:  'this' is unit length
        return Quaternion(w,-x,-y,-z);
    }
#23
21:40, 12 фев 2023

В Urho3d надо было еще h-файл добавить, там намного интереснее, есть поддержка SSE

   /// Return conjugate.
    Quaternion Conjugate() const
    {
#ifdef URHO3D_SSE
        __m128 q = _mm_loadu_ps(&w_);
        return Quaternion(_mm_xor_ps(q, _mm_castsi128_ps(_mm_set_epi32((int)0x80000000UL, (int)0x80000000UL, (int)0x80000000UL, 0))));
#else
        return Quaternion(w_, -x_, -y_, -z_);
#endif
    }

И тут снова всё верно, открытые движки выигрывают, по сравнению с изначально закрытыми ))

#24
10:32, 13 фев 2023

stratego
Разве в думе не верстают новый кват?

#25
11:04, 13 фев 2023

stratego
Всегда интересовал вопрос насколько ссе даёт буст в движках а не число дробилках

#26
12:24, 13 фев 2023

innuendo
> stratego
> Разве в думе не верстают новый кват?
И что это меняет?

innuendo
> Всегда интересовал вопрос насколько ссе даёт буст в движках а не число
> дробилках
Меня это тоже интересует )) В теории иногда может дать хороший прирост, но как часто это иногда бывает?

#27
13:03, 13 фев 2023

stratego
Не меняется результат шо е просто обратный вектор но не должно менять исходное значение

#28
13:35, 13 фев 2023

stratego
> Меня это тоже интересует )) В теории иногда может дать хороший прирост, но как
> часто это иногда бывает?
юнитишную систему секторного куллинга (ассет) перенес на симд и нативный, ну и немного подкорректировал. стало шустрее в разы).
если системы частиц на цпу ситаются, думаю будет разница. а так, по моему никакой разницы нет.

#29
15:55, 13 фев 2023

innuendo
> Не меняется результат шо е просто обратный вектор но не должно менять исходное
> значение
Да я тупанул ((

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумОбщее