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: