话说当年学shader的目的, 就是为了想实现一个当时天真地以为很NB的算法TSM, 一年多来朝着这个目标努力, 到最后却发现, 结果并没有想像中的美好-_-
最开始实现的是Projective Shadow..., 也就是投影纹理的方法....先把需要投影的物体从光源视角以单一颜色画到一张RTT上, 然后用投影矩阵生成纹理坐标投影到地表上去跟纹理进行混合. 为什么用它呢? 主要是它对硬件没什么要求, 能支持RTT就OK了....所以, 大多数游戏都不做自阴影的, 可怜地鸡肋…
对于1的问题, 调调bias, 弄弄Frustum, 调节一下CullMode估计就能解决的很好. 对于2, 我只知道一种方法: 模糊!...比如用SM来生成地形的LightMap, 有自阴影的话很难看, 但是做一下Blur之后, 就会发现, 原来效果这么完美.