为什么投影矩阵必须加倍?

时间:2011-10-07 13:33:33

标签: opengl matrix double transform projection

这是问题所在,我有一个ModelViewProjection(MVP)矩阵,它是通过将ModelView与Projection相乘而制成的;我已经制作了一些与glOrtho和gluPerspective完全相同的函数来摆脱OpenGL弃用堆栈功能。我的函数返回double值。我的着色器使用modelviewprojection作为float。对于透视矩阵,是否有必要使用double进行操作,因为最终浮动在MVP中?矩阵由float [16]或double [16]组成;如果在double中没有显着的好处,那么我会在投影投影矩阵double上节省一些cpu资源,以便在进入着色器之前浮动某处。

2 个答案:

答案 0 :(得分:2)

你可以坚持使用float

典型的DX10 / GL3.x级硬件(例如我的Geforce 9800GT)根本不支持双精度浮点数学运算。早期的DX9级ATI卡甚至没有在硬件中正确支持单精度浮点数学(如果我没记错的话,它们支持类似fp24的东西)。

尽管如此,投影在任何此类卡上的各方面都可以正常工作。这表明在这种情况下并不需要额外的精度。

答案 1 :(得分:1)

您可以使用其中之一或两者,出于性能原因,人们通常只使用浮动进行图形处理。

相关问题