如何推断四元数?

时间:2012-12-12 09:14:13

标签: 3d rotation quaternions

假设我有一个对象,其方向由四元数q1,q2,q3,... qn在服务器端的时间1,2,3,... n给出。 我想预测客户端对象的方向,这样我就可以保持虚拟世界在两边都是一致的。

  • 我将q1和q2从服务器发送到客户端。
  • 在服务器端我计算dq = q1'* q2;
  • 然后在服务器端,我通过做q2 * dq;
  • 来预测q3预测
  • 然后在服务器端我检查q3 orignal和q3Predicted之间的错误,如果它的大,我发送一个新的dq,即d1 = q2'* q3。

我的两个问题是:

  1. 我应该如何计算dq是 - q1'* q2还是q2 * q1'?
  2. 与原始四元数相比,如何判断预测误差是否超过10%?

1 个答案:

答案 0 :(得分:0)

  

在服务器端。我想在客户端预测它们。

你究竟想做什么?

对我来说,这听起来像是在尝试在GPU上实现动画系统并尝试在CPU上跟踪它。无论何时你需要跟踪或重新进行一些计算,你的设计都会有一些缺陷。如果你在CPU上进行计算,为什么要花费宝贵的周期在GPU上进行相同的计算呢?

只需在CPU上计算并将其放入制服即可。性能也会更好,因为GPU旨在并行处理大量数据。插入一大堆标量会导致过多的开销。

如果我们谈论的是带游戏服务器的联网游戏,你应该看看所谓的“卡尔曼过滤器”