Ambient Occlusion(环境光遮蔽
1️⃣ AO(Ambient Occlusion)概念
Ambient Occlusion(AO) 是一种全局光照的近似技术,用来模拟环境光被物体遮挡的效果。
-
环境光(Ambient Light):来自四面八方的漫反射光,不来自特定光源。
-
遮蔽(Occlusion):物体之间相互遮挡,使某些表面收到的环境光减少。
效果:
-
凹陷、角落、接缝处看起来更暗
-
外凸、暴露面更亮
-
提升场景深度感和真实感
例子:
-
房间角落比中心暗
-
树叶下方比顶端暗
-
模型接缝、折角处暗
AO 不直接依赖光源,而是基于几何形状之间的遮挡关系计算光照衰减。
2️⃣ AO 的实现方式
-
预计算 AO(Precomputed AO / Lightmap)
-
在建模或烘焙阶段计算 AO 并存储到纹理(Lightmap)
-
运行时直接贴图渲染,性能开销低
-
RenderWare 的 AO 插件就是这种方式
-
-
屏幕空间 AO(SSAO, Screen Space Ambient Occlusion)
-
基于摄像机视角的深度缓冲计算
-
实时 AO,适合动态场景,但消耗 GPU
-
-
射线追踪 AO
-
精确模拟遮挡关系
-
开销大,适合渲染静态场景或电影级渲染
-
3️⃣ 在 RenderWare 中 AO 的作用
看你贴的 RpAmbOcclMapPluginAttach
:
-
Atomic 扩展:存储每个对象的 AO 数据
-
Geometry 扩展:存储 AO UV 和标记是否被 Lightmap 覆盖
-
World 扩展:存储场景中所有 AO Lightmap 列表
-
Material 扩展:存储 AO 相关材质信息(光照衰减系数等)
原理:
🔹 总结
-
AO = Ambient Occlusion(环境光遮蔽)
-
作用是让场景凹凸感更明显,提高真实感
-
RenderWare 通过插件扩展对象(Atomic/Geometry/World/Material)来存储和管理 AO 数据
-
AO 数据通常以 Lightmap 纹理 形式保存
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931017.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!