Translated chapter 26

This commit is contained in:
Mouse
2019-08-21 22:31:41 +08:00
parent ee67521a9e
commit 77c12af4af
10 changed files with 256 additions and 3 deletions

View File

@@ -6,7 +6,7 @@
我们将使用一种被称为阴影映射Shadow Mapping的技术这种技术被广泛使用于游戏中且不会严重影响引擎性能。阴影映射看起来很容易理解但是很难正确地实现它。或者更准确地说很难用一种通用的涵盖了一切可能并产生一致的效果的方法去实现它。
我们将在此说明一种方法,它可以为你在大多数情况下添加阴影,但更重要的是,它将帮助你了解其局限性。这里介绍的代码远不是完美的,但我认为它很容易理解。它还被设计用于支持有向光(这我认为是更复杂的情况),但你将了解如何将其扩展以支持其他类型的光照(例如点光源)。如果想获得更高级的效果,你应该使用更高级的技术,例如层叠阴影图Cascaded Shadow Maps。在任何情况下这里解释的概念都仅仅作为基础。
我们将在此说明一种方法,它可以为你在大多数情况下添加阴影,但更重要的是,它将帮助你了解其局限性。这里介绍的代码远不是完美的,但我认为它很容易理解。它还被设计用于支持有向光(这我认为是更复杂的情况),但你将了解如何将其扩展以支持其他类型的光照(例如点光源)。如果想获得更高级的效果,你应该使用更高级的技术,例如级联阴影映射Cascaded Shadow Maps。在任何情况下这里解释的概念都仅仅作为基础。
所以,让我们从思考如何检查特定区域(实际上是片元)是否在阴影中开始。在绘制这个区域的时候,我们可以发出射线投射到光源上,如果我们可以在不发生任何碰撞的情况下到达光源,那么像素就在光照中,反之,像素处于阴影中。