2022/7/29(金)
引き続きOpenXR開発。コントローラ姿勢の生データには多少のノイズがある(気がする)ので時間平均のようなことをしようと思ったのだが、クォータニオンをどうやって扱えばいいのか分からないでいた。単純に成分ごとの平均をとっても単位クォータニオンにはならないし、元の値に近い回転を表すクォータニオンには必ずしもなってくれないのだ。
色々試してみたがGLMにはslerpという便利な関数があったため、これで少なくとも2点間の補間は正しくできることが分かった。球面上を補間するような計算ができるらしい。
数学的に正しいと言えるやり方かどうか分からないが、平均したいクォータニオン値がA,B,C,Dとあった場合にまずAとBを1:1で内分、その点とCを1:2で内分、その点とDを1:3で内分…といったやり方でそれっぽい感じにできた。
動画のデコード処理に興味がわいたので、参考になりそうな資料。
https://codezine.jp/article/detail/2444
ずっと家でPCに張り付いている。多分あまり健康によろしくない。筋トレもしていないし。
Categories: 未分類