:让阴影“讲物理“而不是“猜近似“)
一、开篇:一个物理老师的类比想象你在教室里做一个光学实验:在台灯前放一支笔,观察桌上的阴影。如果台灯是一个极小的LED点光源,笔的阴影会有一条锐利清晰的边界——因为光线来源"几乎是一个点",被笔遮挡的区域和没被遮挡的区域分界非常明确。但如果你换成一个大尺寸的柔光灯箱(比如摄影棚里用的那种),阴影会发生神奇的变化:阴影核心区域(本影 Umbra):完全没有任何光线能照到,纯黑 阴影边缘过渡区(半影 Penumbra):部分光线能绕过笔照到,逐渐从黑变亮这个"边缘发虚、逐渐过渡"的柔和阴影,正是现实世界中绝大多数阴影的真实面貌——因为现实中几乎不存在真正的"点光源",太阳有视直径、灯泡有灯罩尺寸、天空本身就是一个巨大的面光源。传统ShadowMap技术,本质上是把光源"简化成一个点"来计算的,这就是为什么它天生难以表现柔和的半影效果。而光线追踪阴影,则是老老实实地按照物理规律,去追踪光线到底能不能"绕过"遮挡物到达面光源的每一个角落。二、ShadowMap的先天缺陷:为什么柔和阴影这么难2.1 ShadowMap的本质:深度比较,不是"光线可见性"ShadowMap的核心逻辑: 1. 从光源视角渲染一张深度图(记录"离光源最近的表面")