2015-04-04 30 views
2

低于10位浮点数有什么问题?为什么我们没有8位浮点数?我可以想象,如果glfloat用于颜色,它会如何影响结果,但我无法想象它是如何影响顶点的。我们放大物体时是否会出现问题?为什么我们不能在OpenGL和DirectX中使用更小的浮点类型?

是,GPU把这么多的值作为32个值,甚至是OpenGL的Redbook建议我们用半漂浮只要有可能,但我怎么能知道我的精度下限?

回答

4

我们为什么不有8位浮点?我可以想象,如果glfloat用于颜色,它会如何影响结果,但我无法想象它是如何影响顶点的。我们放大物体时是否会出现问题?

嗯,是的。鉴于即使今天的低分辨率显示器在一个方向上至少有1024个像素,您也需要至少10位的显着的数字来准确地表示屏幕上的位置。因此,假设整个转换链在没有精度损失的情况下执行(这不是明显的情况),这意味着您需要原始数据中至少有11位有效数字。

在浮点值,尾数是,是什么给了显著数字。在半精度浮点数(总共16位)中,尾数为11位长,这是用于在屏幕空间中表示顶点所需的精度最小的量,而不需要在低分辨率屏幕上显示变换操作舍入伪像。

8位将只是太少精度成为有用的东西。

相关问题