0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

描述几种优化3D场景的规则和方法

嵌入式小生 来源:嵌入式小生 作者:iriczhao 2022-10-10 16:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

使用QML来做3D应用开发,优化3D场景和优化设计对3D应用程序将有着显著性能影响。本文描述几种优化3D场景的规则和方法。

一、四种3D场景设计方式

3D场景有多种不同的创建组合方式。例如:高级场景、低级场景、混合场景和Vertex颜色场景。与其他版本的场景相比,高级场景中包含了更多的对象。

低级、混合和Vertex场景包含的对象相对更少,因为它们已经通过将几何形状和烘烤材料结合到纹理中进行了优化。下图显示了Navigator视图中每个场景中的组件,用于对比说明场景之间的结构差异:

69e0232e-35c2-11ed-ba43-dac502259ad0.png

(1-1)低级场景

9ea598e6-35c2-11ed-ba43-dac502259ad0.png

如上图所示,低级场景总共包含12个对象。每个模型(例如橱柜、灯、盘子和水槽)都是独立的网格。

(1-2)高级场景

a4d52182-35c2-11ed-ba43-dac502259ad0.png

如上图所示,高场景总共包含27个对象。这个场景在其他方面与低级场景相似,但含有更多的细节和动画组件(如可以打开的橱柜门和烤箱的门闩)

(1-2)混合场景

ae0acd24-35c2-11ed-ba43-dac502259ad0.png

混合场景是将所有的网格组合成一个单独对象,所有材料都被烘焙成单一的纹理。

(1-3)Vertex颜色场景

ae47b338-35c2-11ed-ba43-dac502259ad0.png

该场景将所有的网格组合成一个单独的对象,网格的颜色由.mesh文件的顶点数据描述,其中包括材质,没有纹理。

在本小节中,出现的高级场景、低级场景、混合场景和Vertex颜色场景四种场景,本质上是一种组织3D场景的方法。在高级场景中,包含的3D对象就非常多,为什么需要包含这么多的3D对象呢,多数情况下,就是为了将小对象分离出来做动画效果和动画控制。如果一个场景中没有动画需求,则完全可采用混合场景和Vertex颜色场景的方法来设计3D场景,还提升了应用渲染性能。

二、3D场景优化规则

为了优化3D场景的图形渲染性能,首先应考虑是否需要给3D对象、灯光、相机或场景中的组件添加动画,如果不需要就尽可能简化场景结构,例如:可以将几何图形和烘烤材料结合到纹理中。理想情况下,将3D图像预渲染为2D图像是很好的选择。检查场景是否存在相同网格的多个实例,如果存在,则只导入一个网格实例,然后在场景中复制它,并为每个副本使用相同的材质。

(2-1)Scene Graph

在Qt Design Studio中,由Navigator中的树形视图表示场景图。同时,我们还可以在Code视图中查看节点的层次结构。通过最小化场景图,可以减少运行场景时所需的工作。因为具有复杂功能的深层层级嵌套将增加性能成本,为了优化场景图,应尽可能避免不必要的组和复杂的层次结构。

(2-2)资源文件优化

尽可能减少资源文件的使用和加载,可以提高渲染性能(在实际3D应用开发过程中,由于多种因素,设计过程中资源文件往往都非常多,一般的做法是:一边开发一边优化资源文件)。

在设计3D素材模型时,应尽量使用最少的三角形或顶点来达到预期的建模效果。因为在3D场景渲染时,较少的图形数量可以降低内存需求量并有助于快速渲染。

(2-3)CPU性能优化

显示3D对象需要CPU或者GPU的大量处理工作。处理每个3D组件都会消耗资源,因此减少可见对象的数量可以减少CPU的工作量。优化建议如下:

(1)合并位置相邻且共享纹理的对象。

注意:合并不共享纹理的对象不会在运行场景时提高CPU性能。

(2)将不同的纹理组合成一个纹理图集,以此方法来减少材料的使用。

(3)避免多次渲染对象。

(2-4)优化模型的几何形状

(1)减少模型中三角形的使用数量。

(2)减少用加倍顶点创建的UV映射接缝和硬边的数量。

三、总结

下表总结了优化3D场景相关的最佳实践:

序号 3D行为 最佳实践建议
1 从3D场景中获得最佳性能 如果不需要动画,可以将3D场景预渲染成2D图像。
2 场景中物体的动画 合并所有静态对象,只导出每个动画组件中的一个。
3 相机动画 虽然在这种情况下使用2D图像是不可取的,但应该将所有的几何图形、烘焙光照和材质合并到一个单一的材质中
4 光照动画 优化方法与“相机动画”一样
5 在网格分离的3D场景中获得最佳性能 对于同一个网格的每个实例使用相同的材质
6 在运行时禁用网格渲染 保持特定的网格分离,合并其他组件。
7 使用低内存的烘焙纹理 将网格颜色烘焙成顶点颜色

现代软件,3D开发属于较高级的开发了(做游戏的除外啦,哈哈),Qt Quick提供的3D开发基础组件的功能也非常强大,高版本的Qt对3D性能做了较多优化,且3D开发作为Quick的未来发展方向之一,也得到了官方的大量优化和维护。

下列为官方提供的一个车载中控终端软件demo,在软件中融入了3D元素,形象直观且炫酷。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11223

    浏览量

    223022

原文标题:QML性能优化 | 3D场景优化

文章出处:【微信号:嵌入式小生,微信公众号:嵌入式小生】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    图扑软件 3D 场景预加载应用实现

    预加载是在进入正式场景之前提前加载所需模型、材质、图片等资源的技术手段,其核心价值在于消除资源加载等待,确保场景首次渲染即可完整呈现,从而提供无缝、流畅的用户体验。在复杂的 Web 3D 可视化
    的头像 发表于 12-01 16:04 90次阅读
    图扑软件 <b class='flag-5'>3D</b> <b class='flag-5'>场景</b>预加载应用实现

    半导体“HBM和3D Stacked Memory”技术的详解

    3D Stacked Memory是“技术方法”,而HBM是“用这种方法解决特定问题的产品”。
    的头像 发表于 11-07 19:39 4833次阅读
    半导体“HBM和<b class='flag-5'>3D</b> Stacked Memory”技术的详解

    使用OpenUSD实现可互操作3D工作流(下)

    通用场景描述简称 OpenUSD,是一个开放且可扩展的生态系统,用于在 3D 世界内描述内容、合成数据、进行仿真和开展协作。
    的头像 发表于 09-23 15:39 638次阅读

    使用OpenUSD实现可互操作3D工作流(上)

    通用场景描述简称 OpenUSD,是一个开放且可扩展的生态系统,用于在 3D 世界内描述内容、合成数据、进行仿真和开展协作。
    的头像 发表于 09-23 15:37 603次阅读

    使用NVIDIA AI Blueprint打造3D世界

    在传统工作流中,建模师必须构建占位模型、低精度资产来填充 3D 场景优化核心资产以完成场景。之后,可以优化、细化并最终完成视觉效果。
    的头像 发表于 09-23 14:35 767次阅读

    玩转 KiCad 3D模型的使用

    “  本文将带您学习如何将 3D 模型与封装关联、文件嵌入,讲解 3D 查看器中的光线追踪,以及如何使用 CLI 生成 PCBA 的 3D 模型。  ”   在日常的 PCB 设计中,我们大部分
    的头像 发表于 09-16 19:21 1.1w次阅读
    玩转 KiCad <b class='flag-5'>3D</b>模型的使用

    iTOF技术,多样化的3D视觉应用

    视觉传感器对于机器信息获取至关重要,正在从二维(2D)发展到三维(3D),在某些方面模仿并超越人类的视觉能力,从而推动创新应用。3D 视觉解决方案大致分为立体视觉、结构光和飞行时间 (TOF) 技术
    发表于 09-05 07:24

    索尼与VAST达成3D业务合作

    与Tripo AI的高精度3D生成能力,打造从内容创作到沉浸式展示的全链路解决方案。此次合作将推动3D技术在展览、零售、教育等场景的普惠化应用,同时也将为元宇宙、工业设计、数字孪生等领域注入新的动能,开启
    的头像 发表于 08-28 17:32 1043次阅读

    AD 3D封装库资料

     AD  PCB 3D封装
    发表于 08-27 16:24 2次下载

    如何提高3D成像设备的部署和设计优势

    3D视觉技术正快速普及,其增长得益于成本下降和软件优化,应用场景从高端工业扩展到制造、物流等领域。该技术通过1-2台3D相机替代多台2D设备
    的头像 发表于 08-06 15:49 460次阅读
    如何提高<b class='flag-5'>3D</b>成像设备的部署和设计优势

    3D AD库文件

    3D库文件
    发表于 05-28 13:57 6次下载

    3D闪存的制造工艺与挑战

    3D闪存有着更大容量、更低成本和更高性能的优势,本文介绍了3D闪存的制造工艺与挑战。
    的头像 发表于 04-08 14:38 1851次阅读
    <b class='flag-5'>3D</b>闪存的制造工艺与挑战

    SciChart 3D for WPF图表库

    DirectX 支持的 WPF 3D 图表和广泛的 API 完成工作。 WPF 3D 图表性能 我们传奇的 WPF 3D 图表性能由广泛的端到端性能优化、不安全代码、C++ 互操作、
    的头像 发表于 01-23 13:49 1266次阅读
    SciChart <b class='flag-5'>3D</b> for WPF图表库

    腾讯混元3D AI创作引擎正式发布

    近日,腾讯公司宣布其自主研发的混元3D AI创作引擎已正式上线。这一创新性的创作工具将为用户带来前所未有的3D内容创作体验,标志着腾讯在AI技术领域的又一重大突破。 混元3D AI创作引擎凭借其强大
    的头像 发表于 01-23 10:33 990次阅读

    腾讯混元3D AI创作引擎正式上线

    近日,腾讯公司宣布其自主研发的混元3D AI创作引擎已正式上线。这一创新性的创作工具,标志着腾讯在3D内容生成领域迈出了重要一步。 混元3D AI创作引擎的核心功能极为强大,用户只需通过简单的提示词
    的头像 发表于 01-22 10:26 982次阅读