静态渲染之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通道来用了)

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


每天进步一点点.