[sig15]HorizonZeroDawn的云渲染技术

siggraph15上,advances in real-time rendering in games courses的一篇(http://advances.realtimerendering.com/s2015/index.html).

由killzone的开发商guerrila带来,guerrila一直作为ps平台上的,甚至业界图形技术的开拓者,这次出品的horizon dawn zero,概念和效果非常吸引人:


这个presentation里面,他们讲的是云的渲染。

在做云的时候,guerrila开始使用真实的照片作为参照来努力(这也是这一代console上面的标准做法了):


那么在入手研究实现的时候,就会偏向于physicallly based,研究其中的真实物理特点是必经的一步。

modeling

目前的通常做法是使用FBM(fractal brownian motion),也就是多层的,每层不同频率,perlin noise,然后结合ray marching来生成云,这种云也不错:


但是如果想做这样的,就需要额外一些工作:


可以看到图中的云在形状上更加的真实和明显,表面充满了细节,最后guerrila使用的办法是voxel+ray marching和前面提到的FBM并没有本质的不同,但是在modeling的细节上确有一手,使用了2个3d texture,1个2d texture,

第一个3d texture里面放的是perlin noise和worley noise的结合体

perlin noise大家都熟悉了,worley noise是steven worley在1996年提出的,一般用于做caustics(焦散)效果的,worley noise以及和perlin noise结合之后是这样的:


分辨率是128x128,4个channel存放的perlin-worley不同频率的noise。

它用于定义云的大体形状。

第二个3d texture,32x32,3 channel,放不同频率的worley noise。

用于定义云的表面细节。


一个2d texture,128x128,放不同频率的curl noise(可以用于procedural fluid flow的一种noise),用于扭曲云的形状,以及加上一些turbulence的感觉。



局部的云定义好了之后,天气系统还有回一个大的coverage map来定义那里有云那里没有:



Lighting

光照部分,对云的建模,需要考虑到这些因素:


  • 作为透明介质--使用beer law
  • 云的散射不是均匀地,有更大的几率来向前散射,所以要加一个heney-greenstein function来矫正

  • 云的内层比表面更容易受到散射影响,作者称这个为powder effect
都结合到一起:



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值