我想创建一个片段着色器,在glLightSource的位置呈现一个白色圆圈。但不知何故,我很难搞清楚如何在屏幕坐标中转换glLight位置......
有人有想法吗?
答案 0 :(得分:1)
你必须将gl_LightSource.position
与gl_ModelViewProjectionMatrix
相乘得到屏幕坐标(对于OpenGL 2.x-使用OGL 3.x +你当然必须为你的矩阵使用一个制服)。但是,问题是您仍然需要在全屏四边形中找到正确的像素 - 也就是说,您必须为每个片段计算这个像素,然后测试当前片段位置是否与灯光的屏幕空间位置相同。
因此,我强烈建议使用一个带有光线坐标的顶点,并按照Christian Rau的建议绘制它。