当前位置: 首页 > news >正文

【C++游戏引擎开发】第23篇:基础阴影映射(Shadow Mapping)

一、 传统渲染的阴影困境

1.1 光照计算的局限性

在标准光照模型中(如Phong模型),着色计算仅考虑直接光照对表面的影响,无法自动生成物体间的遮挡阴影。这种缺失导致渲染结果缺乏空间层次感,场景真实性大打折扣。

1.2 阴影的本质定义

阴影是光线被遮挡物阻挡后在接收面上形成的亮度衰减区域。其数学本质可表述为:给定点 P P P在接收面上,当存在遮挡物使光源到 P P P的直线段被阻断时,则 P P P处于阴影中。

∃ Q ∈ Scene , Q ∈ L P ‾ ⇒ P ∈ Shadow \exists Q \in \text{Scene}, Q \in \overline{LP} \Rightarrow P \in \text{Shadow} QScene,QLPPShadow

其中 L L L为光源位置, L P ‾ \overline{LP} LP表示光源到目标点的线段。


二、阴影映射核心原理

2.1 深度比较范式

阴影映射的核心思想基于相对深度测试:从光源视角记录场景深度信息,在相机渲染时通过比较当前片段与光源视角深度值的相对关系,判断该位置是否被遮挡。

2.2 两阶段渲染流程

  1. 深度贴图生成阶段:将摄像机置于光源位置,渲染场景深度到纹理(Shadow Map)
  2. 阴影检测阶段:正常渲染时,将片段坐标转换到光源空间,通过深度比较确定阴影状态

2.3 数学空间变换

关键坐标系变换链包含:

  1. 模型矩阵(Model Matrix):物体局部空间→世界空间
  2. 光源视图矩阵(Light View Matrix):世界空间→光源观察空间
  3. 光源投影矩阵(Light Projection Matrix):观察空间→裁剪空间

最终得到光源空间坐标:
P light = M proj ⋅ M view ⋅ M model ⋅ P local P_{\text{light}} = M_{\text{proj}} \cdot M_{\text{view}} \cdot M_{\text{model}} \cdot P_{\text{local}} Plight=MprojMviewMmodelPlocal


三、 深度贴图技术细节

3.1 正交投影 vs 透视投影

  • 正交投影:适用于平行光(如方向光),保持物体比例不变
  • 透视投影:适用于点光源,产生透视变形效果

正交投影矩阵构造参数:
M ortho = [ 2 r − l 0 0 − r + l r − l 0 2 t − b 0 − t + b t − b 0 0 − 2 f − n − f + n f − n 0 0 0 1 ] M_{\text{ortho}} = \begin{bmatrix} \frac{2}{r-l} & 0 & 0 & -\frac{r+l}{r-l} \\ 0 & \frac{2}{t-b} & 0 & -\frac{t+b}{t-b} \\ 0 & 0 & -\frac{2}{f-n} & -\frac{f+n}{f-n} \\ 0 & 0 & 0 & 1 \end{bmatrix} Mortho= rl20000tb20000fn2

相关文章:

  • 低代码平台开发手机USB-HID调试助手
  • 跟着deepseek学golang--认识golang
  • 卡尔曼滤波解释及示例
  • electron-updater实现自动更新
  • 学习ros过程中常用指令
  • Nacos简介—1.Nacos使用简介
  • 力扣热题100题解(c++)—子串、普通数组(不包含困难)
  • Matlab 复合多层结构的隔声研究
  • 手搓箱图并输出异常值(MATLAB)
  • 海量数据笔试题--Top K 高频词汇统计
  • [MERN 项目实战] MERN Multi-Vendor 电商平台开发笔记(v2.0 从 bug 到结构优化的工程记录)
  • RabbitMQ 中的队列声明
  • 循环神经网络RNN(示例代码LSTM预测股价示例)
  • 2025年3月AGI技术月评|技术突破重构数字世界底层逻辑
  • 旋转磁体产生的场-对导航姿态的影响
  • 算法时代的“摩西十诫”:AI治理平台重构数字戒律
  • HTML字符实体和转义字符串
  • 某城乡老旧房屋试点自动化监测服务项目
  • Uniapp-小程序从入门到精通
  • gitlab-ce容器镜像源(国内)
  • 无视规范开“远端”、企业云端被窃密,国安部:莫让运维成运“危”
  • 云南大理州洱源县发生4.8级地震,震源深度10千米
  • 对话地铁读书人|超市营业员朱先生:通勤时间自学心理学
  • 言短意长|大学校门到底应不应该开放?
  • 河南省濮阳市委常委、组织部部长刘建茂接受审查和调查
  • 水利部启动干旱防御Ⅳ级响应,指导广西陕西抗旱保供保灌