![b6a82964433d20e42cf1c294d361b83c.png](https://i-blog.csdnimg.cn/blog_migrate/a0b1b6cd0acac0479d33947fc56a955d.jpeg)
前因
自从实时阴影发展到了shadowmap时代,漏光和 Shadow Acne就形影不离。除非你可以无脑极大提升shadowmap精度 或可以做到很短距离的实时阴影 否则并不好解决这常见问题。如下图
![d8bb5f6462761120d265f07f175193dc.png](https://i-blog.csdnimg.cn/blog_migrate/f667110f618cd7e3ab08cfa25396ce0f.jpeg)
动态bias方案
我早年在网易引擎部面试的时候 总监大佬问过我这问题。我当年很得意,告诉他我自创并实现过demo的做法,计算shadowmap 不仅写入深度 也写入 投影表面的世界法线(或投影表面的SV_PrimitiveID 这个更省空间),这样绘制阴影的时候就能根据自己表面的世界法线 是否与投影表面接近来判断 是否自己投影给自己 如果是bias算的大些 否则算的小些。因为既然bias 固定数值都不行,那就实现动态bias,这样逻辑上就成立。大佬冷静的说,shadowmap本身就精度不足 你同尺寸数据也不能提升太多。(实际测试确实提升不太大),他接着小心翼翼地问道:你就不能在屏幕空间想想办法&#