Ambient Occlusion(环境光遮蔽

news/2025/10/8 1:11:48/文章来源:https://www.cnblogs.com/hshy/p/19129051

Ambient Occlusion(环境光遮蔽

1️⃣ AO(Ambient Occlusion)概念

Ambient Occlusion(AO) 是一种全局光照的近似技术,用来模拟环境光被物体遮挡的效果。

  • 环境光(Ambient Light):来自四面八方的漫反射光,不来自特定光源。

  • 遮蔽(Occlusion):物体之间相互遮挡,使某些表面收到的环境光减少。

效果

  • 凹陷、角落、接缝处看起来更暗

  • 外凸、暴露面更亮

  • 提升场景深度感和真实感

例子

  • 房间角落比中心暗

  • 树叶下方比顶端暗

  • 模型接缝、折角处暗

AO 不直接依赖光源,而是基于几何形状之间的遮挡关系计算光照衰减。


2️⃣ AO 的实现方式

  1. 预计算 AO(Precomputed AO / Lightmap)

    • 在建模或烘焙阶段计算 AO 并存储到纹理(Lightmap)

    • 运行时直接贴图渲染,性能开销低

    • RenderWare 的 AO 插件就是这种方式

  2. 屏幕空间 AO(SSAO, Screen Space Ambient Occlusion)

    • 基于摄像机视角的深度缓冲计算

    • 实时 AO,适合动态场景,但消耗 GPU

  3. 射线追踪 AO

    • 精确模拟遮挡关系

    • 开销大,适合渲染静态场景或电影级渲染


3️⃣ 在 RenderWare 中 AO 的作用

看你贴的 RpAmbOcclMapPluginAttach

  • Atomic 扩展:存储每个对象的 AO 数据

  • Geometry 扩展:存储 AO UV 和标记是否被 Lightmap 覆盖

  • World 扩展:存储场景中所有 AO Lightmap 列表

  • Material 扩展:存储 AO 相关材质信息(光照衰减系数等)

原理

 
场景几何 -> AO 计算 -> AO Lightmap -> 渲染时叠加到材质 -> 角落更暗,凸起更亮

🔹 总结

  • AO = Ambient Occlusion(环境光遮蔽)

  • 作用是让场景凹凸感更明显,提高真实感

  • RenderWare 通过插件扩展对象(Atomic/Geometry/World/Material)来存储和管理 AO 数据

  • AO 数据通常以 Lightmap 纹理 形式保存

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专门做app的原型网站揭阳网站建设公司哪个好

查看域控之间的复制状态:repadmin /showrepl手动进行同步复制:repadmin /syncall更多的命令参考网址:http://technet.microsoft.com/zh-tw/library/cc778305.aspx转载于:https://blog.51cto.com/281816327/1599269

网站整合推广找网站推广

康威生命游戏 康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。 生命游戏有几个简单的规则&#xff1a; 细胞有两种状态&#xff0c;存活或死亡&#xff0c;每个细胞以自身为中心与周围的八格细胞互动。 对于存活的细胞&#xff1a; 当周围的细胞过少(<2)或…

[LeetCode] 2379. Minimum Recolors to Get K Consecutive Black Blocks

You are given a 0-indexed string blocks of length n, where blocks[i] is either W or B, representing the color of the ith block. The characters W and B denote the colors white and black, respectively. Y…

自己的网站怎么做关键词优化域名查询ip解析

内存锁定(memory locking)是确保进程保留在主内存中并且免于分页的一种方法。在实时环境中&#xff0c;系统必须能够保证将进程锁定在内存中&#xff0c;以减少数据访问、指令获取、进程之间的缓冲区传递等的延迟。锁定内存中进程的地址空间有助于确保应用程序的响应时间满足实…

自己做的网站怎么绑域名福州交通建设投资集团网站

导航一、什么是服务网关二、业界常见网关组件三、Spring Cloud Gateway四、Gateway 快速入门4.1 创建 gateway 服务4.2 添加 gateway 依赖和 nacos 依赖4.3 配置路由信息4.4 测试路由转发五、Gateway 执行流程六、Gateway 断言6.1 内置路由断言工厂6.2 自定义路由断言工厂七、G…

阿土伯网站做产品推广咋样怎么.做网站

我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下&#xff0c;build_tools就是我的编译工具&#xff0c;则有如下三种方法来设置环境变量&#xff1a;1、直接用export命令&#xff1a;#export PATH$PATH:/opt/au1200_rm/build_tools/bin查看是否已经设好&a…

nodejs网站开发实例深圳系统app开发

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 公共云的采用如今持续增长&#xff0c;到今年年底&#xff0c;预计将有83%的企业工作负载都在云平台中。云计算增加的灵活性和…

个人网站名字北京做vr网站

直接回答您的问题&#xff1a;不,您不能将常规属性标记为只读.如果你想设置基本类型(数组除外),那将永远不会改变,你应该使用常量const QWE 666;这对于对象和数组不起作用.我看到两个(让我们说)“解决方案”>使用Getterprivate $qwe;public function getQwe() { return $th…

GCC背后的故事C程序常量变量的地址分配

1.GCC背后的故事 (一)准备工作 我们先打开Ubuntu系统,用mkdir命令创建一个新的文件夹来存放程序文件。然后通过vim命令编写一个简单的c语言程序文件helloworld.c。(二)编译过程 1.预处理 预处理过程的完整流程:字…

RenderWare 会根据摄像机距离选择合适的 LOD。

RenderWare 会根据摄像机距离选择合适的 LOD。1️⃣ 基本概念Atomic(RpAtomic):RenderWare 最小渲染单位,可以理解为一个模型实例。LOD(Level of Detail):根据距离或屏幕占比,选择不同精度的几何体渲染,优化性…

网站快速注册ui设计流程培训网站

Widget widget存储视图的配置信息&#xff0c;没有状态所以是不可变的&#xff0c;每个绘制周期&#xff08;帧率&#xff09;&#xff0c;widget都不会刷新&#xff0c;而是会被重建。 StatelessWidget和StatefulWidget - - - 怎样判断是需要更新element&#xff0c;还是替换…

LOD 的概念

LOD 的概念1️⃣ LOD 的概念 LOD(Level of Detail,细节等级) 是计算机图形学中常用的一种性能优化技术,其核心思想是:根据物体与摄像机的距离、屏幕占比或视角的重要性,动态选择不同精度的模型或材质,以减少渲染…

网站模板之家免费模板大流量网站 优化

部分网站通过Http头中的User-Agent判断浏览器类型&#xff0c;如果是手机&#xff0c;显示手机版页面内容&#xff0c;如果是普通PC浏览器&#xff0c;显示电脑版网页内容。 因此谷歌Chrome浏览器&#xff0c;可以通过修改User-Agent和页面分辨率模拟手机浏览器访问网页。如iPh…

重庆做腋臭骑士网站做谷歌推广一个月赚10万

本文介绍的是 PointNet 作者的博士论文&#xff1a;3D场景理解中的点云深度学习。从上图可以看到&#xff0c;整个博士论文主要贡献有两块&#xff1a;一是点云深度学习的网络架构&#xff08;PointNet 和 PointNet&#xff09;&#xff1b;二是在3D场景理解中的应用&#xff0…

龙芯是被gcc正儿八经支持的

截图来自皮卡鱼的Makefile, which应该是从著名的国际象棋引擎Stockfish改过来的:修改最底层的棋盘棋子表示,搜索和NNUE部分不用大改。 AI说:43MB的NNUE文件,其模型规模可能属于轻量级范围(约数百万参数),对应的…

python程序设计课程练习题

前言 这是一份python程序设计课程的练习答案,题目来源于https://www.dotcpp.com/team/2526 各位同学,我想对同学们说的是比起死记硬背代码,老师更希望同学们能锻炼自己的思维逻辑,开发提升智力,切记不要死记硬背代…

世界对象是 RenderWare 场景的核心

世界对象是 RenderWare 场景的核心enderWare 世界(World)模块的 API 声明,主要提供了操作场景世界(RpWorld)、扇区(RpWorldSector)、以及全局/局部光源、材质、模型等的接口。下面帮你梳理它的用途和结构:1️⃣…

北京正规网站建设单价群晖自行安装wordpress

文章目录1. 题目2. 解题1. 题目 描述 给你一个整数数组 nums 和一个正整数 threshold &#xff0c;你需要选择一个正整数作为除数&#xff0c;然后将数组里每个数都除以它&#xff0c;并对除法结果求和。 请你找出能够使上述结果小于等于阈值 threshold 的除数中 最小 的那个…

IEEE754浮点格式与解析

0 前言 在完成学校RM嵌入式软件组的作业时遇到了一个问题:将0x00,0x00,0x20,0x40这四个十六进制数据根据一定规则变为浮点数2.5f,我询问AI得知这与IEEE754的浮点数存储规则有关,这篇随笔就来记录一下。 1.IEEE 754简…

国庆 Day3 强基数学

复数、不等式、方程、代数恒等变形……复数 四种基本表示形式:代数、三角、向量(几何法)、指数(基本同三角)。 一个重要公式:\(|z|^2=z\cdot z(共轭)\)。Trick 1:利用 \(-1=i^2\) 进行代数变形。Eg:\(z^2-2z+2…