| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 【UE5 C++进阶 01】Nanite基础 -> 正文阅读 |
|
[游戏开发]【UE5 C++进阶 01】Nanite基础 |
介绍虚幻引擎5中的虚拟几何体系统——一种可以获得像素级细节和海量对象的系统。 Nanite是什么?
流程上,Nanite允许用户先使用最高分辨率的资产来构造数字内容,然后再针对download size(云端)或者disk size(本地)来优化package的大小,而不是一开始就限制资产制作精度。 设计的目的
实现的困难比virtual texturing困难多了
使用哪种几何表达?研究了几种潜在的几何表达方式:
三角形cluster剔除
cluster层级
LOD Runtime
流处理
像素级别的细节
细微的三角形
Virtual shadow maps(虚拟阴影贴图)
代理网格体虚幻引擎的很多模块都需要访问传统的顶点缓冲数据(由传统方式渲染的网格体提供)。为静态网格体启用Nanite之后,将生成一个较为简单的代理网格体,以便在Nanite数据无法使用的情况下作为备选。比如在需要复杂的碰撞时,或者当平台不支持Nanite时,就会使用 代理网格体(Proxy Mesh)。如果网格体烘焙了静态光照,代理网格体也可以在Lightmass中使用。 思想相似之处 JPEG算法JPEG利用人眼感知的局限性,剔除掉不容易被人眼感知的部分(色彩信息), Nanite网格体和传统静态网格体的不同之处Nanite网格体是一种启用了Nanite的特殊静态网格体。Nanite网格体本质上仍是三角形网格体,但对其数据进行了大量细节和压缩处理。此外,Nanite使用了一种全新系统,能以极高效的方式来渲染这种数据格式。 要让静态网格体利用Nanite,只需一个标记来启用它即可。编辑Nanite网格体的内容和传统网格体没太大不同,区别就在于相比使用传统方法渲染的几何体,Nanite能够渲染的三角形和实例要多出数个数量级。将摄像机移到足够近的位置后,Nanite就会绘制出导入的原始源三角形。 Nanite网格体支持多重UV和顶点颜色。材质可以被指定给网格体的不同分段,并且这些材质可以使用不同的着色模型和动态效果(在着色器中完成)。材质指定可以动态切换,就像其他静态网格体一样。Nanite也无需任何烘焙材质的过程。 虚拟纹理并不要求与Nanite一起使用,但非常推荐这么做。虚拟纹理是正交虚幻引擎功能,它与纹理数据的关系类似于Nanite与网格体数据的关系。
Nanite如何工作?Nanite可最大限度地与现有的引擎工作流无缝集成,可使用前所未有的方法来存储和渲染网格体数据。
为什么使用Nanite?
Nanite的优势
Nanite支持什么
Nanite不支持的设备条件
应该将Nanite用于哪些类型的网格体?一般来说,能启用时应该尽量启用Nanite。启用了Nanite的静态网格体通常可以更快地渲染,占用的内存和磁盘空间会更少。 具体来说,如果网格体满足以下条件,则尤其适合使用Nanite:
不过有一个例外,那就是天空球之类的对象:它的三角形在屏幕上显得很大,不会遮挡任何东西,并且场景中只有一个。通常,这种例外很少见,并且让它们启用Nanite导致的性能损失很小,所以只要Nanite支持,就不必过度担心是否应该不开启Nanite。
如何使用Nanite?在网格体上启用Nanite支持以下方法可在几何体上启用Nanite(前提是几何体支持):
导入静态网格体在导入要启用Nanite的网格体时,勾选 构建Nanite(Build Nanite) 复选框。
预计算的全局光照虚幻引擎中的光照烘焙系统使用Lightmass全局光照系统在CPU或GPU上计算光照数据。使用此方法预计算光照旨在获得高质量结果,可以将信息存储在将要应用至几何体的纹理中,不受实时限制因素的影响。使用此方法,光照无法动态修改,对于那些无需改变光照效果的项目来说十分理想,对于动态光照受限的移动平台项目也是非常好的选择。
在资产上启用Nanite假如你的项目已经有了大量内容,并且你希望启用Nanite,那么有两种办法:一是使用内容浏览器批量启用资产,二是在每个资产的编辑器中单独启用。 在网格体上批量启用Nanite对于你要启用Nanite的批量静态网格体资产,使用 内容浏览器(Content Browser) 选择它们,然后,右键点击 并从上下文菜单选择 Nanite > 启用(Enable) 。 在单独的网格体上启用Nanite打开支持Nanite的网格体的编辑器,例如静态网格体和几何体集合(Chaos物理驱动的破裂网格体),并通过 细节(Details) 面板启用Nanite。 在静态网格体编辑器(Static Mesh Editor)中,找到 Nanite设置(Nanite Settings) 并选中 启用Nanite支持(Enable Nanite Support) 复选框。
Nanite可视化Nanite包含多种可视化模式来检查其在当前场景中的数据。 在关卡视口中的 查看模式(View Modes) 下拉菜单中,将鼠标悬停在 Nanite可视化(Nanite Visualization) 上,然后从选项中进行选择。 管理启用Nanite的内容Nanite尚不支持虚幻引擎的某些功能,而某些功能可能永远不会受支持。Nanite工具(Nanite Tool) 使你能够在单个窗口中对支持Nanite的可用资产进行审核。你可以在内容浏览器(Content Browser)中审核资产,通过禁用或启用Nanite来查找错误或找到优化机会。 选择 工具(Tools)>Nanite工具(Nanite Tools) ,即可从主菜单打开Nanite工具(Nanite Tools)窗口。
要评估Nanite应该如何处理错误或优化,你需要对每个资产进行审核。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:24:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |