中EN
概念页

基于图像的光照

Image-Based Lighting

用纹理数据(通常是相机拍摄的 360° HDR 全景)照明场景称为基于图像的光照。实时引擎常用预滤波的高光立方体贴图(配合 split-sum 近似)处理高光,用辐照度环境贴图或球谐系数处理漫反射。它们只依赖少量光照图元而不需要知道场景其他表面,因此仍属局部光照。

直接光与环境光的分工

反射方程本身不区分直接光和间接光,但直接光通常立体角小、辐亮度高,间接光以中低辐亮度弥漫半球其余部分,所以分开处理。典型引擎:少数重要光源用解析面光源加阴影贴图;远处光、天空、补光、表面反弹光用环境立方体(高光)加球面基(漫反射辐照度)。

高光 IBL:预滤波环境贴图

  • 也叫高光光照探针、高光立方体贴图。把环境模糊即可模仿粗糙表面,但模糊必须是非线性的:纹素间角距与立体角不恒定,AMD CubeMapGen 等工具会跨面取样并考虑纹素角度范围。
  • 单纯模糊与 BRDF 无关。按 BRDF 瓣过滤至少有 5 维输入(粗糙度 + 视线与法线各两个极角),不可能全存。实践把瓣限制为绕反射向量径向对称,只随粗糙度变化:按粗糙度预卷积多张图,存进立方体贴图的 mip 链(越高 mip 越粗糙),运行时用反射向量查、按粗糙度强制选 mip,三线性过滤插值中间粗糙度。宽滤波去掉高频、只需低分辨率,与 mip 结构天然契合。
  • Phong 瓣本身绕反射向量对称,可几乎精确;Phong 反射向量项换成 Blinn-Phong 半向量时,指数除以 4 拟合较好。
  • 地平线裁剪:真实瓣在掠射角会被表面地平线截掉,实时方法通常忽略,导致掠射角过亮。Lagarde 建议按粗糙度把取样向量从反射方向向法线偏,部分补偿。
  • mip 选择要考虑像素足迹内法线与粗糙度的变化:Ashikhmin & Ghosh 建议比较硬件缩小级别与滤波宽度级别,取分辨率更低者;更准确的是换一个拟合足迹内平均瓣的新粗糙度——与 BRDF 抗锯齿问题相同(见基于物理的着色)。
  • 平面(如地板)上径向对称滤波误差明显,曲面上通常看不出。

卷积的计算

被积式 ∫ΩD(l,v)Li(l)dl\int_\Omega D(l,v)L_i(l)dl 是球面卷积,只能数值求:蒙特卡洛 ≈1N∑kD(lk,v)Li(lk)p(lk,v)\approx\frac1N\sum_k\frac{D(l_k,v)L_i(l_k)}{p(l_k,v)},写入贴图时还要按纹素立体角加权。

  • 低粗糙度 mip 大多数样本 D≈0D\approx0 被浪费,用匹配瓣形的重要性采样;还可联合考虑环境辐亮度分布。点采样通常要数百样本,只适合离线。
  • 用锥代替点:按锥的立体角取对应 mip 采样,有偏但样本少,GPU 上可交互。McGuire 等混合未滤波立方体的多个 mip 重建 Phong 瓣,Hensley 用求和面积表,Kautz 层次化生成抛物面图;Manson & Sloan 用二次 B 样条过滤 mip,实时结果与重要性采样参考解难以区分。
  • 快速卷积使动态渲染的立方体贴图可每帧或隔几帧更新。替代方案:在静态预滤波图上叠加动态光的预滤波"斑点"(只适用远光);或几何静态而太阳移动时,存 G-buffer 环境贴图(位置、法线、材质)重新着色——《Call of Duty: Infinite Warfare》《巫师 3》《Far Cry 4》使用。

Split-Integral(Split Sum)近似

旧做法用 Phong 瓣再乘镜面菲涅耳 F(n,v)F(n,v),丢掉了 G2G_2 与 F(h,l)F(h,l);Lazarov 指出用 F(n,v)F(n,v) 的误差比不用菲涅耳还大。Gotanda、Lazarov、Karis 各自推出:

∫Ωfsmf(l,v)Li(l)(n⋅l)dl≈∫ΩD(r)Li(l)(n⋅l)dl  ∫Ωfsmf(l,v)(n⋅l)dl\int_\Omega f_{smf}(l,v)L_i(l)(n\cdot l)dl\approx\int_\Omega D(r)L_i(l)(n\cdot l)dl\;\int_\Omega f_{smf}(l,v)(n\cdot l)dl

  • 并非拆成两个不相交项:DD 和 n⋅ln\cdot l 在两边都出现,凡绕反射向量对称的项都放进两个积分。
  • 第一项只依赖粗糙度和 rr,假设 n=v=rn=v=r,存入立方体 mip。
  • 第二项是高光的方向反照率 Rspec(v)R_{spec}(v),依赖仰角、粗糙度和 F0。Gotanda 存三维表;Karis 与 Lazarov 发现 F0 可分离出去,得到两个二维因子——Karis 存为双通道二维纹理,Lazarov 用拟合函数,Iwanicki & Pesce 给出更准确简单的近似。RspecR_{spec} 也可用于改进漫反射模型,两处共用。
  • 对常数环境精确;低频环境(户外常见)经验上也成立。最大误差来源是 n=v=rn=v=r 的径向对称、不裁剪假设。

非对称与各向异性瓣

微表面瓣定义在半向量上,从不具备所需对称性;只有正视 (n=vn=v) 时结果有保证。改进:Kautz & McCool 为当前视线找最佳单个瓣或多个瓣平均,并给能量修正;Iwanicki & Pesce 用 Nelder-Mead 为 GGX 拟合,并研究用硬件各向异性过滤加速;Revie 把单样本移到复杂 BRDF 峰值用于延迟着色下的毛发,McAuley 推广到所有表面;McAllister 利用 Lafortune BRDF(多个扰动的 Phong 瓣)实现各向异性和逆反射,Green 等用高斯瓣。

漫反射 IBL:辐照度环境贴图

  • 以法线索引、存辐照度(高光图以反射向量索引、存辐亮度)。法线包含漫反射所需全部信息,不存在高光图的歧义;与钳制余弦卷积是精确的。极度模糊,可低分辨率存储,常直接用预滤波高光图的最低 mip 之一。
  • 使用:辐照度乘漫反射率,高光图乘高光反射率;可加菲涅耳在掠射角增高光、减漫反射。
  • 宽滤波难以实时采样生成;King 变换到频域在 2004 年硬件上超过 300 FPS。用 64×64 小立方体生成时面光源可能"落在纹素之间"闪烁,Wiley & Scheuermann 改用大卡片表示光源。Brennan:向辐照度图中直接渲染一个朝光方向的半球(余弦瓣)以加入动态光。

球谐辐照度

  • Ramamoorthi & Hanrahan:前 9 个 SH 系数(RGB 共 27 个浮点数)表示辐照度误差约 1%;只存间接光时 4 个系数(常数 + 线性带)常已足够。重建只需算几个多项式,不必采样纹理。
  • 辐照度是辐亮度与钳制余弦的球面卷积。钳制余弦绕 z 轴对称,每个频带只有一个非零系数(带谐函数);卷积结果系数 = 两者系数之积再乘 4π/(2l+1)4\pi/(2l+1)。
  • 钳制余弦在 π/2\pi/2 处突变,9 项近似在 π/2\pi/2 到 π\pi 间轻微振荡(振铃),极端光照下表现为色偏或背光面亮斑;只存间接光时一般不成问题,可加窗预滤波。
  • 动态立方体投影:kLj=∑tfj(r[t])L[t]dω[t]k_{Lj}=\sum_t f_j(r[t])L[t]d\omega[t],再乘缩放后的余弦系数得辐照度系数;因子 kcos+j′fj(r[t])dω[t]k'_{cos^+j}f_j(r[t])d\omega[t] 只依赖纹素,可离线存成立方体贴图(每通道一个基)。
  • 动态光:点、圆盘、球光的系数有解析式,以带谐给出后旋转(只需点积),直接加到已有系数上;复杂形状可画成图像后数值投影;Habel 给出 Preetham 天空光的 SH 展开。补光 (fill light) 常只算漫反射。反过来可从 SH 中提取方向光(Sloan,仅用线性带即可选近似最优方向,也可提取多个),用于光源合并;lightcuts 是聚合次要光源的系统方法。
  • SH 也可做视角相关的光泽光照(Ramamoorthi & Hanrahan、Kautz),但占空间大或只适合低频。

其他辐照度表示

  • 半球光照(Parker 等):上半球 LskyL_{sky}、下半球 LgroundL_{ground},θ<90∘\theta<90^\circ 时 E=π[(1−12sin⁡θ)Lsky+12sin⁡θLground]E=\pi[(1-\frac12\sin\theta)L_{sky}+\frac12\sin\theta L_{ground}],θ≥90∘\theta\ge90^\circ 时两者互换。Baker & Boyd 的更快近似 E=π[1+cos⁡θ2Lsky+1−cos⁡θ2Lground]E=\pi[\frac{1+\cos\theta}{2}L_{sky}+\frac{1-\cos\theta}{2}L_{ground}],轴为坐标轴时 cos⁡θ\cos\theta 就是法线的一个分量,多数应用更可取。
  • Forsyth 的 trilight 涵盖方向、双向、半球和包裹光照;Valve 最早用环境立方体存辐照度。
  • 要处理遮挡或光泽反射需要高频表示,即预计算辐射传输 (PRT) 与全频光照;Ng 等用 Haar 小波存环境与自阴影函数,可看作立方体贴图压缩。

下图概括一个典型引擎中环境光照的数据流:

flowchart TD
  A["HDR 环境 / 动态渲染的立方体贴图"] --> B["按粗糙度 GGX 预卷积到 mip 链"]
  A --> C["投影到 SH 或辐照度立方体"]
  D["二维 LUT:仰角 × 粗糙度"] --> E["高光 = 预滤波值 × R_spec"]
  B --> E
  C --> F["漫反射 = 辐照度 × 漫反射率"]

误差与取舍

  • 环境光照假设无限远辐亮度源,现实中不存在;最难的是遮挡——环境光没有主方向,点光源的阴影技术用不上,漏光往往比缺光更显眼(遮蔽方法见第 11 章)。
  • 预滤波立方体在特定(罕见)条件下对某 BRDF 精确,一般情况下有误差;不同光照表示之间的一致性比各自误差更重要。

PBRT 的视角:无穷远面光源与环境光重要性采样(PBRT 4e 12.5)

上文是实时 IBL 的预积分路线(预滤波、split sum、球谐);PBRT 走采样路线:把环境贴图当作包围场景的无穷远面光源,在路径追踪中直接对它重要性采样,结果无偏,可见性(遮挡)由阴影光线自动处理。

三种实现

  • UniformInfiniteLight:常数亮度。若调用方会做 BSDF 采样并用 MIS(allowIncompletePDF 为真),它不生成样本、PDF 返回 0:此时被积函数为 c∫f∣cos⁡θi∣dωic\int f|\cos\theta_i|d\omega_i,BSDF 采样已足够好,而 MIS 在某一技术远优于其他时反而会增加方差(MIS 补偿,Karlík 等 2019)。否则均匀采样球面。
  • ImageInfiniteLight:图像采用等面积八面体参数化(见 球面几何与方向参数化),用 PiecewiseConstant2D 按像素值采样,单位正方形到球面的换元因子为常数 1/(4π)1/(4\pi)。另建一份补偿分布:每个像素权重减去平均值(小于 0 则截为 0),allowIncompletePDF 为真时使用,只在亮区采样,暗区交给 BSDF 采样。书中图 12.18(晨光天空,32 spp):按图像采样比均匀采样 MSE 低 38,000 多倍,补偿分布再好 1.52 倍,耗时几乎相同。功率 = 像素平均亮度 × 4π4\pi × 场景包围球半径圆盘面积。
  • PortalImageInfiniteLight(Bitterli 等 2015):室内场景只能通过窗户看到天空时,普通环境采样会把大量样本投向被墙挡住的太阳。用户指定一个四边形"门户",光源改用与门户边对齐的坐标系和整流 (rectified) 参数化 (α,β)=(arctan⁡xz,arctan⁡yz)(\alpha,\beta)=(\arctan\frac{x}{z},\arctan\frac{y}{z}):从任一点看门户四角,相邻角只差一个坐标,所以可见区域在图像上永远是矩形,可以用 WindowedPiecewiseConstant2D(附录 A.5.6)只在该窗口内采样。等距柱状、等面积映射乃至"归一化后取 xyxy"都破坏这一性质。构造时把等面积图双线性重采样成整流图(未做空间变化滤波,可能混叠);采样分布预乘每像素的换元因子,使样本权重更均匀。Le() 对门户外的方向返回 0,防止几何漏洞造成漏光。书中图 12.19 水彩房间场景 MSE 降低 2.82 倍。多门户见 Ogaki 2020(门户 BVH)。

与上文(RTR4)的对照

方面RTR4 实时 IBLPBRT 无穷远光源
积分方式预滤波 / split sum / SH,查表每帧蒙特卡洛重要性采样
遮挡需要 AO、反射探针等另行近似阴影光线精确
参数化立方体贴图为主等面积八面体;门户光源用整流参数化
偏差有(split sum 等近似)无偏,有噪声

延伸阅读:Blinn–Newell 1976 提出环境贴图;Miller–Hoffman 1984 首次用任意环境图照明漫反射和光泽物体;Debevec 1998 拍摄真实环境;Unger 等 2003/2008 的入射光场把位置也纳入;Subr–Arvo 2007b 计入余弦并只在法线半球采样;Conty Estevez–Lecocq 2018 做 BSDF × 环境图乘积采样。

原书问题(12.5.3,已解码网页 SVG 并数值验证)

书中把门户参数化的换元因子写作 d(u,v)dω=π2(1−ωx2)(1−ωy2)ωz.\frac{d(u,v)}{d\omega}=\pi^2\frac{(1-\omega_x^2)(1-\omega_y^2)}{\omega_z}. 右边实际是 dω/d(u,v)d\omega/d(u,v)(单位 (u,v)(u,v) 面积对应的立体角),左边应倒过来。推导:令 a=x/z,b=y/za=x/z,b=y/z,dω=da db(1+a2+b2)3/2d\omega=\frac{da\,db}{(1+a^2+b^2)^{3/2}},du dv=da dbπ2(1+a2)(1+b2)du\,dv=\frac{da\,db}{\pi^2(1+a^2)(1+b^2)},而 1−ωx2=1+b21+a2+b21-\omega_x^2=\frac{1+b^2}{1+a^2+b^2} 等,得 dωd(u,v)=π2(1−ωx2)(1−ωy2)ωz\frac{d\omega}{d(u,v)}=\pi^2\frac{(1-\omega_x^2)(1-\omega_y^2)}{\omega_z}。笔者在 (u,v)=(0.3,0.6)(u,v)=(0.3,0.6) 处用有限差分求得 ∥∂uω×∂vω∥=7.9858\|\partial_u\omega\times\partial_v\omega\|=7.9858,与该式的 7.9858 一致。pbrt-v4 代码中变量名 duv_dw 沿用了这个错误的名称,但用法是 pdf = mapPDF / duv_dw,即 pω=puv/dωd(u,v)p_\omega=p_{uv}\big/\frac{d\omega}{d(u,v)},是正确的;正文"把 d(u,v)/dωd(u,v)/d\omega 计入采样分布"同理应理解为每像素立体角。

  • 第 12 章参考文献把 Bashford-Rogers 等 "Importance driven environment map sampling" 标为 2013 年、IEEE TVCG 20(6), 907–18。Crossref(DOI 10.1109/TVCG.2013.258)显示卷期页码正确,正式刊期为 2014 年 6 月;2013 是在线优先发表年份(DOI 中的 2013 即此),引用正式卷期时应写 2014。(已核实,原"存疑"撤销。)

LearnOpenGL 的视角:辐照度立方体与 Split Sum 镜面 IBL(PBR / IBL)

来源:Diffuse irradiance、Specular IBL;摘录 PBR — IBL Diffuse irradiance、PBR — IBL Specular。与上文 RTR split-sum / 预滤波立方体对照。

漫反射辐照度

环境 HDR(常 equirect)先转立方体;对每个法线方向半球卷积得 irradiance map,运行时 kD * albedo/π * irradiance(N)(再乘 AO)。需线性 + HDR 工作流。

镜面 Split Sum

Epic 把镜面积分拆成:① 按粗糙度预滤波环境立方体(mip ≈ roughness;重要性采样 GGX);② BRDF 积分查找表(NdotV × roughness → 缩放与偏置,与 F 组合)。运行时:prefilteredColor * (F*brdf.x + brdf.y)。注意 mip 选择、立方体无缝与能量。链 环境贴图、局部反射探针、蒙特卡洛积分与重要性采样。

GPU Gems 的视角:过滤重要性采样做动态光泽 IBL(GPU Gems 3 第 20 章)

来源:Colbert & Křivánek《GPU-Based Importance Sampling》;摘录 Chapter 20. GPU-Based Importance Sampling — Colbert, Křivánek。与上文 split-sum / 预滤波立方体对照:本章是运行时蒙特卡洛,材质与环境可贴图即时更换。

按 BRDF(如归一化 Phong)PDF 采方向,估计量用 1/pdf1/\mathrm{pdf} 加权。用 Hammersley 拟随机序列作常量(确定性→走样)。关键技巧按 PDF 选 mip:样本立体角 Ωs=1/(N⋅pdf)\Omega_s=1/(N\cdot\mathrm{pdf}),再换成环境图 mip 层级;PDF 小时模糊更大区域,PDF 大时取细节。环境图用双抛物面(缩放约 1.2)而非立方体,因立方体面各自做 mip 会出接缝。漫反射仍用球谐。实践:复杂几何约 24 样本、光滑球约 40 即可观感可接受。与预滤波 IBL 比:无需长时间预处理,适合材质/灯光设计工具;固定游戏场景仍常选 split-sum。

GPU Gems 的视角:实时动态辐照度环境图(GPU Gems 2 第 10 章)

来源:Gary King《Real-Time Computation of Dynamic Irradiance Environment Maps》;摘录 Chapter 10. Real-Time Computation of Dynamic Irradiance Environment Maps — Gary King。把环境图卷积成漫反射/镜面辐照度图搬到 GPU,动态灯光与物体也能驱动「近似全局光照」。

环境图可视作大量方向光;暴力漫反射卷积 O(MN)O(MN)(64³→32³ 立方体约 1.5 亿次)。漫反射辐照度随法线变化极慢,频域(球谐)把代价降到 O(MK+KN)O(MK+KN):l=2l=2 仅 9 个系数就够漫反射,镜面约 s\sqrt{s}。卷积定理:空间卷积 = 频域对应系数相乘;BRDF 的球谐系数可预计算。

PS 3.0 两遍:空间→频域用预计算 Ylm dωY_{lm}\,d\omega 权重瓦片(VPOS 映射输出像素到瓦片);卷积+逆变换用 AlmYlmA_{lm}Y_{lm} 权重,按立方体面迭代。输入可用双抛物面图。演示在 6800 GT 上辐照度重建 >300 FPS。阴影难做——与 环境光遮蔽(同书 Ch14)搭配。球谐系数还可线性插值/相加,混合多套光照环境。与 Gems3 重要性采样 IBL 对照:本章是低频 SH 预滤波动态更新;后者是高光 BRDF 蒙特卡洛采样。

  1. realtime_rendering_4ed.pdf 第 10 章 Local Illumination
  2. PBRT 4e source excerpt: chapter 12 (Light Sources)
  3. Pharr, Jakob, Humphreys《Physically Based Rendering: From Theory to Implementation》第 4 版(MIT Press, 2023)第 12 章 12.5 节、延伸阅读,pbr-book.org/4ed/Light_Sources
  4. Chapter 20. GPU-Based Importance Sampling — Colbert, Křivánek
  5. developer.nvidia.com/gpugems/gpugems3/part-iii-rendering/chapter-20-gpu-based-importance-sampling
  6. Chapter 10. Real-Time Computation of Dynamic Irradiance Environment Maps — Gary King
  7. developer.nvidia.com/gpugems/gpugems2/part-ii-shading-lighting-and-shadows/chapter-10-real-time-computation-dynamic
  8. PBR — IBL Diffuse irradiance
  9. PBR — IBL Specular
  10. learnopengl.com/PBR/IBL/Diffuse-irradiance
  11. learnopengl.com/PBR/IBL/Specular-IBL

相关页面

图形学环境贴图Environment Mapping把球面函数记录在一张或多张图像里、用纹理查找来解码,就是环境贴图。它比其他球面表示占内存多,但解码简单快速,能表达任意高频和任意动态范围。最基本的用法是反射贴图:假设镜面 BRDF,用反射视线向量查表。本页比较经纬度、球面、立方体、双抛物面和八面体等投影。图形学蒙特卡洛积分与重要性采样Monte Carlo Integration & Importance Sampling渲染方程里的半球积分没有闭式解,只能数值积分。蒙特卡洛积分在定义域里随机取样、按概率密度加权求平均,期望值正好等于积分真值,误差随样本数 N 按 1/\sqrt{N} 下降,而且与积分维数无关,所以成了光线追踪类渲染的数学基础。降低误差的主要手段是让采样分布接近被积函数的形状,也就是重要性采样(GEA4 卷 II 12.6.2、12.6.4)。图形学球面函数基Spherical Basis Functions要让环境光照超越常数项,需要表示"每个入射方向的辐亮度"这样的球面函数。把函数转成某种表示叫投影,从表示求值叫重建。本页对比表格形式、环境立方体、球面高斯、球谐函数,以及专门为半球设计的 AHD、Half-Life 2 基和 H-basis。图形学面光源Area Lights真实光源从来不是点。面光源要求对光源所张立体角 \omegal 积分 BRDF,实时渲染倾向于用闭式解或近似而不是多条光线取平均。主要做法有:Lambert 表面的矢量辐照度与包裹光照、光泽表面的粗糙度修正和"最具代表性的点",以及最准确的线性变换余弦 (LTC)。图形学微表面理论Microfacet Theory微表面理论把小于像素的微几何建模为大量平坦微面元,用法线分布函数 (NDF) D(\mathbf{m}) 描述其朝向统计,用遮蔽函数 G1 和遮蔽-阴影函数 G2 描述可见性,并据此推导宏观 BRDF。镜面反射时每个微面元是完美菲涅耳镜,积分退化为在半向量处求值,得到 FG2D/(4|\mathbf{n}\cdot\mathbf{l}||\mathbf{n}\cdot\mathbf{v}|)。GGX 分布配合高度相关的 Smith G2 是当今影视和游戏最常用的组合;该框架忽略微面元间的多次反射,可用补偿项弥补。本页对应 RTR4 9.6–9.8 节。图形学菲涅耳反射Fresnel Reflectance菲涅耳方程描述光在两种物质的平坦界面上反射的比例 F,它取决于入射角和两侧折射率:垂直入射时为材质特有的 F0(特征镜面色),掠射时趋于 1。实时渲染用以 F0 为参数的 Schlick 近似。电介质 F0 低且无色,金属 F0 高且常带色,半导体介于其间;金属度参数化利用了这一点。光从物体内部射向表面时还可能发生全内反射。本页对应 RTR4 9.5 节。图形学纹理过滤与 MipmapTexture Filtering & Mipmap纹理在屏幕上被放大时需要插值,被缩小时一个像素覆盖许多纹素,必须预先滤波才能避免混叠。放大用最近邻、双线性或双三次;缩小的主流方案是 mipmap + 三线性插值,斜视角下用各向异性过滤减少过度模糊。注意:过滤纹理值只在输入与着色结果线性相关时等价于过滤最终颜色。图形学基于物理的着色Physically Based Shading基于物理的着色从光与物质交互的物理出发,用 BRDF 和反射方程计算表面沿视线方向射出的辐射亮度:镜面项来自微表面理论与菲涅耳反射,漫反射项来自局部次表面散射,布料、波动光学与分层材质再作扩展。本页是 RTR4 第 9 章的总览,并收录该章第 9.13 节的材质混合与材质过滤(镜面抗锯齿)。图形学漫反射与次表面 BRDFDiffuse & Subsurface BRDF Models漫反射项模拟不透明电介质中的局部次表面散射(金属没有)。其颜色是次表面反照率 \rho{ss};选用光滑表面还是粗糙表面模型,取决于表面不规则与次表面散射距离的相对大小,而不只是表面有多粗糙。光滑表面模型从 Lambert 出发,通过与镜面项的能量权衡改进;粗糙表面模型有 Disney 漫反射、Oren-Nayar、Gotanda、Hammon 等。本页对应 RTR4 9.9 节。图形学环境光遮蔽Ambient Occlusion环境光遮蔽 (AO) 是余弦加权后半球上未被遮挡的比例,用来在光照缺乏方向变化时仍给出形状线索(缝隙变暗)。它由 Landis 在 ILM 为《珍珠港》开发,可离线烘焙,也可在物体空间或屏幕空间动态计算(SSAO、HBAO、GTAO 等)。AO 适合漫反射和平滑环境光,不适合点光源或小面光源的可见性(RTR4 11.3 节)。图形学局部反射探针Localized Reflection Probes镜面全局光照需要高角分辨率但只关心反射方向附近的小立体角。实时中最流行的方案是在场景中稀疏放置局部环境贴图(反射探针),配合反射代理体做视差校正;它实现简单、快、美术可控,但有拉伸和漏光问题。另有体素锥追踪和平面反射等替代方案(RTR4 11.6–11.6.4 节)。图形学半透明表面与折射Translucent Surfaces & Refraction玻璃、水、红酒等高吸收、低散射材质:覆盖率 \alpha 与透射率 Tr 是两回事——前者遮挡背景,后者按波长过滤背景。厚度变化时按 Beer-Lambert 定律计算彩色透射;折射可用环境贴图或屏幕空间扰动近似,粗糙表面按粗糙度模糊背景;焦散则用动画贴图、光线光栅化或图像空间光子溅射近似(RTR4 14.5 节)。综合角色渲染Character Rendering角色是游戏中最受关注、技术最集中的资产。本页按"动起来 → 表面细节 → 材质着色 → 特殊材质(皮肤、毛发、布料)→ 光照与阴影 → 性能"的顺序,把 wiki 中相关概念页串成一套角色渲染方案的地图。每一层只给出要点与取舍,细节见链接页。图形学着色模型与光源Shading Models & Light Sources着色模型描述物体颜色如何随表面朝向、观察方向和光照变化。光源通过两个参数与着色模型交互:指向光源的方向 \mathbf{l} 和光的颜色 \mathbf{c}{\text{light}}。方向光、点光源、聚光灯的区别就在于这两个量如何随场景变化;距离衰减和方向衰减函数的选择同时影响画面与性能。图形学方向遮蔽Directional Occlusion方向遮蔽用比单个 AO 标量更有表现力的方式记录"哪些方向被挡住",例如地平线角、可见性锥(环境孔径)、球面有向距离或球谐。它主要用于面光源和环境光照的软遮蔽,以及凹凸细节自阴影、超大地形等阴影贴图分辨率不够的场合;对点光源,专门的阴影技术质量更好(RTR4 11.4 节)。游戏数学球面几何与方向参数化Spherical Geometry & Direction Parameterizations渲染中大量计算发生在单位球面上:方向就是球面上的点,一组方向就是球面上的一块区域。本页按 PBRT 4e 3.8 节整理立体角、球面多边形面积、三种球面参数化(球坐标、八面体编码、等面积映射)以及用于剔除光源的方向锥,并附原书一处公式问题。图形学多光源采样与光源 BVHMany-Light Sampling & Light BVH场景有成百上千个光源时,不可能在每个着色点对所有光源做直接光照。利用求和的蒙特卡洛估计 \sumi fi\approx fj/p(j),每次只随机选一个(或几个)光源并除以其概率即可无偏。选择概率可以均匀、按功率,或随着色点变化——后者需要一棵把光源聚合起来的层次结构(光源 BVH)。本页对应 PBRT 4e 12.6 节,并对照实时渲染的分簇/分块光源剔除。游戏数学随机变量变换与逆变换采样Random Variable Transforms & Inversion Sampling蒙特卡洛估计器要求能从指定的概率密度里抽样。最基本的工具是逆变换法 (Inversion Method):对 CDF 求逆,把 [0,1) 上的均匀随机数映射成目标分布;更一般地,随机变量经过一一映射后的密度由导数(多维时是雅可比行列式)决定;多维非独立分布则先采边缘密度、再采条件密度。本页按 PBRT 第 4 版 2.1.1、2.3、2.4 节整理,是 蒙特卡洛积分与重要性采样 的数学部分。游戏美术分层渲染与合成 PassLayered Rendering & Passes现以第 3 版 Ch11 为准。 Layers(按物体/组)与 Passes(按贡献:diffuse/spec/reflection/shadow/ambient/occlusion/beauty/lighting/GI/mask/depth)支撑后期控制;含实景底板匹配与合成色彩管理。游戏侧类比 GBuffer/AOV。游戏美术灯光工作流与光源类型Lighting Workflow & Light Types现以第 3 版 Ch2 为准。 3D 少有「美丽意外」——要控制流程(何时开灯、反馈环、命名与版本)、选对光源类型,并用衰减、diffuse/spec 分离、light linking、cookie 等手段细化。第 3 版新增 Physically Based Lights(IES/光度学灯) 实践。游戏美术PBR 灯光与渲染策略PBR Lighting StrategiesDinur Ch11:从扫描线到路径追踪的语境下,给出 PBR 灯光实用策略——尺度、日景/室内、天空色、人造光、IBL/光度学灯等。Ch12 BRDF 模块与 RTR4 重叠处只保留制作结论并双向链接图形学 PBS。

被这些页面引用2 篇

输入关键词开始搜索

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