ue4 截图_逼近VRay级别的实时画面,只因在UE4里开了个开关

f2dbb0a20f34758a7506054cf5d21a7f.png

大家好

超久不见

这次为大家呈现的是

再次进步的D5

这次的进步

可以概括为“开了个开关

请各位观看视频感受

视频展示的是实时速度

无加速播放处理

无烘焙无预计算

在一块RTX2080上

使用D5 Preview 1.0完成录制

为什么叫“开了个开关”

前阵子

D5开了个小型线下沙龙

展示了极快的高品质渲染

24a97341f5b5b9f18726cec5569b2f2e.gif

当天

有公司的CTO居然说

D5团队没做啥

只不过

在UE4.22开了个开关

吓得D5的小伙伴开起了玩笑

工程师差点当场哭晕在厕所

509c437a0562402c5917beccff5e1420.png

如果在UE4里随手开个开关

D5都能拿到NVIDIA的ISV认证

a6ae8af759b74d0c677626bb5af23afe.png

那照这个逻辑

在UE4里用个反射球

就能上GTC讲俩小时

Are U F**king Kidding?

人家兴许只是开个玩笑而已

1619501c85f795d6310e820bd5277b09.png


UE4本身很优秀

但不是针对可视化开发的

别忘记UE4是个游戏引擎

认真使用过UE4 RTX的同学

都会发现

UE4现阶段的RTX

虽然初步展示出RTX的强大

下图出自UE4官方RTX Demo

ec48b0177d982bdda33d4badc7ccca51.png

但用在逼真的建筑可视化

是远远不够的

无论从算力、算法来看

都不符合建筑可视化的要求

例如可视化可以停下来等几帧

把计算平摊到很多帧

而游戏却不能

又例如一直以来都是难题的

全局照明

下图分别截自UE423和D5视口 分辨率近似 整个场景只有一盏聚光灯 在都有60fps的情况下等待了 3s 再截取

b35fe149c553b8ea5ee00bcdba6f74a1.png

上面UE4的GI结果 若是配上更激进的降噪 可获得平滑的结果 但也因此失去高频信息 物体浮空 只适合在游戏中使用

那为何不直接用UE4自带Pathtracing?

目前的Pathtracing

功能非常少

鲁棒性较差

且受制于BruteForce

速度不理想

仅适合在UE4里粗糙的预览

换句话说就是 都这么慢了,为何不直接用别的离线渲染器? 他们有更完善的功能更快的速度 还有更强的兼容性更好的质量 就像下图 默认的Pathtracing不能正确渲染背面

54dfd648e2b28d711dbe69926df643fb.png

直接用UE4的Pathtracing当做渲染器

显然也不合适

所以

这不是开个开关就能解决的

需要专门针对这个的使用情景

深度改造

如果有团队

在UE4上加几个开关

直接调用UE4自带的光线跟踪

c7d487cd3a282cd1c65307c403ebd0b5.png

就将此变为付费功能

恐怕是想骗钱想疯了

847165bb92c131009ff5a6e7cc44ae1c.gif


为了打开这个"开关"

D5的团队费了很大劲

看了很多论文、资料

学习渲染理论和算法

下面是他们参考过的部分论文截图

12414941046afb1e59cfeb193954e3a2.png

参考了很多优秀的软件

学习他们的实现思路

下图截自各大软件官网

2b47af7d159dab82c2401b92a1b0f48a.png

走了很多弯路

从DXR到FallbackLayer

从FallbackLayer到Optix

从暴力采样到离散空间采样

下图截自各种技术的网页

e62ef6c69082d08799438dd4b24e1629.png

遇到了很多坑

显存爆了

降噪出现漏光

抗锯齿完图层对不上

等等等等

下图bugs截自几个月前的D5

f4362a2b24aa7e98d6a80554518514f8.png

可谓

一把辛酸一把泪

8f4c40acb4c35fc1cc20605966d45410.png


在挣扎的路上

D5小伙伴意识到

不能盲目追求物理真实

每根射线所需时间已知

达到真实所需射线数量已知

稍微一算就知道

暴力计算

比蜗牛还慢

所以

通过美术数学手段

使得每根射线达到最高性价比

让画面趋近真实

符合人对"真实"的认知

才是王道


1.学习成本极低

91220897731af1f0926f491acb9b0d84.png

729626201dad52ee8ffbedc5981da312.png

无需烘焙

无需手摆反射球

无需分UV

无需反射平面

无需刻意补光

无需用灯光强行打出GI的感觉

......

无需繁琐学习过程

一切皆所见即所得

D5开发的初衷

是做一款又简单、又好的设计工具

隐藏繁琐的技术细节

给用户留下最简单、最直觉的体验

你所看到的效果

没经过一丝奇技淫巧的处理

71c47802fc132d2df6b0866234d78791.gif

绝不像一些无节操厂商那样

使用大量人工处理来掩盖软件缺陷

甚至使用烘焙的场景演示

误导视听

用户拿到手后

发现完全不是同一个东西


2.Gbuffer Raytracing

D5用光栅化代替部分计算

这点没什么好说的

因为UE4自己已经这么做

Enscape也证明了这个方向的可行性

45affb3123a9148172f4c2bd78d14464.png

相比传统离线渲染器

一次射线的起点不在摄像机

从Gbuffer获取像素位置和法线

根据具体需求发射射线

a16826aa75b48bad39fb6129739ec0b4.png

能省掉一次射线带来的大量开销

也让光线跟踪更好地融入现有管线

还在原有的延迟管线基础上

绘制更多自定义的buffer

用于各种效果的计算

这个做法奠定了D5渲染开发的大方向


3.高品质天光大幅提升真实度

6d4478e464a1603917e58c5414426a5b.gif

高频信息给人印象最深

速写也是这个道理

下图是我N年前的写生

7550612fb3336bc4166c958f62743a26.png

在白天的场景里

天光产生的阴影到处可见

其中包含大量的高频信息

如下图箭头标出的地方

cca3c518024d6f43bf3c714b38fadb27.png这些信息

在游戏里常常被忽略

没有上图那种锐利的阴影

只保留了大关系

显得"游戏感强"

如下图

4d132c699734829d27ae86523f75474e.png

自从Lumion新增"天光"后

画质让人眼前一亮

很值得学习

下图截自Lumion官方画廊

8364c2a1fd260fd6ecdd53a7951af671.png

之前我还曾发文讲过这事

为何Lumion8如此强悍,这应该是一次迟到的飞跃

天光的计算对着色依赖度低

主要计算都在射线求交上

d998c8442afb7ab25a2ab3f89d45ba7f.gif

正好RTX最擅长的是

射线求交

所以天光是性价比超高的Feature

于是

D5参考了Lumion的美术思路

引入了天光

D5在UE4天光的基础上

加入第三方的降噪算法

调整了射线方向的策略

修改时域积累的算法以适应抗锯齿

让高品质天光成为可能

在室内、室外场景都有出色的表现

D5可以从外部导入任意的球形HDR

整个场景唯一的光源便是背景HDR 注意那一缕阳光,是由HDR中的亮点提供的效果

b198fcee1682e652374e367fc6155027.png


4.高精度的快速GI

a6282df2786cfdd12c3a4d441a93ccce.gif

UE4 RTX自带的GI

使用暴力的方法计算

(BruteForce)

由于样本数太少

而样本数多了又会把电脑卡死

所以方差过大

形成肉眼可见的噪点

就算降噪也无力回天

8b96b02088d8c7ceb93c4e0f4048b7cf.gif

显然

老老实实地算是不行的

就算有RTX加持也不够快

00b55c4dcc287cf3c767341b4957a325.png

D5小伙伴注意到

Enscape的GI计算速度很快

而且显卡负载不高

289d8715c7b02618f7cc26b80c475726.png

翻阅资料

得知Enscape把数据缓存到BVH

以空间换时间

因此节省了很多性能

还研究了VRay的LightCache

发现也是缓存的思路

(下图截自VRay官方文档)

7ea29956ef5447e10ce6d864386b28d8.png

虽然牺牲了多次反弹的高频信息

但换取更低的方差

意味着收敛得更快

于是D5抛弃了UE4自带的GI

引入了缓存GI的思路

cb728d8d220c3215e443caadf8a17b78.gif

使用空间离散采样

让GI更干净平滑

还改良了着色器

降低着色的负担

让GI本身的计算速度更快

如此一来

显卡不发烫了

画面也变流畅了

693b7cb1acd63f7f4eee8856eef5d423.gif

得益于缓存的低频数据

D5的GI能投射出精准的软阴影

有点VRay的味道

这连现在的Enscape和Lumion也很难做到

下图分别截自D5视口最高质量和Enscape2.6最高质量

两个场景都只有一盏聚光灯

514448f3ad5c712126e0b99fc1d1e410.gif


5.高质量自发光照明

90d72f6de78f22ac7eb7af9ece0ecef4.gif

得益于上述的GI缓存

以及D5自研的SimpleGI

自发光有极快的速度

和惊人的质量

可以轻松地使用自发光照亮场景

并拥有准确的影子

下图光源有且仅有自发光

6135b6a992bd8fa9f40d51af4fc23dd1.png

UE4在默认情况下

自发光不支持照明

所以我们只能看到发光物体本身

而场景一片漆黑

Enscape则由于过激的降噪

导致各种漏光问题

D5保留了最多的光照细节

可见阴影由硬到软

过渡舒服自然

下图光源有且只有自发光

bd2f190d946a1e15db8125e509f6fc78.png

不妨再看看VRay的结果

上图最接近VRay的当D5莫属

但值得注意的是

D5只用了3秒

e56277a9a644568f9cd38942ca3e734d.png


6.高质量的反射

6ff4018a3e70e2173f06f8f2d293a1e1.gif

高质量反射能大幅提升质感

让真实度倍增

光滑、粗糙反射缺一不可

ddbb92af092a794962307c7fc7d1ff7c.gif

光滑的反射

因为能清楚地看见被反射的东西

被反射物体的渲染精度不能妥协

UE4自带反射效果不佳

没有渲染GI

为了解决这个问题

D5小伙伴修改反射模块

给反射加入GI

目前反射中GI精度较低,高精度的已经在路上

因为换了缓存GI的做法,请给D5工程师点时间

fc8c4c0076ec4791bdd1949a4e3541c1.gif

得益于缓存的GI数据

反射GI计算比早期快了很多倍

因为GI占据绝大部分的计算量

因为每根反射射线中,需要多根GI射线

这个n*m的数学关系想想就很刺激

1eed4e7ac0936bff7534a1e81cee4e93.png

由于是光线跟踪反射

质量当然是SSR无法媲美的

请忽略那个带有光照的光线跟踪反射演示图

因为D5不能关掉自发光的光照

SSR是从UE4里截取的

46caacff61dd54c67cb97e1c21155189.gif


研发中的新功能&计划

更好的后处理

有小伙伴抱怨颜色太素

新的调色模块已经在做了

更好的抗锯齿和降噪

现在画面的边缘不够清晰

AI降噪带来的闪烁让动画没法做

D5正在改进降噪算法

让画面清晰平滑

同时稳定不闪烁

引入OptiX API

UE4的光线跟踪基于DXR

让很多显卡没法使用

使用OptiX代替DXR

能让更多的显卡正常运行D5

更快的速度

现在还不够快

需要更快

当然

远不止这些

......


简单意味着什么

一张HDR

就能呈现真实的天光

放一盏灯

就有了精准的间接光

一眨眼间

就有趋近真实的效果

但可能有的小伙伴

还习惯于灯阵、反射平面等做法

这不由得让我想起

过去的玩具总动员没有GI

反弹光全靠艺术家手摆灯光

当GI计算诞生的时候

有人鄙视GI计算慢

坚持“人工GI”的做法

再看看现在

还有人会在VRay里摆灯阵吗

技术越来越先进

体验越来越简单

只会让创作的上限越来越高

虽然D5还不够完美

但他们仍在努力

就算没有D5团队

也会有B5,D6,F16

......


开放的公测

D5是看得见摸得着的

看完演示

感兴趣的各位

可以下载尝试

欢迎给他们提出宝贵建议

https://www.d5techs.com/


结语

能看到这

说明你我真tm有缘分

有朋友问,你为什么替D5写文章?

我虽然在从事游戏制作,但对渲染的热情,依旧没有减退,虽然没时间出作品,但也会抽空看看相关的论文。几个月前,我初次接触D5团队,是因为试用了当时的版本,提了些建议。细聊后发现,这个小团队,有着超出我预期的技术底蕴,虽然算不上顶尖,但在国内可视化工具领域里,这水平绝对是罕见的。言语中,我能强烈地感受到这个团队对技术的尊重,他们非常希望做出一款优秀的产品。D5一路磕磕碰碰,虽然遭受一些误解,甚至有人说之前的演示视频是假的(视频是我亲手录制的),但也得到了很多人的支持,因为,他们确实做出了不一样的东西,解决了不少别人解决不了的技术难题,而非光说不做、鼓吹概念。看到这样的团队,实在忍不住要帮一把

D5为什么用UE4改造?

在RTX刚面世不久,UE4还没集成RTX的时候,D5团队已经把RTX功能整合到UE4中,实现了基于DXR的光线跟踪,但功能简陋,效果欠佳。由于D5没有搭建成熟离线渲染器的经验,若是从零开始搭建,需要大量的时间,而UE4有着极为成熟优秀的渲染管线、先进的光照模型,还是开源引擎,能合法获得源代码,如果为了学习,那可以从零开始慢慢研究,但对于一个公司来说,造轮子的做法显然是不可取的。所以D5团队把UE4渲染模块代码单拎出来,在此基础上进行深度改造,让它更适合可视化,而软件别的部分都和UE代码没有关系。因为,使用UE4编辑器代码是违反开发者协议的,如果有公司敢这么做,用户的利益都将受到威胁。

至于为什么我知道D5的技术细节,因为......我就是知道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值