Opengl渲染到深度纹理 - 红色?

时间:2013-10-21 16:54:33

标签: opengl glsl

我正在尝试实现阴影贴图,所以我渲染到深度纹理。当我没有绑定包含深度纹理的帧缓冲区并使用默认帧缓冲区时,它会输出到屏幕。然而,对于遥远的碎片而言,它们不是白色,而是红色。

这是我的片段着色器:

#version 330 

out float fragmentdepth;
uniform sampler2D inputTex;

void main(){
fragmentdepth = gl_FragCoord.z;
}

这是一个问题吗?因为阴影贴图不起作用,我想排除它作为问题的根源。

1 个答案:

答案 0 :(得分:2)

深度是标量值。标量由OpenGL解释为单个组件纹理。单个组件纹理意味着只有.x.r元素(无论您使用什么)变为非零。