我正在尝试实现阴影贴图,所以我渲染到深度纹理。当我没有绑定包含深度纹理的帧缓冲区并使用默认帧缓冲区时,它会输出到屏幕。然而,对于遥远的碎片而言,它们不是白色,而是红色。
这是我的片段着色器:
#version 330
out float fragmentdepth;
uniform sampler2D inputTex;
void main(){
fragmentdepth = gl_FragCoord.z;
}
这是一个问题吗?因为阴影贴图不起作用,我想排除它作为问题的根源。
答案 0 :(得分:2)
深度是标量值。标量由OpenGL解释为单个组件纹理。单个组件纹理意味着只有.x
或.r
元素(无论您使用什么)变为非零。