在视口转换过程中,OpenGL如何舍入浮点数?

时间:2011-08-30 12:54:39

标签: opengl

这可能听起来微不足道,但它给我带来了一些问题。我无法找到任何关于此的文档。

OpenGL如何执行视口转换?在某些时候,标准化的设备坐标变为视口坐标,我认为它仍然以浮点数表示。 OpenGL如何将这些视口坐标转换为屏幕上的像素?落地吗?小区?平均?

这种行为可以以任何方式定制吗?

1 个答案:

答案 0 :(得分:2)

  

OpenGL如何执行视口转换?

OpenGL-3.1规范在2.12节中对此进行了定义。这里引用的时间太长,只需从http://opengl.org下载文档并自行阅读。

AFAIK OpenGL未指定特定的舍入操作。 OpenGL根本不是像素精确的,因此实现可以自由地实现它,但它适合它们。

  

这种行为可以以任何方式定制吗?

没有我知道。您可以做的最好的事情是编写一个顶点着色器,它以最终在整数坐标上的方式转换顶点(如果使用了floor或ceil,则为+/-一个小偏移)。