1

我想创建一个片段着色器,在 glLightSource 的位置呈现一个白色圆圈。但不知何故,我很难弄清楚如何在屏幕坐标中转换 glLight 位置......

有人有想法吗?

4

1 回答 1

1

gl_LightSource.position您必须将与相乘gl_ModelViewProjectionMatrix才能获得屏幕坐标(对于 OpenGL 2.x - 对于 OGL 3.x+,您当然必须为矩阵使用统一)。但是,问题是您仍然必须在全屏四边形中找到正确的像素 - 也就是说,您必须为每个片段计算此像素,然后测试当前片段位置是否与您的灯光的屏幕空间位置相同。

因此,我强烈建议使用带有光坐标的顶点并按照 Christian Rau 的建议进行绘制。

于 2012-07-18T12:57:39.603 回答