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

时间:2014-02-20 01:38:04

标签: glsl

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

clippos我的意思是:

gl_FragColor.w = gl_Position.z / gl_Position.w

我在深度通道中执行此操作,如何从gl_Position.z / gl_Position.w的结果中获取gl_FragCoord.z / gl_FragCoord.w的值在后处理过程中?

1 个答案:

答案 0 :(得分:0)

说实话,这是一件很愚蠢的事情。 gl_FragCoord.w等于1.0 / gl_Position.w,以便您可以撤消投影。 需要保持 w值,除非知道它是常量。 事实上,如果你真正想要写的是w本身的坐标。

如果您使用透视投影,它将不会保持不变,然后投影后gl_Position.w通常为-eye.z。这个值主要是历史的,在旧的固定功能管道中,Z轴的前部指向眼睛空间的负方向。

在可编程GL中,您可以在剪辑空间之前自由使用任何您想要的坐标空间约定。但是,剪辑空间和其他部分都有一个固定的轴向方向。