百科问答小站 logo
百科问答小站 font logo



虚幻引擎 5 开启抢先体验,大家的感受如何? 第1页

  

user avatar   chang-xiao-qi-86 网友的相关建议: 
      

去年5月13日虚幻引擎公布时,视频效果非常惊人,当时我看的真是心潮澎湃。

不知不觉已经过去一年,虚幻引擎5也如约而至。不过这一年来官方透漏了不少消息,加上各路大佬不断深挖,已经少了那种神秘感。但是我还是非常期待的,也在第一时间看了直播并下载。

编辑器、源码、文档、入门课程、Demo工程,官方全都给了而且汉化也很全,可以说是非常用心了。

虚幻引擎5中文技术文档
docs.unrealengine.com/5
虚幻引擎5源码地址(两个分支 ue5-main 应该是Epic的开发分支)
github.com/EpicGames/Un
虚幻引擎5官方入门课程链接
unrealengine.com/zh-CN/

总结一下新的功能或特性:

  • Nanite 虚拟微多边形几何技术,简单来说就是支持超高精度的模型直接渲染,高效的按像素剔除三角面,省去高模烘焙低模法线等步骤(好像并不能完全省去?使用范围有限制)
  • Lumen 纯动态的全局光照系统,混合了多种GI技术,省去了烘焙光照贴图的步骤
  • 虚拟阴影贴图 软阴影的效果非常好,阴影对画面的表现提升非常重要
  • 新的编辑器界面 扁平化可以隐藏,界面清爽了很多
  • 引擎内置Quxiel的Bridge工具,可以直接将扫描的高清资产拖入到引擎中使用,非常赞
  • 新的关卡加载系统WorldPartition,可以按格子实时灵活地加载地图数据
  • 关卡协作编辑方式更新,每个actor一个文件,支持多人合作编辑关卡,对关卡策划和美术非常友好
  • GameplayFeaturePlugin,可以迅速设计玩法原型,听说类似ECS的思想
  • FullBodyIK,全新的解算器,性能已得到显著改进,看demo配合Control Rig可以灵活的根据游戏事件做驱动
  • Root Motion Warpping,可以自适应地形的实时调整骨骼位置,可以省去大量的重复性工作
  • ControlRig得到完善,可以在编辑器内自定义调整骨骼动画,也许以后就不需要频繁的在各个DCC工具里面折腾了
  • MetaSound,可以在编辑器内对音频做复杂的混合效果,感觉虚幻想尽量摆脱其他第三方音频系统
  • Perforce插件支持Change list版本管理

Nanite和Lumen确实主打的功能。直接从Bridge里面拖点资产,开启Nanite,加上lumen,直接出作品,已经在网上看到不少大佬秀效果了(lumen有的情况下噪点比较明显)。

对于游戏开发来说,WorldPartition、GameplayFeaturePlugin、FullBodyIK、Root Motion Warpping、ControlRig这些都是实打实的好工具,对团队来说非常有意义。UE5虽然架构上变化不大,但是这些改动真的不少了。

目前遇到的一些问题:

  • 对配置要求过高,虽然知道虚幻5对机器的性能的要求不会低,但是明显感觉模板工程(ThirdPerson项目)的帧数降低,看到其他人说打包的时间也有加长,不知道问题出在哪里
  • 山谷项目基本上可以把24G的内存跑满,显卡1080才能勉强跑起来。我之前的1060打开山谷项目直接蹦了。。。
  • 小的Bug还是不少

下面再帮大家回顾一下Nanite和Lumen两大核心技术,感兴趣的朋友可以了解一下:

Nanite,中文翻译为虚拟微多边形体几何体技术,简单来说就是引擎可以在运行时支持包含几乎无限个三角面的模型,即美术们可以将拥有数以亿计的多边形的模型直接导入到虚幻引擎中使用。

科普一下,我们常见的三维游戏世界(或CG场景)一般都是由三角面构成的,计算机通过对三角面逐个渲染从而展示出整个画面。一个3A游戏场景往往由数千万个三角面构成(包括人物、地形、建筑等),而一个科幻电影更是夸张到需要对数亿甚至数十亿的三角面进行渲染。

显然,三角面的数量越多,渲染的速度就越慢(虽然现在的显卡越来越强大),所以对于需要实时渲染的游戏来说,除了想尽办法剔除不展示的三角面,减少可见的三角面也是一个不得不做的妥协。

那么如何减少可见的三角面呢?技术上我们可以采用LOD动态减少三角面的数量(边坍缩技术)。但工业界常用的手段是在一开始就限制主模型的面数,一般会先在Zbrush里制作高模,然后烘焙置换贴图或法线贴图到低模上(保存更多的细节信息用于渲染流程中的光照计算),这样一个面数很低的模型也能表现出接近高模的效果。

显然这是为了性能的不得已而为,关注点集中在艺术效果的美术们必然不喜欢这冗余而繁杂的流程。相比画面效果,程序们当然更关注技术细节。从名字“虚拟微多边形”的“虚拟”二字,我们就很容易联想到操作系统中的虚拟内存技术。“虚拟内存”技术的核心思想是将硬盘虚拟为内存,通过动态替换的方式解决内存空间不足的问题(当然还有其他很多方面的意义)。

同理,渲染领域也有一个原理类似的技术称为“虚拟纹理”,由于GPU的显存有限,无法将一个复杂大场景的纹理全部存储,因此可以将这些纹理合成之后再存储到硬盘中。在渲染时根据屏幕上用到的资源索引进行实时更新,图形大神卡马克在2000年左右就成功地将纹理虚拟化技术应用在了游戏毁灭战士3(Doom 3)中。

按照这个思路,几何模型似乎也可以做“虚拟化”。其实类似的技术很早就出现了,上世纪80年代初,卢卡斯影业图形学部门几位大师做出的REYES渲染架构,把参数化曲面动态细分成微多边形,再用算法筛选出接近1像素大小的微表面并进行渲染。卡马克后来尝试了这种方案,但是由于几何体存储方式特殊、GPU管线性能等原因,该方案在很长一段时间没有达到预期的效果,毕竟硬件基础决定上层建筑。

Reyes Rendering on the GPU
markussteinberger.net/p

不过很快,随着Compute shader的出现,显卡可以做更多通用的计算,原来复杂且效率较低的渲染管线也可以通过Mesh Shader的方式进行优化,Billion级别的三角形绘制似乎变得可能。

Epic作为长期研究各种引擎技术(CEO Tim 就曾将REYES和光追定位成为了两大GPU的发展方向)并不断落地工业界的领军者,在Compute shader出现的第一时间就抓住了机会,公开了虚幻5的虚拟微多边形体几何体技术的演示Demo,轰动了整个行业。从官方透漏的信息来看,出于对通用性的考虑,他们并没有使用英伟达提供的Meshshader技术而是直接利用ComputeShader做软光栅,同时配合自定义的算法做像素级别的三角面剔除,真正的实现了无限制的“LOD”。

很巧的是,最近网易雷火工作室在虚幻5正式公布前发布了类似Nanite的“无矩渲染技术”,同样也是采用3D扫描技术+ComputeShader(确切的说是MeshShader,与虚幻5不同)的方式来实现高精度模型的渲染,从而能够支持面数高达二十一亿的游戏场景。而且他们已经将场景发布到了逆水寒的周版本更新包,足以看出几何模型虚拟化技术已经部分应用到实际生产环境中,前景也逐渐明朗起来。

3D扫描建模技术在《逆水寒》端游中的落地应用
zhuanlan.zhihu.com/p/37


Lumen,是一个全动态全局光照解决方案,可以实时对场景和光照变化做出反应而无需专门的光线追踪硬件。因为光线的反射,在现实环境中你很难看到一个物体没有任何颜色(即使他处于一个很暗的角落里)。全局光照(GI)简单来说就是模拟真实环境中光线可以近乎无限次反射到各个地方的效果,实现全局光的核心思想就是光线追踪,也就是需要正确计算光线会击中哪些三角面。然而实际情况中我们往往会采用光照贴图预先烘焙的方式,在避免大量实时计算的同时实现质量相对较高的效果,因此你会发现很多游戏的场景中光照效果都是几乎不变的。

GI技术其实一直在被研究和使用,主要从硬件和软件两个方面进行优化。硬件方面主要使用RTX技术做加速计算,软件方面主要使用各种自定义的加速结构来简化计算,比如基于体素(voxel)和基于屏幕空间的的全局光照算法。Lumen就是一个结合了软件层面的多个全局光照算法的方案,对于远处的场景使用体素计算,近处的使用屏幕空间的光线追踪修正。

Lumen的优越之处在于它每次更新光源时不需要等待贴图的烘焙和频繁地修改光照贴图UV,从而大幅度提高美术的工作效率。同时,配合Nanite技术,可以实现非常精细和逼真的反射效果。


其实这里有一个很有意思的点,为了高效地实现理想的渲染效果,人们一直在三维空间着色和屏幕空间着色中反复横跳。三维模型太多?那我们拿到屏幕空间去统一处理(Pixel shader)。GPU性能上来了但屏幕空间效果不完美?要不再回去优化一下模型的着色逻辑。拓展一下,其实我们经常遇到类似的问题,运行速度太慢?先把数据缓存到内存里。内存占用太大?那我实时去计算结果。很多时候,我们就是在对各种方案做取舍,而且随着技术(比如硬件)的发展,之前很老的方案可能就会再次被利用起来(实时光追,深度学习等)。

关于虚幻引擎,其实接触的多了,就会发现Unreal是一个结果导向的引擎,用户想要什么功能我们就做什么。由于Epic的团队本身也是游戏开发者,所以他们同时也是虚幻引擎最为忠实的用户,可以从用户的角度考虑大家的需求,我想这也是Unreal备受广大美术和策划喜爱的原因。相比之下,Unity看起来更追求架构上的完美以及技术上的革新,他们会实时地更新各种前沿的技术和设计(如深度学习框架),不断调整和优化代码框架(DOTS)。虽然也在努力提供各种工具支持,但毕竟精力有限,短期内容易造成各项工具链功能不完善、使用体验差的问题。了解过二者发展历史和未来的Roadmap的朋友都可以理解,哪有什么各方面都无敌的引擎,不过是数十年来无数从业者一点点的积累和优化罢了

期待虚幻5的进一步表现,也期待数字时代的真正到来。身处信息革命的浪潮中,我们既是历史的见证者,也是历史的参与者。加油!




  

相关话题

  iOS平台上开发游戏一般用什么音频格式做音乐音效? 
  我想用Qt做一个第一视角的赛车游戏,请问我应该看哪些相关书籍? 
  为什么现代电脑游戏无法对cpu的多核充分利用? 
  请问游戏中如何设计存在相互覆盖的角色状态? 
  以米哈游现在公布的所有情报来看,米哈游的技术力到底有多高? 
  同为2015年发布的游戏,为什么《仙剑奇侠传6》跟《血源诅咒》看起来差了10年? 
  如果一个游戏,100 个人中只有 1 人喜欢,开发者应该放弃还是坚持? 
  当算力发展到一定程度,游戏是否可以突破“多边形”的框架,进而模拟粒子,从而达到复刻现实的程度? 
  以中国自古以来的历史(姑且将游戏时间起点放到在公元前1600年)做一款即时历史策略游戏,是否可行? 
  游戏画面的油腻感是从何而来的? 

前一个讨论
航空母舰可以由多艘舰船拼接吗?
下一个讨论
随着辽宁舰和山东舰的服役,未来我国下一艘航母将会是什么样子的呢?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利