静态渲染之Ambient Occlusion


Ambient Occlusion Wikipedia


问题描述:

对于3D游戏,AO作为全局光照的一部分已经成为很多3D引擎的标配,不管是静态还是SSAO。本文描述为在游戏开发后期为了提高整体效果而弥补的静态渲染的AO。

制作流程:

  • 按文档划分UV(正常应该按场景的区域还划分?)
  • 渲染生成AO贴图
  • 运行期使用AO贴图

一些要点:

  • 分UV,合并单个文档的Mesh为一个Mesh,然后转换为DX的标准Mesh,然后利用DX自带的UVAtlas来进行UV划分(UVAtlas分的UV并不是很好),UVAtlas中有很多参数需要注意.分好UV的Mesh,根据文档把第二套UV数据插入进去,保存Mesh以及文档.
  • 渲染生成AO部分参考这篇文章,对于非封闭的模型,美术又没有补面的,要做一些特殊处理.
  • 运行期AO贴图直接影响光照运算或者模拟乘上去(GameBryo的话直接放DarkMap通道来用了)

大专栏  静态渲染之Ambient Occlusionraft-ambient-occlusion">Minecraft Ambient Occlusion

ref:

  1. ambient-occlusion-for-minecraft-like-worlds
  2. Minecraft-Overviewer-lighting
  3. http://www.sea-of-memes.com/LetsCode35/LetsCode35.html
  4. minecraft-like-rendering-experiments-in-opengl-4
  5. https://github.com/mgoodfel/SeaOfMemes
  6. the-big-list-of-block-engines

每天进步一点点.



Please enable JavaScript to view the comments powered by Disqus.

原文地址:https://www.cnblogs.com/liuzhongrong/p/12000131.html

时间: 2024-10-16 14:03:51

静态渲染之Ambient Occlusion的相关文章

Ambient Occlusion

一般在光照模型中,ambient light的计算方法为:A = l * m,其中l表示表面接收到的来自光源的ambient light的总量,而m表示表面接收到ambient light后,反射和吸收的量.出于性能考虑,在计算光照时,我们是不考虑那些从场景中其他物体反弹过来的光的,因为通常我们认为这些光在场景中被发散和弹射许许多多次以至于最后从各个方向照射到物体上的量是相同的.所以ambient light所做的就是提亮物体,它没有任何真实的物理光照计算,所以它最终的渲染效果就是一个常量颜色:

TSSAO Temporal Screen-Space Ambient Occlusion (Unity3d 5 示例实现)

前提 环境光(ambient occlusion)是一种GI,其简化形式SSAO可以用“微量高效”来形容,消耗得很少,得到的效果很好.环 境光遮蔽(ambient occlusion)的本质是计算在一个点的半球面范围内有多少方向被阻塞(如下图1.2.1),然后根据它调整表面颜色.如果实时渲染使用的话非常消 耗,所以在游戏中一般都使用(screen-space ambient occlusion)SSAO.SSAO使用depth buffer来近似一个离散的场景(如下图1.2.2),从而获得固定的

GLSL实现Ambient Occlusion 【转】

http://blog.csdn.net/a3070173/archive/2008/11/04/3221181.aspx 相信使用OpenGl或DirectX3D的朋友都知道到固定功能管线在光照处理主要由环境光,散射光和镜面光构成,这样一个光照处理模型在被光 的地方将以统一的环境光进行着色,导致一种不自然的不真实效果.本文介绍的Ambient Occlusion方法将使用不当预计算的方式离线的生成模型的AO图,并在片元着色器中将对此AO图进行采样的结果与环境光和散射光效果进行相乘以适当 削弱环

Cesium源码剖析---Ambient Occlusion(环境光遮蔽)

Ambient Occlusion简称AO,中文没有太确定的叫法,一般译作环境光遮蔽.百度百科上对AO的解释是这样的:AO是来描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,可以解决或改善漏光.飘和阴影不实等问题,解决或改善场景中缝隙.褶皱与墙角.角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感.真实感,同时加强和改善画面明暗对比,增强画面的艺术性.AO简单来说就是根据周围物体对光线的遮挡程度,改变明暗效果.AO具体理论原理在网上都可以找到,感兴趣的可以去

Unity5 GI与PBS渲染从用法到着色代码

本文主要介绍Untiy5以后的GI,PBS,以及光源探头,反射探头的用法以及在着色器代码中如何发挥作用,GI是如何影响渲染的,主要分成三个部分,最开始说明PBS需要的材质与相应概念,二是Unity 里相应GI的操作,三是对应着色器代码的理解.如果没有特殊声明,所有操作与代码都是针对Unity5.3. PBS材质与概念 简单来说,PBS的优点不同的照明下获得一致的外观,更容易实现,更直观的参数. PBS材质概念: 1.albedo 反照率 反照率贴图定义漫反射的基本颜色,与原来的漫反射贴图相比,不

UE4 FBX静态网格物体通道

On this page: 概述 一般设置 支点 三角化 UV 贴图坐标 创建法线贴图 材质 碰撞 警告和注意事项 顶点颜色 导出网格物体 导入网格物体 静态网格物体LOD LOD设置 导出LOD 导入LOD... 概述 FBX导入通道中的静态网格物体支持使得将网格物体从3D应用程序中导入到虚幻引擎4中变得更加容易简单.这时不仅会导入网格物体,而且也会导入在3D应用程序中应用到这些网格物体上的任何材质中使用的贴图(仅漫反射贴图和法线贴图),将会自动创建材质并把它们应用到导入的网格物体上. 使用F

克服VR眩晕之帧数 提升UE4内容实时渲染效率

克服VR眩晕之帧数:提升UE4内容实时渲染效率 Li Wen Lei, HuNing 在 2015/10/29 23:00:31 | 新闻 Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn VR已经成为了当今最火热的一个话题,带上头盔之后,从此进入一个奇妙的世界,在这里你不再是观众,你参与这个世界发生的每一件事件.整个世界从此与众不同.在赛道上飞驰,在战场上纵横     但是生理机制让我们的大脑在身体并没有

Unity3D 中的灯光与渲染

最近仔细研究了Unity3D中的灯光以及渲染,有了全新的认识,在这里整理记录下来.博主所使用的是Unity3D 2017.3.1f1这个版本. 一.Unity3D中的灯光 Directional Light:平行光,用来模拟太阳发射的光. Point Light:点光源,用于模拟场景中的灯和其他本地光源. Spot Light:聚光灯,通常用于人造光源,如手电筒,汽车前灯和探照灯. Area Light:区域光,只能用于烘焙中. Reflection Group:反射探针,用于准确反射周围环境.

[sig14&gdc14]crytek的《罗马之子》的渲染技术

crytek关于son of rome在gdc和siggraph都做了presentation,两者有些地方一样的,干脆一勺烩了吧: http://advances.realtimerendering.com/s2014/crytek/Sigg14_Schulz_Mader_Ryse_Rendering_Techniques.pptx http://www.crytek.com/download/2014_03_25_CRYENGINE_GDC_Schultz.pdf 看到一直推动行业水准前进的