Babylon.js 读取GLB模型元数据

如果你熟悉将 3D 资源导出到游戏引擎的过程,那么无疑也会熟悉 3D 资源的 PBR 和 GLB 导出过程。 这是我们之前概述的内容,也是我们交互式工作的所有资产准备的基石。

然而,从传统的管道意义上来说,能够用元数据标记网格有很多逻辑,以便可以通过代码以某种方式处理它们。

好处如下:

  • 你可以轻松设置更复杂的行为。
  • 你可以将文本、链接或任何其他自定义数据(例如 JSON 架构)嵌入到各个网格中。
  • 你可以标记单个资源中的网格组。
  • 你不受对象命名更改的束缚,因此强大的创建管道也不需要按部件名称过滤对象。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 

1、Babylon 的标签机制

Babylon 中的标签非常有用,也是我们使用的东西,但它是在运行时使用的。 您仍在对对象进行过滤或排序到数组中,或者在创建对象时进行添加。 GLB 元数据使我们可以选择将数据保存到资产模型本身中。

我们使用 3dsMax 来准备我们的资源,工具和过程是我们之前介绍过的。 我们的 Github 存储库中有一些用于此目的的工具。

Babylon.js 是一个很棒的 WebGL 平台,也是我们喜欢用于交互式项目的平台。 因此,通过为 3dsMax 编写一个工具脚本来添加元数据预导出来添加到工具集中是有意义的,这样结构就可以由项目负责人或 TD 定义,并且可以为开发人员提供一个包含大量选项的模型。 保持相同的嵌入数据格式,你可以交换模型并在应用程序之间具有类似的功能,几乎不需要任何代码重构。

我们将在示例中使用此模型,即 Draco 编码的叉车动画。

2、设置自定义元数据属性

提取 GLTF 工具存储库后,你将可以访问属性工具。 这是使用默认属性设置的,该属性应该可以处理几乎大多数标记网格体的场景。

_attr 文件夹保存默认属性 - 如果你了解一些脚本,可以构建任意数量的自定义属性类型来保存任何级别的数据,甚至只是一些自定义值。

在 3dsMax 中,你可以将属性批量添加到每个对象。 要使用它,请运行babylonMetadata.ms 脚本文件。 你可以将它们添加到 #userscripts 目录中,但它将从任何地方运行。

元数据脚本会将相同的属性参数添加到每个网格的基础对象上 - 它是一个映射函数,因此它将循环选择来执行此操作。

你可以单独选择每个对象并自定义数据,也可以使用以下函数整体选择 -

SetBabylonMetadataOnSelection()

将特定网格设置为触发对象

其他子网格可以用不同的属性进行标记,以便在运行时自动过滤它们并向它们附加任何额外的数据 -

我将 HUD 动画设置为不同的 MeshID,因为我可以将其添加到发光层

完成此操作后,你可以运行导出器并以通常的方式保存,你将能够看到导出器在日志中正确添加元数据 -

请记住,Babylon 导出器仅添加到网格中!

导出网格体将带有此附加属性

3、验证嵌入的元数据

此沙箱提供了带有嵌入式元数据的 GLB 的简单示例。

这是检索元数据的代码 -

meshTask.onSuccess = function (task) { task.loadedMeshes.forEach(meshPart => { // check for metadata on the meshestry {console.log( “Custom Metadata Mesh — “ , meshPart.name , meshPart.metadata.gltf.extras);} catch (error) {console.log( “Null Objects”, meshPart.name); }}); }

我们可以在 Chrome 控制台中看到我们如何获得所有对象的良好数据集。

我希望这可以很好地概述如何使用 Babylon.js 导出器将数据嵌入到外部网格中。 如果需要更多信息,请参阅帮助文档中存储的信息,正是这个信息真正触发了整个过程。


原文链接:Babylon读取GLB元数据 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/3560.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通配符HTTPS安全证书

众多类型的SSL证书,要说适用或者说省钱肯定是通配符了,因为谁都想一本SSL证书包括了整条域名,而且也不用一条一条单独管理。 通配符HTTPS安全证书,其实就是通配符SSL证书,SSL证书主流CA的参数都一样,通配符…

武汉星起航:亚马逊助力中国卖家扬帆出海,迎来跨境电商新机遇

2015年,亚马逊全球开店业务正式踏入中国这片充满活力和潜力的市场,此举不仅为中国卖家提供了前所未有的跨境电商新机遇,更为其发展出口业务、拓展全球市场、打造国际品牌铺设了一条坚实的道路。亚马逊作为国际版的电商购物平台,其…

Hadoop-Hive-Spark-离线环境搭建

一、版本描述 apache-hive-2.3.9-bin.tar.gz hadoop-2.7.0.tar.gz spark-2.4.0-bin-hadoop2.7.tgz 下载链接: https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz https://archive.apache.org/dist/hadoop/common/hadoop-2.7.…

vscode 创建代码模版

在vscode中快捷创建代码模版 1.在VSCode中,按下Ctrl Shift P(Windows/Linux)或Cmd Shift P(Mac)打开命令面板。 2.然后输入"Preferences: Configure User Snippets"并选择该选项。打开一个json文件用户…

IDEA中配置使用maven和配置maven的中央仓库

1 以汉化后的IDEA为例配置maven 打开idea选择文件 选择 设置 点击>构建.执行.部署 点击>构建工具 点击>Maven 其中Maven主路径 就是我们maven下载解压后的路径 可以通过边上的三个点选择你解压后的绝对路径,也可以直接把解压后的绝对路劲复制过来 以下…

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测

回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测 目录 回归预测 | Matlab实现SSA-ESN基于麻雀搜索算法优化回声状态网络的多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现SSA-ESN基于麻雀搜索算法…

物联网:从电信物联开发平台AIoT获取物联设备上报数据示例

设备接入到电信AIoT物联平台后,可以在平台上查询到设备上报的数据。 下面就以接入的NBIOT物联远传水表为例。 在产品中选择指定设备,在数据查看中可以看到此设备上报的数据。 示例中这组数据是base64位加密的,获取后还需要转换解密。 而我…

2024 IDM最新破解版及软件介绍

*IDM:信息时代的高效管理工具** 在快节奏的现代社会中,随着信息的爆炸式增长,如何高效、有序地管理信息成为每个人都需要面对的挑战。IDM,作为一种信息管理工具,正在逐渐受到人们的青睐。 IDM,全称Inform…

Linux--进程控制(1)

文章衔接: Linux--环境变量-CSDN博客 Linux--地址空间-CSDN博客 目录 1.进程创建 2.进程的终止 2.1想明白:终止是在做什么? 2.2进程终止的三种情况 2.3 进程如何终止 3.进程等待 (wait/waitpid) 1.进程创建 在li…

C++内存分布 new和delete介绍

目录 C/C内存分布 栈区 堆区 静态区 常量区 C new和delete 分配空间形式对比 new delete与malloc free的区别 可不可以串着使用new和free呢 C/C内存分布 C的内存分布,大体上分为栈区 堆区 静态区 常量区 栈区 栈区是用于存储函数调用时的局部变量 函…

MySQL——运维

日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 查看日志位置: sho…

Eigen::svd和 np.linalg.svd的不同之处

目录 pythonc结论参考 SVD奇异值分解与PCA主成分分析 SVD动画图解–Wiki Eigen Svd 和 np.linalg.svd都可以用于SVD计算,但两者却存在细微的差别。 python import numpy as np datanp.array([[0.99337785, 0.08483806, 0.07747866, -92.91055059],[-0.07889607,…

【Qt常用控件】—— 多元素控件

目录 1.1 List Widget 1.2 Table Widget 1.3 Tree Widget 1.4 小结 Qt 中提供的多元素控件有: QListWidget QListView QTableWidget QTableView QTreeWidget QTreeView xxWidget 和 xxView 之间的区别 以 QTableWidget 和 QTableView 为例: QTableView 是基于…

03-JAVA设计模式-备忘录模式

备忘录模式 什么是备忘录模式 Java中的备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后可以将对象恢复到原先保存的状态…

Idea:阿里巴巴Java编码插件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、Alibaba Java Coding Guidelines插件介绍 二、使用步骤 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、Alibaba Java Coding …

【AI】Deepstream入门(2)Ubuntu20.04安装Deepstream

1、安装GPU驱动 本人显卡型号:RTX4060 Laptop(笔记本专用显卡) 【AI】惠普暗夜精灵9安装Ubuntu20.04+nvidia驱动 2、安装cuda、cuDNN 【AI】Ubuntu20.04安装cuda、cuDNN 3、安装TensorRT 1)下载 下载地址:https://docs.nvidia.com/deeplearning/tensorrt/archives/i…

用于肺结节分类的常规 EHR 的纵向多模态Transformer集成成像和潜在临床特征

Longitudinal Multimodal Transformer Integrating Imaging and Latent Clinical Signatures from Routine EHRs for Pulmonary Nodule Classification 摘要 该研究提出了一种基于Transformer 的多模态策略,用于将重复成像与常规电子健康记录(EHRs&…

低空经济概念

低空经济是指利用低空空域资源,通过低空交通工具和技术创新发展,促进航空产业、旅游、物流、紧急救援等多领域经济增长和产业融合。随着科技的不断进步和航空产业的快速发展,低空经济正逐渐成为全球经济的重要组成部分。 一、低空经济的主要特…

「珞石机器人」完成超5亿元战略+轮融资

珞石机器人ROKAE. 新一代智能机器人专家 近日,襄禾资本投资企业「珞石机器人」宣布完成超5亿元的战略轮融资,本次融资获得了国家制造业转型升级基金和邹城市新动能产业投资基金的共同加持,资金将主要用于市场开发、国际化开拓、产品升级迭代…

【【gitlab解决git Clone 出现 Permission denied, please try again.】】

【gitlab解决git Clone 出现 Permission denied, please try again.】 问题解决随便找一个地方 点击右键输入ssh -keygen -C "邮件"显示结果输入 登录gitlab然后再次git Clone就可以了。 问题 git clone的时候出现 Permission denied, please try again 解决 随便…