【发布时间】:2013-01-13 12:22:24
【问题描述】:
我目前正在学习使用 GLSL 创建 shadown,但我在这里遇到了一些麻烦:
1. 在GLSL 3.3中,我们可以在片段着色器中使用这条语句:
layout(location = 0) out float fragmentdepth;
仅将深度 16 位写入纹理(之前设置为 GL_DEPTH_COMPONENT16),但我如何在 OpenGL 2.1 (GLSL 1.20) 中执行类似的操作?
- 据我所知,对于渲染深度缓冲区,我们只需要将相机位置更改为光照位置,将相机方向更改为光照方向,然后在绘制真实场景时再更改回来,对吗?
【问题讨论】:
-
我认为您应该将深度缓冲区附加到 fbo,然后渲染到
gl_FragDepth;我不确定您是否不需要为此进行扩展。 -
@BartekBanachewicz:我在我的项目中使用过 glew,谢谢,我会试试
gl_FragDepth:)