我目前正在为我们的工作室编写一个基于OpenGL的跨平台小型2D游戏引擎。当我研究使用哪种2D Vector类时,偶然发现了三种不同的设计范例:
浮动和按价值致电,就像在Gamasutra的这篇文章中一样。似乎速度很快,但精度却很低(另请参见Thread)。专业版:快速,便携式且与大多数库兼容。
双重和按引用致电。如果我正确理解了以上文章,我也可以使用2个双精度变量而不是4个浮点数。根据上述线程double仍然比float慢。
double和float的模板:广泛流行的书籍“ Game Engine Architecture ”使用模板,使得可以根据需要使用float和double。明显的缺点是代码膨胀。另外,我怀疑是否可以在基本不编写两个类的情况下优化代码。
我希望了解您在内部引擎中使用的解决方案,以及例如流行游戏引擎的精确度,因此我可以决定在引擎中实施哪种解决方案。目前,我正在考虑仅使用float精度并使用它。