中EN
概念页

方向遮蔽

Directional Occlusion

方向遮蔽用比单个 AO 标量更有表现力的方式记录"哪些方向被挡住",例如地平线角、可见性锥(环境孔径)、球面有向距离或球谐。它主要用于面光源和环境光照的软遮蔽,以及凹凸细节自阴影、超大地形等阴影贴图分辨率不够的场合;对点光源,专门的阴影技术质量更好(RTR4 11.4 节)。

为什么 AO 不够

假设地面被颜色从红渐变到绿的远处穹顶照亮:AO 只会让两点都变暗,但它们仍同时被红、绿两部分照亮;弯曲法线把余弦瓣移向未遮挡部分,但积分范围没受限制,也不够准确。方向方法能正确去除来自被遮挡天空部分的光。

预计算表示

表示说明取舍
地平线贴图 (Max)每点存若干方位角(如八个方向)上的地平线高度角,描述高度场自遮挡直观;存储较多
椭圆 / 圆形孔径把未遮挡方向集合建模为椭圆或圆形孔径;圆形称环境孔径光照 (ambient aperture lighting),即一个可见性锥存储更少;方向集合不像圆/椭圆时出错(如平面上规律竖立尖刺,方向集是星形)
球面有向距离函数 SSDF (Wang 等)存到球面上遮挡区域边界的有向距离
球面/半球基函数第 10 章的各种基都可编码可见性球谐和 H 基会振铃,可能出现负值

和 AO 一样,可存于纹理、顶点或体积。

动态计算

  • Ren 等的球谐指数化及 Sloan 等的屏幕空间版本,用多于一个 SH 频带时天然有方向信息,频带越多越精确。
  • 锥追踪(Crassin、Wright)本来就为 AO 追踪多个锥,信息已带方向;需要特定方向时可少追踪几个锥。
  • Iwanicki:只追踪一个方向的锥,让用球体近似的动态角色在静态几何上投下软阴影;静态光照用 AHD 编码,环境部分遮挡解析计算,方向部分用单锥与球体求交得到衰减。
  • 屏幕空间:Klehm 等对邻域未遮挡方向求和得到屏幕空间弯曲锥——向量方向为锥轴,长度估计锥顶角;Jimenez 等由地平线角估计锥轴、由 AO 推出锥角。

用方向遮蔽着色

  • 点光源:Lo=πf(lc,v) clight v(lc)(n⋅lc)+L_o=\pi f(\mathbf{l}_c,\mathbf{v})\,c_{light}\,v(\mathbf{l}_c)(\mathbf{n}\cdot\mathbf{l}_c)^+,即无遮挡响应乘以光方向上的可见性(落在地平线下、锥外或 SSDF 负区域时为 0)。许多表示能返回 0–1 之间的部分遮挡,SH/H 基还可能因振铃返回负值。适合超大地形、凹凸贴图细节等传统阴影分辨率不够的情形。
  • 面光源:只在光源立体角内积分。朗伯情况下要求 ∫Ωlv(l)(n⋅l)+dl\int_{\Omega_l}v(\mathbf{l})(\mathbf{n}\cdot\mathbf{l})^+d\mathbf{l}。若光源是多边形且可见性用地平线角,把投影到半球的球面多边形按地平线裁剪,再用 Lambert 公式解析求余弦积分;若用弯曲锥,裁剪会产生圆弧段,Lambert 公式不再适用。光源较小时可把余弦当常数,只积分可见性:球形光源 + 弯曲锥时就是两锥交集的立体角(Oat 与 Sander 给出实用近似);SH 编码的可见性也可解析积分。
  • 环境光照:∫Li v (n⋅l)+\int L_i\,v\,(\mathbf{n}\cdot\mathbf{l})^+ 是三重乘积积分,SH 或小波下可解析但实时太贵。技巧是先把余弦乘进其中一个函数,变成双重乘积积分,正交基下就是系数向量点积。余弦投影到 SH 是带状谐波 (ZH),SH×ZH 远比 SH×SH 便宜。
    • 余弦先乘可见性:可离线完成,只存可见性,属于预计算辐射传输,但无法再用法线贴图修改法线。
    • 余弦先乘光照:可保留法线细节;预计算多法线下的乘积会限制光照变化,运行时计算又贵。Iwanicki 与 Sloan 在顶点上计算乘积、与余弦卷积后投影到 AHD,插值后用逐像素法线重建,可用于 60 FPS 游戏。
    • Klehm 等:环境贴图按不同锥开角预滤波存入 mip 级(大锥角结果平滑,不需高角分辨率),预滤波时假设锥轴与法线对齐。
  • 光泽 BRDF + 环境光:Green 等把 BRDF 近似为若干球面高斯之和 f≈∑kwk(v)G(dk(v),μk(v),l)f\approx\sum_k w_k(\mathbf{v})G(\mathbf{d}_k(\mathbf{v}),\mu_k(\mathbf{v}),\mathbf{l})(各向同性时只依赖法线与视线夹角,可存一维查找表),并假设可见性在每个高斯支撑内为常数,取瓣中心方向的值;剩下的光照与高斯卷积可预存在环境贴图 mip 中。Wang 等更精确地计算高斯在可见区域上的积分,用它生成新幅度的高斯。
  • 更便宜的镜面遮蔽:Jimenez 等与 El Garawany 把整个 BRDF 瓣表示为一个只依赖粗糙度的锥,可见性也表示为锥,取两锥交集立体角作为衰减因子;简化很大但结果可信(实践中 BRDF 锥要画得更宽才合理)。
  1. realtime_rendering_4ed.pdf 第 11 章 Global Illumination

相关页面

图形学环境光遮蔽Ambient Occlusion环境光遮蔽 (AO) 是余弦加权后半球上未被遮挡的比例,用来在光照缺乏方向变化时仍给出形状线索(缝隙变暗)。它由 Landis 在 ILM 为《珍珠港》开发,可离线烘焙,也可在物体空间或屏幕空间动态计算(SSAO、HBAO、GTAO 等)。AO 适合漫反射和平滑环境光,不适合点光源或小面光源的可见性(RTR4 11.3 节)。图形学球面函数基Spherical Basis Functions要让环境光照超越常数项,需要表示"每个入射方向的辐亮度"这样的球面函数。把函数转成某种表示叫投影,从表示求值叫重建。本页对比表格形式、环境立方体、球面高斯、球谐函数,以及专门为半球设计的 AHD、Half-Life 2 基和 H-basis。图形学面光源Area Lights真实光源从来不是点。面光源要求对光源所张立体角 \omegal 积分 BRDF,实时渲染倾向于用闭式解或近似而不是多条光线取平均。主要做法有:Lambert 表面的矢量辐照度与包裹光照、光泽表面的粗糙度修正和"最具代表性的点",以及最准确的线性变换余弦 (LTC)。图形学基于图像的光照Image-Based Lighting用纹理数据(通常是相机拍摄的 360° HDR 全景)照明场景称为基于图像的光照。实时引擎常用预滤波的高光立方体贴图(配合 split-sum 近似)处理高光,用辐照度环境贴图或球谐系数处理漫反射。它们只依赖少量光照图元而不需要知道场景其他表面,因此仍属局部光照。图形学预计算辐射传输Precomputed Radiance Transfer预计算传输 (PRT) 假设几何不变、只有光照变化,预先计算"输入光照 → 场景辐射亮度分布"的传输函数,运行时注入直接光再应用传输。它依赖光传输的线性性:各"基础光源"的单位响应按当前强度加权求和即得完整反弹光照。变体包括 Sloan 的 SH 环境光 PRT、点光源簇 PRT,以及 Enlighten 一类的表面间传输(RTR4 11.5.3 节)。图形学视差贴图Parallax Mapping法线贴图的凹凸不会随视角移位,也不会互相遮挡。视差贴图用高度场按视角偏移纹理坐标,以几条额外指令换来明显提升;视差遮蔽贴图 (POM,又称浮雕贴图) 沿视线在高度场中步进求交,能表现遮挡和自阴影,但轮廓仍是原始平面。图形学局部反射探针Localized Reflection Probes镜面全局光照需要高角分辨率但只关心反射方向附近的小立体角。实时中最流行的方案是在场景中稀疏放置局部环境贴图(反射探针),配合反射代理体做视差校正;它实现简单、快、美术可控,但有拉伸和漏光问题。另有体素锥追踪和平面反射等替代方案(RTR4 11.6–11.6.4 节)。图形学渲染方程Rendering Equation渲染方程 (Kajiya, 1986) 把"某点接收到的光就是其他点发出或反射的光"写成递归积分,概括了光从光源出发经任意次反弹到达眼睛的所有路径。反射方程是它的受限特例。离线用辐射度 (Radiosity) 或蒙特卡洛路径追踪求解;实时渲染则靠简化和预计算逼近它(RTR4 第 11 章)。

被这些页面引用1 篇

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原