阴影贴图是否必须覆盖整个场景?

时间:2015-07-30 14:36:48

标签: opengl glsl shadows

我的例子是我有一个sponza模型,并希望太阳照在屋顶上,如图所示。 如果我将阴影贴图设置为仅覆盖场景的某个部分会发生什么?在这个例子中,只覆盖屋顶上的洞,并将其他一切设置为阴影。 我的思维过程是限制阴影贴图仅覆盖屋顶上的洞,这将导致阴影贴图中的分辨率更高,从而提高阴影质量。

当我在片段着色器中读取纹理外时会发生什么? e.g:

float depthTextureValue = texture(shadowMap, shadowCoordinate.xy).x;

纹理方法返回0? -1

1 个答案:

答案 0 :(得分:1)

这取决于纹理(或采样器&#39; s)wrapping mode,它可以使用常量glTexParamter*为每个轴使用GL_TEXTURE_WRAP_[STR]函数进行设置。< / p>

两种最常见的模式是GL_REPEAT,它会导致纹理环绕,或GL_CLAMP_TO_EDGE,它会重复纹理的边缘。