[UE虚幻] 【UE4技美】虚幻引擎4中的实时GI技术

查看:6950 |回复:60 | 2016-7-24 23:30:00

您需要 登录 才可以下载或查看,没有账号?注册

x
217685794de8ae2be4.png

UE4中的realtime GI是基于这个researcher:
http://blog.icare3d.org/


算法的名字是:voxel cone tracing,很简洁的概括了算法的两个核心点:voxel&cone tracing。


voxel


谈算法先谈数据结构,voxel于3d mesh正如pixel于2d的图片:规则的离散化的表示信息,pixel是将2d的图片切分成一个个小正方形,voxel是将3d空间切分成一个个立方体。
最先听说这个是carmack和jon olick在08年的时候放出的一些前瞻性的想法,当时看起来就是把mega texture扩展到3d空间,jon olick也在youtube上面放出了一些视频。
在对变革性realtime rendering的期望与将信将疑中,今年迎来了UE4的demo,也把这项技术推到公众眼前。

voxel比较高效的组织方式是sparse voxel octree,简称svo。
是以八叉树的hierarchy方式,表示空间中有东西的部分:
svo是这个算法的关键,在于:

  • svo在以一定粒度对场景进行离散化表示之后,GI光照计算量基本保持稳定,而不是和场景中vertex数量以及复杂度成正比
    • 这一点上我们可以把这个当作是一个3d的gbuffer,里面以一定粒度存储场景信息
  • octree的层级结构,可以让我们在计算的时候很自然的引入LOD,在较远的地方使用低lod(在octree中是高层的节点),使得计算指数降低
  • 便于遍历,octree相比于三角形组成的mesh遍历速度快太多了,这在cone tracing部分和filter部分会体现出绝对优势
voxel cone tracing算法的svo的一些特点和做法:
  • 将static mesh的voxel和dynamic mesh的voxel进行分离,对于dynamic mesh的voxelmz 每帧更新。
  • 使用gpu的rasterizer pipeline进行voxel构建--非常的高效
    • 禁掉depth test,从3个方向去渲染一个mesh,渲染的精度由定的voxel精度决定
    • 那么走到pixel shader的时候,每一个triangle的信息就都被离散成pixel,而且没有depth test,就真的是每一个triangle raster出来的每一个pixel都有了,然后在pixel shader里面将voxel信息更新到svo中去
    • 更新的信息包括normal, color, material property:和gbuffer如出一辙



voxel cone tracing的算法
一个图搞定就是:

  • 从lightview渲染场景,把光照信息填入svo
  • 对svo中的光照信息进行filter,
    • 开始存进去的光照信息实在最底层的level,那么要将这些信息也通过filter放入父节点,那么在cone tracing的时候,就可以直接读父节点(if possible&necessary)来获得足够的光照信息
    • 这个过程颇像构建mipmap
    • 存的信息是光照的方向分布

  • cone tracing,在我们看到的每一个像素这里,使用一组可以覆盖这个点的半球的cone来遍历svo,进而获得这个点上的光照信息
    • 获得的方式有使用较大的cone,来获得indirect diffuse lighting
    • 较小的cone,获得indirect specular lighting

实际计算的时候,使用了基于dx和底层硬件的很多优化手段,也很重要。



AO
可以做GI,那么再有足够的voxel信息的情况下,做AO简直就是顺理成章的事情,而且这个真3d的高品质ao,不是会受限的ssao


评分

参与人数 3元素币 +24 活跃度 +5 展开 理由
梅精丽 + 4 哎,都不知道在说什么
元素界王神 + 20 干货啊 好深奥
1204933144 + 5 看到这么好的帖如同回到初恋的年代

查看全部评分

2016-7-24 23:30:00  
 赞 赞 0

使用道具 登录

60个回答,把该问题分享到群,邀请大神一起回答。
2#
感谢分享
回复 收起回复
2016-7-25 08:42:34   回复
 赞 赞 0

使用道具 登录

3#
继续签到
回复 收起回复
2016-7-25 09:29:07   回复
 赞 赞 0

使用道具 登录

5#
首发必需微元素,荣耀加身装备酷!
回复 收起回复
2016-7-26 00:06:36   回复
 赞 赞 0

使用道具 登录

6#
感谢分享{:1_144:}
回复 收起回复
2016-7-26 09:18:33   回复
 赞 赞 0

使用道具 登录

7#
{:1_146:}
回复 收起回复
2016-7-29 19:10:52   回复
 赞 赞 0

使用道具 登录

8#
这世上没有什么是元素币搞不定的,如果有,那就用更多!
回复 收起回复
2016-7-30 00:10:11   回复
 赞 赞 0

使用道具 登录

9#
一切为了金币!
回复 收起回复
2016-8-5 09:57:51   回复
 赞 赞 0

使用道具 登录

10#
dfghfegqeq
回复 收起回复
2016-8-10 09:08:28   回复
 赞 赞 0

使用道具 登录

11#
学习了,谢谢分享
回复 收起回复
2016-8-14 19:04:36   回复
 赞 赞 0

使用道具 登录

12#
感谢分享
回复 收起回复
2016-8-17 20:19:53   回复
 赞 赞 0

使用道具 登录

13#
感谢楼主
回复 收起回复
2016-8-17 21:00:19   回复
 赞 赞 0

使用道具 登录

14#
学习了啊
回复 收起回复
2016-11-1 13:46:12   回复
 赞 赞 0

使用道具 登录

15#
{:1_144:}
回复 收起回复
2016-11-24 19:46:30   回复
 赞 赞 0

使用道具 登录

16#
路过,看看。
回复 收起回复
2016-11-24 19:46:35   回复
 赞 赞 0

使用道具 登录

17#
带你赚币带你飞
回复 收起回复
2017-1-14 15:55:45   回复
 赞 赞 0

使用道具 登录

18#

为了元素币,拼了!
回复 收起回复
2017-2-9 10:08:50   回复
 赞 赞 0

使用道具 登录

19#
元素那么大,我想来看看!
回复 收起回复
2017-2-26 14:08:25   回复
 赞 赞 0

使用道具 登录

20#
回复 收起回复
2017-4-19 09:54:28   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

UE虚幻引擎
1234下一页
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表