我是图形编程的新手,所以如果我使用了错误的术语,很抱歉。
使用clippos我的意思是:
gl_FragColor.w = gl_Position.z / gl_Position.w我在我的深度传递中这样做,我如何从gl_Position.z / gl_Position.w的结果中获得后处理传递中的gl_FragCoord.z / gl_FragCoord.w的值?
发布于 2014-05-21 08:53:23
老实说,这是一件很愚蠢的事情。gl_FragCoord.w等同于1.0 / gl_Position.w,因此您可以撤消投影。你需要把这个w值保存在某个地方,除非它是常量。实际上,您真正想要编写是w坐标本身。
如果您使用透视投影,则它将不是常量,那么在投影之后,gl_Position.w通常将为-eye.z。这个值大部分是历史的,在旧的固定功能流水线中,Z轴的前部指向眼睛空间中的负方向。
在可编程GL中,您可以自由地在裁剪空间之前使用任何您想要的坐标空间约定。但是,剪裁空间及其以外的所有对象都具有固定的轴向。
https://stackoverflow.com/questions/21896349
复制相似问题