从预告片到产品正式发布
Lumion8都未曾让大家失望
甚至有不少人认为
其质量都赶上VRay这类渲染器了
下图摘自Lumion官网Showcase
漂亮的光照氛围
丰富真实的植被
下图来自热心的小伙伴
在保证高质量的同时,速度也是惊人的快
相比传统的离线渲染器
上面的室内
4K
单帧只需
一分钟
而
VRay
很可能需要
三十分钟
如此大的差距
是不是该卸载各种渲染器了
然而事实并非如此
Lumion8效果之所以好
离不开它巧妙的美术手法
正因为这巧妙
使其在
高质量离线渲染
和
低质量实时渲染
之间
找到了价值所在
不妨看看下面的短视频
Lumion8和“典型Lumion效果”的比较
这里要感谢老韩的助攻
过去的Lumion总给人
游戏感太强
的印象
就如视频所示
画面扁平、颜色炸裂
到底是什么让Lumion8能有这般进步
容我慢慢解释
SKY LIGHT
这个新增的功能
让真实感有质的飞跃
从室内到室外的过渡
层次感大幅增强
室外场景提升最为显著
其实这早就不是什么新鲜功能
在早些年
有游戏和软件已经引入这个元素
而描述该功能的常见名称是
Sky Visbility
也就是“天空可见度”
例如2013年e3发布会的《全境封锁》
下图截自全景封锁在GDC上的技术分享视频
全境封锁变态的实时效果
哪怕是发售后缩水
依然能让人眼前一亮
所以这个Sky Light
描述的其实是场景中
每个点所能看到的天空大小
可见度越低则越暗
如下图是被简化成二维的例子
P点的天空可见度为
θ/π
有了这个明暗关系
让天空背景产生的照明得到了很好的描述
因为有大气层
几乎所有场景都会有天空光的存在
所以这个关系成了必不可少的部分
下面的例子来自Pinterest
正是因为这个关系不可缺少
没有了它就会显得“
不真实
”,有违视觉经验
再看看没了天空可见度的Lumion8
是不是像瞬间退回老版本
植被素材也仿佛倒退一个世代
有趣的是
它作为让Lumion8画面飞跃的重要功能之一
让不少小伙伴觉得这进步很
神速
甚至觉得有点不可思议
而在渲染的历史中
却是个几百万年前就已经有的东西
既然原理都已经知道了
何不亲手做一个?
将连续的天空球拆成多个小灯
选择平行光以模拟遥远的天空穹顶
为了有足够平滑的效果
灯的数量必须非常多
而灯太多又会造成效率问题
所以每次只记录一盏灯的信息
最终合成平滑的结果
写个简单的脚本
在上半球上均匀地生成一千多盏灯
每次生成一盏灯并储存画面,最后删除灯
如此循环一千多次
我编程很不专业,就不放出来笑话了
最终实现了Skylight的效果
如图
2560x1440
的渲染过程只需10s左右
(其实是将4xMSAA的4K的RT压缩到2K,因为要暴力抗锯齿)
噪点和色阶是因为微信的压缩,实在无解
为了检验可靠性
我用
VRay
渲染了同样的场景
放置一盏默认的DomeLight并关闭间接光照
两者视觉上还是略接近的
且方法还有极大的改善空间
如果只用常规的SSAO
效果将大大大大打折扣
当然下图是特别差的那种
再试下稍复杂的场景
300W面的场景
2560x1440
用了40s左右
几十行的代码,不到半天就做完了
而且也不算很慢
是不是很简单
而且这已经是极其落后的方法
来看看各种流行的做法
例如
Unigine
的AmbientLight
这是在
1/30s
完成2560*1440渲染结果
虽然这是基于屏幕空间的做法
但本质上也是为了求得同样的遮挡关系
以此提升画面的真实度
除此以外还有基于屏幕空间的GI
得益于实时生成的BentNormal
又例如
HBAO
同样是基于屏幕的计算