将clippos转换为glsl中的ndc位置?

将clippos转换为glsl中的ndc位置?,glsl,Glsl,我是图形编程新手,如果我使用了错误的术语,那么很抱歉 对于clippos,我的意思是: gl_FragColor.w = gl_Position.z / gl_Position.w 我在我的depthpass中这样做,我如何从gl_Position.z/gl_FragCoord.w的结果中获得后处理过程中gl_FragCoord.z/gl_FragCoord.w的值?老实说,这是一件愚蠢的事情gl_FragCoord.w等于1.0/gl_Position.w,因此可以撤消投影。需要将w值保留在

我是图形编程新手,如果我使用了错误的术语,那么很抱歉

对于clippos,我的意思是:

gl_FragColor.w = gl_Position.z / gl_Position.w

我在我的depthpass中这样做,我如何从gl_Position.z/gl_FragCoord.w的结果中获得后处理过程中gl_FragCoord.z/gl_FragCoord.w的值?

老实说,这是一件愚蠢的事情
gl_FragCoord.w
等于
1.0/gl_Position.w
,因此可以撤消投影。需要将
w
值保留在某个地方,除非已知该值为常量。事实上,如果你真正想写的是
w
自身的坐标

如果使用透视投影,则投影后的
gl_Position.w
通常为
-eye.z
。该值主要是历史值,在旧的固定功能管道中,Z轴的前部指向眼睛空间的负方向

在可编程GL中,可以在剪辑空间之前自由使用坐标空间的任何约定。但是,剪辑空间及其以外的所有对象都具有固定的轴向方向