确实有些技术在光看demo的时候总是让人感觉很完美,可一旦实际运用到游戏中,就会有一些这样那样的别扭让人感觉不舒服,重要做这样那样的改进。shadowmap算是一个很明显的例子。上个引擎使用trapezoidal shadowmap计算全场景阴影,从demo看来它表现非常出色,但是一用到游戏中,发现在距离一定范围之后总是会在一些面上出现一些难看的条纹,一开始以为是精度问题,但后来不论怎么调整shadowmap尺寸,效果都不大,并且在shadowmap中保存的深度是使用正交插值,对于透视引起的误差应该排除,有一段时间以为是面的normal跟光线角度太小造成,但是在做了一些处理之后仍然没有变化,而且发现一些面即使与光线角度足够大,接近90度的时候,也有这个问题。这个问题一直留了下了,后来在引擎中只好只对地面做shadowreceive。
    另一个问题是,tsm在灯光进入view frustum和逆向view frustum的时候就会失效,因为此时无法计算出梯形。tsm提出者似乎有意忽略指出这一点。。。所以在游戏中出现这种情况只好将灯光位置偷偷提高。。。