3D模型轻量化
在线工具推荐:3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎
近来,基于3D模型在影视作品、数字旅游项目诸多3D视觉领域都取得了优越展示效果,受到了广泛关注。然而,3D模型通常参数量大、复杂度高、兼容性差,制约了在实际应用中的部署和使用,尤其在资源受限的设备或对实时性、交互性要求很高的场景中。因此,模型的“轻量化”研究成为了3D界关注的热点。
1、什么是模型轻量化?
轻量化是BIM行业所熟知的一个概念,其大概含义是指对三维模型中的几何数据进行压缩,以达到快速存储和流畅传输的目的。
三维模型轻量化是指对三维模型进行优化处理,以减少其存储空间和计算资源的占用,从而提高处理速度和系统性能的一种技术。在实际应用中,由于三维模型包含大量的顶点、面片和纹理等数据,因此需要借助三维模型轻量化技术来降低数据量,以便更好地适应各种场景和需求。
2、模型轻量化的方法
3D模型轻量化是指减少3D模型的文件大小,以便在需要更快的数据传输或更快的渲染速度时使用。以下是几种常见的3D模型轻量化方法:
移除不必要的细节:模型中可能存在一些细节,但这些细节对于渲染或使用模型并不重要。通过移除这些不必要的细节,可以大大减小模型的大小。
优化模型结构:对模型的拓扑结构进行优化可以大幅度减小文件大小。例如,将多边形替换为三角形,删除重复的顶点等。
减少纹理贴图:纹理贴图通常会增加模型的大小。通过减少纹理的大小和数量,可以减小模型文件的大小。
压缩模型:使用专业的3D软件或工具可以将3D模型文件压缩成更小的文件大小。
简化模型:将高细节模型简化成低细节模型可以有效地减少文件大小。这可以通过使用3D软件中的简化工具完成。
移除隐藏部分:如果3D模型的一部分永远不会被看到,可以将其从模型中移除,从而减少文件大小。
3、模型轻量化应用场景
三维模型轻量化技术在很多场景下都有着广泛的应用,以下是一些常见的应用场景:
1、游戏开发
在游戏开发中,三维模型轻量化技术可以用于减少游戏内存和加速渲染。通过对游戏中的三维模型进行压缩和简化处理,可以降低游戏的内存占用和提高游戏的运行速度,从而优化游戏体验。
2、虚拟现实和增强现实
在虚拟现实和增强现实领域中,三维模型轻量化技术可以用于减少数据传输、加速图像渲染等方面。由于虚拟现实和增强现实需要实时呈现三维模型,因此通过对模型进行轻量化处理,可以降低数据传输带宽和提高图像渲染速度,从而优化用户体验。
3、三维地图
在三维地图领域中,三维模型轻量化技术可以用于减少数据存储和传输成本。通过对建筑物、街道等三维模型进行简化,可以降低数据量和提高数据传输速度,从而为用户提供更加流畅的地图浏览体验。
4、工业设计
在工业设计领域中,三维模型轻量化技术可以用于减少建模成本和加速产品开发。通过对三维模型进行简化和优化处理,可以降低建模成本和提高产品设计的效率,从而为工业设计带来更多的便利。
三维模型轻量化技术具有广泛的应用场景,其中包括游戏开发、虚拟现实和增强现实、三维地图以及工业设计等多个领域。随着技术的不断发展,三维模型轻量化技术将会在越来越多的领域中得到应用和发展。
4、如何使用GLTF 编辑器轻量化3D模型?
如何实现超大规模的倾斜摄影三维模型的高质量的轻量化压缩,快速高效的处理工具软件非常重要,保证轻量化数据大小合适和质量达标,降低存储和传输成本、提高可视化性能和拓展应用场景。下面介绍如何使用GLTF 编辑器 -NSDT软件对3D模型进行轻量化处理。
模型合批(Batching)是一种优化技术,用于在计算机图形渲染中提高性能和效率。它通过将多个模型的渲染操作合并为一次来减少渲染调用的数量,从而提高渲染性能以及压缩模型体积。
下面讲解如何进行模型合拼操作,首先将模型拖入编辑器中,如图所示:
材质合并前
从图中的左侧面板中可以看到该模型中有很多相同材质。
查看模型FPS信息,如图所示:
模型合批前,FPS是13,渲染效果不太流畅
下一步,材质合批:只需要点击GLTF 编辑器工具栏上第二个按钮【合并相同材质的Mesh】,编辑器就会自动将模型中相同的材质进行合并,合并完成后将修改后的模型导出到本地GLB文件。
材质合并后
下面材质合并前后的FPS对比:
模型合批后,FPS是47,有着明显的提升
再看模型体积的前后比对,压缩到了原来体积的将近三分之一,如图所示:
5、总结
轻量化为用户提供了全新的模型处理思路,全自动打通了不同行业之间的技术壁垒。同时随着视觉技术、算力和数据等不断完善,模型的复杂度急剧攀升,3D模型的能耗代价将越来越高,轻量化高效的计算效率和低廉的部署应用成本,能够在未来给更多实际产品及项目中发挥极大优势。除此之外,本地化的轻量化在支持原有服务的同时,还能够更好地保护用户数据及隐私,用户的数据不需要离开设备,即可实现远程优化。
转载:3D模型轻量化 (mvrlink.com)
相关文章:

3D模型轻量化
在线工具推荐:3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 近来,基于3D模型在影视作品、数字旅游项目诸多3D视觉领域都取得…...

数据分析——快递电商
一、任务目标 1、任务 总体目的——对账 本项目解决同时使用多个快递发货,部分隔离区域出现不同程度涨价等情形下,如何快速准确核对账单的问题。 1、在订单表中新增一列【运费差异核对】来表示订单运费实际有多少差异,结果为数值。 2、将…...

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(8)
接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(7) 2.2 HOST主桥 MPC8548处理器的拓扑结构如图2-2所示: 2.2.2 存储器域地址空间到PCI总线域地址空间的转换 MPC8548处理器使用ATMUÿ…...

Hadoop分布式文件系统(二)
目录 一、Hadoop 1、文件系统 1.1、文件系统定义 1.2、传统常见的文件系统 1.3、文件系统中的重要概念 1.4、海量数据存储遇到的问题 1.5、分布式存储系统的核心属性及功能含义 2、HDFS 2.1、HDFS简介 2.2、HDFS设计目标 2.3、HDFS应用场景 2.4、HDFS重要特性 2.4…...

macOS跨进程通信: FIFO(有名管道) 创建实例
一: 简介 在类linux系统中管道分为有名管道和匿名管道。两者都能单方向的跨进程通信。 匿名管道(pipe): 必须是父子进程之间,而且子进程只能由父进程fork() 出来的,才能继承父进程的管道句柄,一般mac 开发…...

推荐几个免费的HTTP接口Mock网站和工具
在前后端分离开发架构下,经常遇到调用后端数据API接口进行测试、集成、联调等需求,比如: (1)前端开发人员很快开发完成了UI界面,但后端开发人员的API接口还没有完成,不能进行前后端数据接口对接…...

企业数据库安全管理规范
1.目的 为规范数据库系统安全使用活动,降低因使用不当而带来的安全风险,保障数据库系统及相关应用系统的安全,特制定本数据库安全管理规范。 2.适用范围 本规范中所定义的数据管理内容,特指存放在信息系统数据库中的数据。 本…...
react:ffcreator中FFCreatorCenter视频队例
最近项目要求,一键生成房子的推荐视频,选几张图,加上联系人的方式就是一个简单的视频,因为有web端、小程序端,为了多端口用,决定放在服务器端生成。 目前用的是react中的nextjs来开发项目。 nextjs中怎样…...
力扣(leetcode)第434题字符串中的单词数(Python)
434.字符串中的单词数 题目链接:434.字符串中的单词数 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: “Hello, my name is John” 输出: 5 解释: 这…...

django学习:页面渲染与请求和响应
1.请求过程 2.页面渲染 在app中新建一个目录(Directory),文件名命名为templates。该文件名命名是固定的,不可命名出错,如若后续步骤出错,该目录文件名是一个检查的重点项目。在该目录下新建一个html文件&a…...
Redis 数据一致性
概述 当我们在使用缓存时,如果发生数据变更,那么你需要同时操作缓存和数据库,而它们两个又分属不同的系统,因此无法做到同时操作成功或失败,因此在并发读写下很可能出现缓存与数据库数据不一致的情况 理论上可以通过…...

Mac环境下反编译apk
Mac环境下反编译apk 安装反编译工具dex2jar:[官网下载](https://sourceforge.net/projects/dex2jar/)JD-GUI:[官网下载](https://jd-gui.apponic.com/) 实操1. 将需要反编译的 .apk 文件放在下载的 dex2jar 文件夹目录下2. 使用 cd /xxx/dex2jar-2.0 命令…...
计算机网络——网络模型的组织、看法以及标准化流程
1. 通信技术和标准化领域中扮演重要角色的组织 1.1 国际和国家官方标准化机构 OSI:国际标准化组织(ISO),负责国际标准的制定,旨在确保全球产品和服务的安全性、可靠性和效率。它有许多国家分支机构,包括法…...

【JAVA】volatile 关键字的作用
🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 volatile 的作用: 结语 我的其他博客 前言 在多线程编程中,保障数据的一致性和线程之间的可见性是…...

Next.js 第一次接触
因为需要整个漂亮的在线文档,所以接触了next.js,因为对前端js本身不够熟悉,别说对react.js 又不会,时间又不允许深入研究,所以,为了加一个导航菜单,极其痛苦。 有点小bug,不过不影响…...
CISSP 第7章:PKI和密码学应用
第七章 PKI和密码学应用 7.1 非对称密码学 对称密码系统具有共享的秘钥系统,从而产生了安全秘钥分发的问题 非对称密码学使用公钥和私钥对,无需支出复杂密码分发系统 7.1.1 公钥与私钥 7.1.2 RSA(兼具加密和数字签名) RSA算法依赖…...
dji uav建图导航系列()ROS中创建dji_sdk节点包(二)实现代码
在前文 【dji uav建图导航系列()ROS中创建dji_sdk节点包(一)项目结构】中简单介绍了项目的结构,和一些配置文件的代码。本文详细说明目录src下的节点源代码实现。 文章目录 1、代码结构2、PSDK部分3、ROS部分3.1、头文件3.1.1、外部调用 node_service.h3.1.2、节点类定义…...

数字化工厂产品推荐 带OPC UA的分布式IO模块
背景 近年来,为了提升在全球范围内的竞争力,制造企业希望自己工厂的机器之间协同性更强,自动化设备采集到的数据能够发挥更大的价值,越来越多的传统型工业制造企业开始加入数字化工厂建设的行列,实现智能制造。 数字化…...
使用OHOS SDK构建opus
参照OHOS IDE和SDK的安装方法配置好开发环境。 从github下载源码。 执行如下命令: git clone --depth1 https://github.com/xiph/opus进入源码所在的目录,创建批处理文件ohos_build.cmd,内容如下: echo off setlocalset OHOS_…...

K-means 聚类算法分析
算法简述 K-means 算法原理 我们假定给定数据样本 X ,包含了 n 个对象 ,其中每一个对象都具有 m 个维度的属性。而 K-means 算法的目标就是将 n 个对象依据对象间的相似性聚集到指定的 k 个类簇中,每个对象属于且仅属于一个其到类簇中心距离…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...

MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...