游戏开发论坛

 找回密码
 立即注册
搜索
查看: 13959|回复: 6

实例比较虚幻引擎4与光线追踪渲染

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32069
发表于 2015-10-9 11:35:36 | 显示全部楼层 |阅读模式
520.jpg

  GameRes游资网授权发布 文 / Edward Liu

  下面两幅图,同样的场景素材,同样的光源,非常接近的材质模型,但用的是完全不同的渲染方法。

801.jpg

802.png

  第一幅是我自己的渲染器(EDXRay)用基于光线追踪的无偏全局光照算法渲染,第二幅是用虚幻引擎(版本4.7)的渲染引擎渲染。

  首先说明一下,第一幅图片中椅子的扶手和桌子底部是塑料材质(漫反射加光滑镜面反射),而第二幅中是金属材质(粗糙镜面反射)。原因是UE4导出的时候没有把整个素材弄成一个材质了,我也懒得再编辑。然后桌上的雕塑第一幅是毛玻璃,第二幅是平滑玻璃。其余材质都一样了。

  接下来点评一下两幅图中的不同之处。第一个最抓眼球的区别就是场景底部平面的镜面反射,两个都是用粗糙参数为0.25^2的GGX模型 描述的粗糙镜面,上下图的差异很大。上图是完全基于对BRDF和光源采样的无偏结果,可当做参考,下图则是可以说暴露了虚幻引擎4对轻微的粗糙反射的一个缺陷。虚幻引擎4中的反射解决方案是屏幕空间反射(Screen Space Reflection,SSR)加环境贴图。对于非常平滑的表面,当它在场景中的反射刚好在屏幕上存在时,虚幻引擎4会使用SSR。当表面变的粗糙,或者反射部分在屏幕边缘时候,反射会变成SSR和环境贴图的加权和,直到对特别粗糙的表面完全变成使用环境贴图。(其实这里我只要再把粗糙度调高一点,SSR就完全没有了,不过那样就完全看不出反射了因为环境贴图的反射特别粗糙,不利于比较)所以下图中的结果可以说是一个平滑镜面反射和粗糙镜面反射的加权和,当然无法真正模拟出轻微的粗糙反射。(这个问题用最近的Stochastic Screen-Space Reflections可以得到一定的解决,不过很多时候不那么robust)

  第二个比较细微的区别则是下图中桌椅黄色部分的镜面反射有信息丢失了。这个便是因为SSR算法本身无法处理反射物体在不在当前屏幕上的情况。这个Artifact其实在现在的游戏中也非常常见,相信很多人都注意到了。SSR另一个细微的错误则是反射中的镜面高光会是错误的,因为高光的计算取决于视线入射方向,直接从根据相机方向计算的屏幕上取是不对的。不过这个问题比前一个丢失信息的问题小多了,没人care。。

  第三个差别是底部平面的高光区域在下图比上图分散很多,看起来下图底部的屏幕比上图更加粗糙。这个是由于两种完全不一样的Image Based Lighting的方法导致的。上图还是一切基于环境贴图的能量分布采样光源,虚幻引擎4则使用了Split-Sum,将渲染方程的光照部分和BRDF部分拆开分别积分,再对于两个积分的结果球积。具体可以点击查看详细内容

7b38165d7a41df7070577b013abcc534_r.png

  其中光照部分的积分又使用了Prefilter Cube Map的方法。再讲细一些,UE4的环境贴图是128x128x6的分辨率,7层MipMap。每一层的每一面都用1024个样本采样不同粗糙度的GGX去Filter。这里有几个产生误差的原因,第一是误差是采样GGX的入射光线永远是等于表面的法线方向,所以没办法模拟出上图那样在入射角和法线角夹角大的时候那种拉长的高光。另一个误差则是只采样了7个离散的粗糙度,并且不同的粗糙度使用的不同Mipmap,这样做对性能更有利,但是这种粗糙度和Mip层的映射完全是Epic的人“发明”出来的,完全不是基于物理。我自己试过同样的BRDF在UE4中做Image Based Lighting都会比真正的离线参考看起来粗糙许多。当然只要结果 Artists用着舒服,粗糙度看着有变化,也没有什么不好的。

  第四个差别是下图中桌子下面的部分和上图比明显偏亮。这个误差则是因为环境贴图的遮挡信息只有在capture的那一点才是正确的,例如这里环境贴图是在桌子上面capture的,桌子下面的部分大部分入射光被桌子遮挡,应该会比较暗,这里则变成桌子下面接收到的光照和桌子上面一样,所以和上图比偏亮了。解决办法就是应该在桌子下面人工多capture一个单独的环境贴图。

  除了这些区别,色调的不同,以及背景模糊度的不同,都是不同渲染系统的post processing参数以及其他工程性的小问题,就不细说了。

  除了这些渲染本身的区别,实时渲染系统往往也需要更多的artists work才能hack出接近真实的画面,例如在场景不同的地方放置probes,提前烘焙光照贴图等。

  最后,现在别说是用UE4做建筑可视化,就连做低成本动画电影的都有。毕竟快速的迭代可以降低很多的成本,也就有可能出现一些非Pixar那种一定要男女老少都能看才能保票房的题材的片子。

  而且要不是我这样把UE4脱光了衣服拿出来比较,大家直接看着也不会觉得有任何问题。甚至我相信很多读这个答案的人盯着这两张图看不出差别的。搞图形的就是这样。。废了半天劲很可能是自娱自乐,真的搞的真实好看了,看得人也认为是理所当然。

  作者:Edward Liu, 图形学爱好者,目前就职于英伟达(NVIDIA)从事图形渲染方向的研发。

0

主题

8

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2015-10-9 20:22:35 | 显示全部楼层
差异非常明显,明显下面UE4的效果是飘的。上面的效果要实在得多。可惜是静帧画面,很想看看动态的效果。

5

主题

263

帖子

1113

积分

金牌会员

Rank: 6Rank: 6

积分
1113
发表于 2015-10-9 21:16:15 | 显示全部楼层
很强大的样子,我好像落伍了…………

89

主题

524

帖子

756

积分

高级会员

Rank: 4

积分
756
发表于 2015-10-12 17:45:20 | 显示全部楼层
这是一个不对待比较。应该是故意突显自己的效果。有意弱化UED4的渲染。在这里不做多解说。
另外,渲染的重点并不是在渲染上,而是使用你的渲染的用户的便捷性与期渲染时的各大方面性能节省与多机能的适配。。。。单独从一张有刻意不对等效果下的对比图是没有太多价值的。楼主是技术方向吧。加油。中国是需要好的渲染技术人员。你要更全面些哦。

0

主题

3

帖子

33

积分

注册会员

Rank: 2

积分
33
QQ
发表于 2015-10-15 12:09:13 | 显示全部楼层
为啥要对离线渲染和实时渲染做画质比较? 此文的实际意义何在?

3

主题

42

帖子

47

积分

注册会员

Rank: 2

积分
47
QQ
发表于 2015-11-5 00:42:40 | 显示全部楼层
我想问下 EDXRay 这个作者自己写的渲染器是实时渲染么,如果是实时渲染性能如何?

0

主题

21

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2015-12-8 23:19:59 | 显示全部楼层
虚幻4一样可以模拟出真实计算的效果 不过需要制作者自身的经验加成
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-25 15:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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