实测照片数据揭示:屏幕空间环境光遮蔽(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给出根据点列表和图像文件名生成图表的代码。

相关新闻

Windows系统文件dwmredir.dll丢失找不到问题解决

Windows系统文件dwmredir.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/10/15 8:41:00 阅读更多 →
口腔清洁技术优化:补齐黏膜清洁盲区,实现全口口腔稳态养护

口腔清洁技术优化:补齐黏膜清洁盲区,实现全口口腔稳态养护

在日常口腔护理场景中,多数人的清洁逻辑存在明显短板:过度聚焦牙齿菌斑清洁,完全忽略口腔软组织的环境维护。长期沿用单一刷牙、漱口的清洁模式,即便严格执行清洁频次,依然会出现口腔黏腻、口气反复、口腔状态不稳定等…

2026/10/13 7:30:39 阅读更多 →
你的营业执照没写这项业务,评审专家说:废标!这样合理么?

你的营业执照没写这项业务,评审专家说:废标!这样合理么?

你注册的是"信息技术服务",投了一个"数据治理"项目。评审专家翻到你的营业执照,眉头一皱:经营范围里没有"数据治理"四个字,超范围经营,投标无效。 你急了:数据治理不就是信息…

2026/10/13 7:52:21 阅读更多 →

最新新闻

云开发+短信API:零成本搭建员工生日自动提醒系统

云开发+短信API:零成本搭建员工生日自动提醒系统

每年一到员工生日这种日子,行政和HR就开始手忙脚乱。翻Excel、找手机号、挨个发祝福语,还要赶在当天发出,稍微一忙就会漏掉一两个。之前我们团队就是这么干的,直到有一次连续漏了三个同事的生日,被吐槽“公司没有人情味…

2026/10/15 20:02:24 阅读更多 →
Arcpy批量导出地图脚本:从手动出图到自动化流水线

Arcpy批量导出地图脚本:从手动出图到自动化流水线

1. 从手动一张张出图到批量流水线:这个脚本到底解决什么问题如果你做过GIS制图,大概率经历过这样的场景:手头有一份行政区划图层,领导要求按每个乡镇出一张专题图,一共几十上百个。打开ArcMap或ArcGIS Pro,…

2026/10/15 20:02:24 阅读更多 →
离散数学笔记高效整理法:五大板块与复习避坑指南

离散数学笔记高效整理法:五大板块与复习避坑指南

简介:这是一份系统梳理离散数学核心知识点的PDF笔记,围绕数理逻辑、集合论、数论、计数原理、概率论、关系论、代数系统与图论八大板块展开,适合高校本科生、考研复习者及程序员巩固理论基础。笔记从命题逻辑的永真式与范式讲起,依…

2026/10/15 20:02:24 阅读更多 →
python代码学习1

python代码学习1

摘要:f的用法、print中可用的操作、for、列表、ASCII编码一、f的用法:在输出里调整格式1.直接嵌入变量/表达式a 18 print(f"今年{a}岁") # 今年18岁2.保留有效数字pi 3.1415926 print(f"{pi:.2f}") # 3.14 print(f"{pi…

2026/10/15 20:02:24 阅读更多 →
IIS 6.0离线安装包:含全部DLL与注册表修复的SP2兼容部署方案

IIS 6.0离线安装包:含全部DLL与注册表修复的SP2兼容部署方案

简介:本资源为IIS 6.0完整安装支持包,面向Windows Server 2003系统管理员、传统Web运维人员及遗留系统维护开发者,专为解决IIS 6.0原生安装因缺失关键DLL导致失败或功能异常的典型问题。压缩包内含263个文件,涵盖19个核心DLL&…

2026/10/15 20:02:24 阅读更多 →
VMware复制粘贴失效?从VMware Tools到客户机隔离全排查指南

VMware复制粘贴失效?从VMware Tools到客户机隔离全排查指南

你是不是也遇到过这样的场景:虚拟机里装好了系统,想在宿主机和虚拟机之间复制一段代码、一个下载链接、一小段配置,结果CtrlC、CtrlV按了半天一点反应都没有;换成拖放文件,鼠标倒是能移过去,文件却死活拖不…

2026/10/15 20:01:22 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →