将gl_FragCoord用于具有不同DPI的监视器

时间:2015-07-02 20:17:49

标签: opengl screen-resolution fragment-shader

考虑编写片段着色器的监视器的不同DPI的正确方法是什么?我使用glFragCoord使东西只显示在屏幕的一部分上。事物显示为在我的外部显示器上缩进(占据我的整个小GL窗口)并且在我的内置显示器上显示不正确(按比例缩小以仅占用窗口的左下角四分之一)。有没有跨平台的方法来解决这类问题?

我很确定这是我的问题的正确诊断,因为我的内置显示器(15.4英寸2880x1800)和外部(22英寸1680x1050)上的着色器看起来不同。有没有人碰到这个?

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,但我仍然觉得我并没有真正掌握这个问题。因为正确使用了顶点着色器,所以我只是将位置作为“变化”而不是使用gl_fragCoord传递给片段着色器。它在到片段着色器的路上进行插值,它似乎考虑了监视器之间的差异。它仍处于剪辑空间中,因此您必须相应地对其进行转换。