Some stuff about depth texture based shadow mapping

本文详细解释了阴影映射技术的工作原理,包括纹理坐标在光照投影空间中的作用、深度纹理如何映射到近投影平面以及如何使用这些纹理坐标来正确采样深度纹理,确保每个片段与对应的像素匹配。
  //       Tex coord is actually the vertices projected to the near projection plane of the light projection space.
 //        Depth texture is just like mapped to the near projection plane(a quad ranges from -1.0 to 1.0 according to
 //   the x and ycoordinate axes of the light projection space). And shadow texcoord is just used to sample the
 //   depth texture and map correct texels to the corresponding fragment.
 //        In depth texture, color of objects and surfaces that light CANNOT arrive is definitely white(vec4(1.0)) or
 //   black(vec4(vec3(0.0), 1.0)) depends on your hardware. Color of those light can arrive is a gray-scale color
//   (depth-distance from light source).
//  NOTICE: with GL_TEXTURE_COMPARE_MODE GL_COMPARE_REF_TO_TEXTURE and
                          GL_TEXTURE_COMPARE_FUNC  GL_LEQUAL, depth texture sampling color will be like above.
 //        so the function "textureProj()" works with the following rule:
 //       1. if the color of the sampled texel is white(or black), it can be considered that this fragment is in the
 //   shadow;
 //       2. if the color of the sampled texel is a gray-scale color, the corresponding fragment is being illuminated.
 //   shade normally with lighting.
 //       So key is to transform vertices into light projection space, project them to the near plane of the light
 //   Projection frustum, and then use them as texcoords, and run further steps in fragment shader with textureProj().
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值