我目前正在为我的 XNA 4 项目编程延迟渲染系统,主要遵循 Cansin 教程。然而,他声称创建投射动态阴影的定向光是不可能的——这不是真的,因为许多游戏(如潜行者)使用带有延迟着色的动态定向光来创建逼真的太阳阴影。你知道我该如何实施这样的系统吗?这对我来说很重要,因为我游戏的大部分动作都发生在户外,并且不想使用跟随玩家的聚光灯作为解决方法。
此致
查看有关延迟渲染的Cansins 文章。它包含具有指数阴影的聚光灯和点光源,以及具有法线的 SSAO。一个很棒的教程。
是的,您可以使用带有延迟渲染器的定向光影贴图。我无法想象该教程给出了为什么可以将阴影贴图用于某些类型的灯光而不能用于其他灯光的原因。
您可能希望为定向灯与聚光灯实现阴影贴图的方式之间肯定存在差异,但是一旦您弄清楚了那部分,将一个适应您的延迟渲染器应该不会比另一个更难。
如果您对实际的阴影贴图实现感兴趣,我会将其作为一个单独的问题发布。
阴影体积技术产生非常逼真的阴影,并且可以实时计算。维基百科文章应该给你一个很好的起点:
http://en.wikipedia.org/wiki/Shadow_volume
DevMaster.net也有一篇关于该主题的非常详细的文章。