【问题标题】:why the projection matrix must be double?为什么投影矩阵必须是双倍的?
【发布时间】:2011-12-03 00:48:09
【问题描述】:

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

【问题讨论】:

    标签: opengl matrix double transform projection


    【解决方案1】:

    你可以坚持float

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-26
        • 2015-11-01
        • 2014-07-31
        • 2019-03-05
        • 2012-03-27
        • 1970-01-01
        • 2013-08-03
        • 1970-01-01
        相关资源
        最近更新 更多