【发布时间】:2020-10-30 22:53:26
【问题描述】:
我正在编写自己的 3D 渲染引擎。根据一般知识,我目前使用浮点值作为我的操作基础。然而,对于旋转矩阵,我需要 java.lang.Math 库中的三角函数,它使用双精度值作为输入和输出。
我想知道您是否可以使用浮点值实现三角函数的优化版本,从而提高性能。
【问题讨论】:
-
在内部,您应该使用双精度值。为什么要使用 float 而不是 double?
-
虽然在性能方面,计算似乎不受任何选择的影响,浮点数节省 50% 的存储空间,因为它们是 32 位而不是 64 位。
-
是的,它们节省了 50% 的存储空间。您期望有多少 100 的百万分?双精度比浮点数更好。是的,我有时会在 Blender 上制作 3d 图形。
-
嗯,虽然这是真的,但我认为对于 3D 游戏引擎来说,6dps 的精度已经足够了。我的意思是额外的小数位对您有什么帮助?
-
您有没有打算旋转或缩放对象?相信我,您需要免费获得的所有精度。
标签: java math optimization floating-point trigonometry