VSM / ESM阴影映射

时间:2014-05-30 13:55:16

标签: opengl-es webgl

我一直在尝试使用WebGL中的VSM和ESM技术实现一些阴影贴图,但是有一些事情会让我产生问题。

由于这两种方法均基于occluder – receiver深度值,因此障碍物与我们想要点亮的点之间的差异越大,它接收的光线就越小。

所以根据我的理解,远离地面的一个物体会比1000个物体的物体投射出更弱的阴影吗?

我误解了什么吗?这是使用ESM的结果图片,问题是对象底部几乎没有阴影。

enter image description here

以下是使用的ESM代码:

float c = 4.0;
vec4 texel = texture2D(uDepthMap, depth.xy);
shadow = clamp(exp(-c * (depth.z - unpack(texel))), 0.0, 1.0);

gl_FragColor = vec4(color*shadow, 1.0);

有关信息,我从http://devmaster.net/posts/3002/shader-effects-shadow-mapping

中获取了大部分代码

0 个答案:

没有答案