虚幻引擎4的基于物理模型光照

转载:http://blog.csdn.net/debugconsole/article/details/48767083




siggraph13上面EpicGames带来的UnrealEngine4的PhysicallyBasedRendering(基于物理模型光照)部分内容。
EpicGames应该说进入PhysicallyBasedRendering较晚了,但这样就有比较多的参考,这里Epic重要的参考是迪斯尼在做cg(《无敌破坏王》等)使用的光照材质模型,并且在实际开发过程中进行了精简,并且和用于游戏开发的pipeline相结合,取得了不错的成效。
在理论算法方面,在基于cubemap的secondary specular的brdf的计算上更加的数学准确,通过理论数学以及工程方法进行优化,是一个high点。
link
http://url.cn/KT07av

http://url.cn/MJprmC

http://url.cn/Q3Dipo

overview
首先epic介绍了其在使用物理光照方面的思考,大的方向上来看,业界也达成共识,换成基于物理模型的光照,会带来更真实的效果,更精简的美术参数和数据,在光照环境剧烈变化的情况下保持渲染结果的真实正确。
但是其实物理光照仍旧是一个开放性课题,其可以用的光照模型很多,很多研究开始是针对于离线渲染的cg来做,选择什么,在这种模型下面如何取舍是开发者面临的非常难以决断的问题。
epic在这方面的需求包括:
*性能
*简单易用
*可以线性插值(这样多个material可以混合)
*有较高的灵活性--可以写实风,可以卡通风
同样,强如epic在转向物理光照的时候,也是遇到问题,虽然争论不太多(已经业界标配了),但是应用起来还是适应了段时间。
同时epic一个非写实项目已经开始了挺长时间,转向物理光照也困难重重,尽管程序员表示物理光照可以搞定,并且迪斯尼也证明了卡通风格,但是已经做了很多数据,所以又给这个项目做了个向下兼容版。
也算是成长的烦恼吧!!
shading模型
和其他物理模型一样,是macrofacet specular shading model:


epic games采用的是迪斯尼所使用的GGX模型,所以各数学公式是:
Distribution:


Geometry:


Fresnel:


这里fresnel项是针对schlick approximation做了一个数学逼近,优化了性能,其中schlick approximation是:




ImageBasedLighting
(ImageBasedLighting,说人话就是使用环境贴图来做反射,只是图形学里面把这种把环境光照信息存到环境贴图里面,然后在拿来渲染模型的方法叫做ImageBasedLighting。)
常规使用的方法可以说是源自经验和尝试,实际下来在数学上是不准确的。
数学上精准的推导是根据材质表面的粗糙程度来进行积分:


一些数学逼近:


红框中的部分是光照信息,其实就是从环境贴图中读出的信息,是经过prefilter的。
篮框部分是积分的另一个部分,在进行数学推导:


这里便转换成了一个由roughtness和cos(theta)组成的函数,offline计算结果存到贴图里:


整个过程很漂亮,理论推导+engineering,把真正正确的做法,变成了现实。


材质模型
epic取了ggx材质模型的一部分,迪斯尼使用的ggx模型里面包含了超级多的参数:


epic取了:
*base color
*metallic
*roughness
另外加上:
*cavity--用于计算材质上坑洼造成的阴影,这个没多介绍

roughness和metallic美术用起来破费了些心思。


材质layering
ue4立面材质可以进一步混合,也就是材质编辑器中可以拿一个材质作为一个节点来构建材质。
可以这样做的重要理论基础就是,材质中的参数都是可以进行线性插值,并且在插值后,物理属性也是正确的,并不会破坏光照模型。
这样可以说材质编辑器的能力进一步提升,当然如果美术飙起来也会弄出非常低效的材质把性能搞差。


epic提到其中一个应用就是做detail tiling,把一个正常材质上面叠加tiling很厉害的另外一个材质,进而得到精度超级高,但是却又不需要大贴图的新材质。
封面图片就是detail tiling的结果:



lighting类型
ue4中还支持了面光源,球光源和tube光源。
面光源中尝试了几种方法,包括billboard reflection,cone intersection,最后使用的是在specular distribution项上面做一些改变:


效率不错,效果还行吧,相比之下个人比较喜欢killzone的做法:
http://blog.csdn.net/toughbro/article/details/9072327

sphere&tube光源感觉挺没意思的,不记了。



相关:
http://blog.csdn.net/pizi0475/article/details/49489929
http://zhuanlan.zhihu.com/p/20119162
http://zhuanlan.zhihu.com/p/20122884

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值