实测照片数据揭示:屏幕空间环境光遮蔽(SSAO)渲染效果是否失真?

发布时间:2026/7/22 23:21:12

实测照片数据揭示:屏幕空间环境光遮蔽(SSAO)渲染效果是否失真? 角落不该是那样的关于屏幕空间环境光遮蔽游戏开发者对屏幕空间环境光遮蔽SSAO情有独钟甚至会做出疯狂之事。业余开发者截图中凸角在角落附近更亮专业开发者的游戏里会出现怪异光晕和难看瑕疵。即便避免这些问题采用 SSAO 的游戏画面仍不对劲房间角落常异常黑暗。作者认为这是因为人们觉得房间角落本就暗并据此编写代码产生了不真实效果。具体而言SSAO 在这些情况下失效由四个因素导致使用 SSAO 而非环境光遮蔽AO带来的近似误差使用 AO 而非辐射度算法带来的近似误差将 SSAO 暗化效果应用于所有光照而非仅环境光产生的误差调优误差即 AO 效果的启发式权重设置过强。角落不该是那样的大多数时候展示的都是照片非渲染图。照片用佳能 5D Mk II 拍摄导出为 JPEG 格式曝光时间 1/80 秒到 1/8 秒不等。原始大尺寸 JPEG 图片在 Adobe Photoshop 中每个维度约缩小为原来的四分之一缩小前用 Photoshop 中 16 像素宽的高斯模糊对色度通道进行模糊处理以减少长曝光图片中的色度噪点。一个显著变暗的角落作者在公寓找到一个看似典型 SSAO 渲染效果的角落但实际并非如此。墙壁c无法接收光线墙壁d有较多光线照射。墙壁d左侧边缘变暗主要是左上方屏幕外光线产生的柔和阴影而非 AO。墙壁b和墙壁c之间左侧角落虽投下阴影但因离光源近阴影扩散成大片柔和影子。墙壁d顶部边缘是阴影因光源嵌入式光线从凹槽反射凹槽边缘使墙壁顶部无法接收光线。墙壁c右侧边缘以及天花板a靠近墙壁d边缘处的变暗效果可能是朗伯点积引起的间接光照效果被夸大了。墙壁c和天花板a之间的边缘靠近时会变暗但其变暗程度及是否为心理错觉有待确定。相机可能无法真实感知但至少我们能绘制图表照片声称采用 sRGB 色彩空间但转换后可能无法得到线性光值存在复杂色调映射处理难以确定照片反映现实的程度。不过可了解对照片的感知通过查看边缘像素值并绘图能直观看到边缘两侧表面靠近边缘时的变暗情况。例如对穿过c和d之间边缘的线采样绘图左侧靠近边缘时光照变暗更快右侧呈线性上升边缘处有明显下降原因不明。a和d之间边缘图表类似a和c之间边缘效果更接近“现实世界的 AO”靠近边缘处明显变暗但程度降低中心无下降。比较图表需谨慎因线段透视缩短情况不同图表会自动缩放。没有明显柔和阴影的角落样本展示一张包含三个角落的图片分别分析左侧、中间、右侧角落。左侧角落唯一直射光来自左侧现实中较暗天花板靠近边缘稍变暗墙壁仍亮。中间角落长曝光照片亮度适中图表比预期平坦很多变暗效果可能是马赫带效应。右侧角落主要是间接光照后墙效果轻微左侧墙壁和天花板效果明显但因透视缩短被增强。房子里最暗的房间黑暗浴室边缘有一些变暗但程度不大。放大近景拍摄后查看具体数值不同图表对比可能因线段在世界空间中长度不同导致差异。更多角落离光源近的角落边缘亮度衰减部分是直射光衰减无额外需 SSAO 模拟的边缘亮度衰减。当前打字位置上方的角落不像糟糕的 AO 暗化效果右侧墙壁因朝向光源更亮左侧墙壁在显示器边界上方因另一盏灯阴影明显变暗基本无角落变暗效果只有左侧墙壁靠近天花板的线有明显变暗效果但使用 AO 会让其他部分更不真实。最后一件事查看天花板和墙壁之间的边缘光源在右侧向左移动光线变暗环境光影响增大。图表显示天花板边缘暗化效果增强墙壁呈现相反效果。我的观点墙壁之间的凹边界处存在边缘暗化效果但很微妙只在某些情况下出现。只有相对表面因其他原因在边缘处明显变暗时才会出现强烈边缘暗化效果这可能并非 SSAO 所呈现的效果。附录 A给出根据点列表和图像文件名生成图表的代码。

相关新闻