Blender插件:GLTF 2.0 导入/导出工具

news2024/11/28 0:39:40
推荐:使用 NSDT场景编辑器快速搭建3D应用场景

用法

glTF™(GL传输格式)用于3D模型的传输和加载 在 Web 和本机应用程序中。glTF 减小了 3D 模型的大小和 解包和呈现这些模型所需的运行时处理。 这种格式在网络上常用,并且在各种3D引擎中都有支持。 比如Unity3D、虚幻引擎4和Godot。

此导入器/导出器支持以下 glTF 2.0 功能:

  • 网 格
  • 材料(原理BSDF)和无阴影(无照明)
  • 纹理
  • 相机
  • 准时灯光(点、点和方向)
  • 动画(关键帧、形状关键帧和外观)

网 格

glTF的内部结构模仿了图形芯片常用的内存缓冲区 实时渲染时,以便可以将资产交付到桌面、Web 或移动客户端 并以最少的处理及时显示。结果,四边形和 n 边形 导出为 glTF 时自动转换为三角形。 不连续的 UV 和平坦的阴影边缘可能会导致 glTF 中的顶点计数略高 与搅拌机相比,因为这样的顶点是分开的。 同样,曲线和其他非网格数据也不会保留, 并且必须在导出之前转换为网格。

材料

glTF中的核心材料系统支持金属/原石PBR工作流程 具有以下信息渠道:

  • 基色
  • 金属
  • 粗糙度
  • 烘烤环境光遮蔽
  • 法线贴图
  • 发射的

../_images/addons_io-gltf2_material-频道.jpg

glTF 2.0 核心格式中可用的各种图像映射的示例。这是 水瓶示例模型与其各种图像映射的切片一起显示。

进口材料

glTF材料系统与Blender自己的材料不同。导入 glTF 文件时, 该插件将构建一组Blender节点,以尽可能接近地复制每个glTF材料。

导入器支持金属/原石 PBR (核心 glTF)、规格/光泽 PBR () 和无阴影 () 材料。KHR_materials_pbrSpecularGlossinessKHR_materials_unlit

提示

检查材料导入过程的结果是查看示例的好方法 可导出到 glTF 的材质节点和设置的类型。

出口材料

导出器支持金属/粗糙PBR(核心glTF)和无阴影()材料。 它将根据它在Blender材质中识别的节点构建glTF材质。 材料导出过程处理下述设置。KHR_materials_unlit

注意

当材质使用图像纹理时,glTF 要求图像采用 PNG 或 JPEG 格式。 该插件将自动转换其他格式的图像,从而增加导出时间。

提示

要创建无阴影(无光照)材质,请使用背景材质类型。

基色

glTF 基色是通过在原则 BSDF 节点上查找基色输入来确定的。 如果输入未连接,则输入的默认颜色(未连接的套接字旁边的色域) 用作 glTF 材质的基色。

../_images/addons_io-gltf2_material-基色-实绿色.png

可以直接在节点上指定纯基色。

如果发现图像纹理节点连接到基色输入, 该图像将用作 glTF 基色。

../_images/addons_io-gltf2_material-baseColor-imageHookup.png

图像用作 glTF 基色。

金属和粗糙度

这些值是从原则 BSDF 节点读取的。如果这两个输入都未连接, 节点将显示滑块以控制它们在 0.0 和 1.0 之间的相应值, 这些值将被复制到 glTF 中。

使用图像时,glTF 期望金属值在蓝色 () 通道中编码, 以及在同一图像的绿色()通道中编码的粗糙度。 如果图像以不遵循此约定的方式连接到 Blender 节点, 加载项可能会尝试在导出过程中将图像调整为正确的形式(增加导出时间)。BG

在Blender节点树中,建议使用单独的RGB节点 将通道与图像纹理节点分开,以及 将绿色 () 通道连接到粗糙度,将蓝色 () 连接到金属。 glTF 导出商将识别此安排与 glTF 标准匹配,并且 这将允许它在导出过程中简单地将图像纹理复制到 glTF 文件中。GB

此时的“图像纹理”节点应将其“颜色空间”设置为“非颜色”。

../_images/addons_io-gltf2_material-金属原石.png

以符合glTF标准的方式连接的金属/粗糙度图像, 允许在导出的 glTF 文件中逐字使用它。

烘烤环境光遮蔽

glTF能够存储烘焙的环境光遮蔽贴图。 目前没有导致Blender的节点排列 以与 glTF 中完全相同的方式使用此类映射。 但是,如果导出程序找到名为 和 的自定义节点组 查找在该节点组上命名的输入, 它将查找附加在那里的图像纹理,以用作glTF中的遮挡贴图。 效果不需要在Blender中显示,因为Blender还有其他显示环境光遮蔽的方式, 但此方法将允许导出器将遮挡图像写入 glTF。 这对于实时 glTF 查看器非常有用,尤其是在存在 可能不是在渲染时计算这些东西的备用电源。glTF SettingsOcclusion

../_images/addons_io-gltf2_material-遮挡.png

预烘焙的环境光遮蔽贴图,连接到不渲染但将导出到 glTF 的节点。

提示

创建自定义节点组的最简单方法是导入现有的 glTF 模型 包含遮挡贴图,例如 水瓶或其他现有模型。也可以使用手动创建的自定义节点组。

glTF 将遮挡存储在红色 () 通道中,允许其选择性共享 具有粗糙度和金属通道的图像相同。R

../_images/addons_io-gltf2_material-orm-hookup.png

这种节点组合模仿了glTF包装遮挡、粗糙度和 金属值到单个图像中。

提示

循环渲染引擎有一个烘焙面板,可用于烘焙 环境光遮蔽贴图。生成的图像可以保存和连接 直接到节点。glTF Settings

法线贴图

要在 glTF 中使用法线贴图,请连接图像纹理节点的颜色输出 连接到法线贴图节点的颜色输入,然后将法线贴图法线输出连接到 原则 BSDF 节点的正常输入。“图像纹理”节点 为此,应将其“颜色空间”属性设置为“非颜色”。

法线贴图节点必须保留在其默认属性“切线空间”上,作为 这是 glTF 目前支持的唯一法线贴图类型。 法线贴图的强度可以在此节点上进行调整。 导出器不会直接导出这些节点,而是会使用它们来定位 正确的图像,并将强度设置复制到 glTF 中。

../_images/addons_io-gltf2_material正常.png

连接了一个法线地图图像,以便导出器能够找到并复制它 到 glTF 文件。

提示

循环渲染引擎有一个烘焙面板,可用于烘焙 来自几乎任何其他法线向量节点排列的切空间法线贴图。 将烘焙类型切换为正常。保留默认空间设置 (空格:切线,R: +X,G:+Y,B:+Z)当将此烘焙面板用于glTF时。 生成的烘焙图像可以保存并插入到新材料中 如上所述的法线贴图节点,允许其正确导出。

请参见:循环渲染烘焙

发射的

图像纹理节点可以连接到发光着色器节点,并且 可以选择通过添加着色器节点与原则 BSDF 节点的属性组合。

如果 glTF 导出器找到连接到发光着色器节点的图像, 它会将该图像导出为 glTF 材质的自发光纹理。

../_images/addons_io-gltf2_material-自发光.png

可以将排放节点添加到现有节点。

注意

此导出器尚不支持原则 BSDF 节点的发射输入。 这可能会在将来的版本中更改。

双面/背面剔除

对于仅可以看到正面的材质,请打开背面剔除 Eevee 材质的“设置”面板。使用其他发动机(循环、工作台)时 您可以暂时切换到 Eevee 来配置此设置,然后切换回来。

对于双面材料,请取消选中此框。

../_images/addons_io-gltf2_material-背面剔除.png

此设置的反转控制 glTF 的标志。

混合模式

基色输入可以选择提供 alpha 值。 glTF 如何处理这些值取决于所选的混合模式。

选择 Eevee 渲染引擎后,每个材质都有一个混合模式 材质设置面板。使用此设置定义 alpha 值如何从 基色通道在 glTF 中处理。glTF 支持三种设置:不透明字母值将被忽略(默认值)。阿尔法混合较低的 Alpha 值会导致与背景对象混合。阿尔法剪辑低于“剪辑阈值”设置的 Alpha 值将导致部分 根本不要渲染的材料。其他所有内容都呈现为不透明。

../_images/addons_io-gltf2_material-αBlend.png

选择Eevee引擎后,材质的混合模式是可配置的。

注意

请注意,透明度(或 Alpha 混合模式)对于实时引擎来说很复杂 进行渲染,并且在导出后可能会以意外的方式运行。在可能的情况下, 改用 Alpha 裁剪模式,或仅将不透明多边形放在后面 阿尔法混合多边形的单个图层。

紫外线贴图

通过连接 UV 贴图节点可以控制 UV 贴图的选择和变换 以及将节点映射到任何图像纹理节点。

“映射”节点中的设置使用名为 的 glTF 扩展名导出。 顶部有一个映射类型选择器。是建议导出的类型。还支持纹理矢量。支持的偏移量包括:KHR_texture_transform

  • 位置 - X 和 Y
  • 旋转 - 仅 Z 轴
  • 比例 - X 和 Y

对于纹理类型,缩放 X 和 Y 必须相等(均匀缩放)。

../_images/addons_io-gltf2_material-mapping.png

深思熟虑的UV贴图选择。

提示

这些节点是可选的。并非所有 glTF 读取器都支持多个 UV 贴图或纹理变换。

因素

任何图像纹理节点都可以选择与常量颜色或标量相乘。 这些将作为因子写入 glTF 文件中,它们是相乘的数字 使用指定的图像纹理。这些并不常见。

如果需要,单一材料可以同时使用上述所有材料。此图显示 同时应用上述多个选项时的典型节点结构:

../_images/addons_io-gltf2_material原则.png

具有自发光纹理的原则 BSDF 材质。

扩展

核心 glTF 2.0 格式可以使用 glTF 扩展扩展使用额外信息进行扩展。 这允许文件格式保存首次发布时不被视为通用的详细信息。 并非所有 glTF 阅读器都支持所有扩展,但有些扩展相当常见。

某些Blender功能只能通过这些扩展导出到glTF。 此附加组件直接支持以下 glTF 2.0 扩展:

进口

  • KHR_materials_pbrSpecularGlossiness
  • KHR_lights_punctual
  • KHR_materials_unlit
  • KHR_texture_transform

出口

  • KHR_draco_mesh_compression
  • KHR_lights_punctual
  • KHR_materials_unlit
  • KHR_texture_transform

动画

glTF 允许每个文件有多个动画,动画目标为 导出时的特定对象。为了确保包含动画, (a) 使其成为对象上的活动操作,(b) 创建单条带 NLA 轨道, 或 (c) 隐藏操作。

支持

仅支持某些类型的动画:

  • 关键帧(平移、旋转、缩放)
  • 形状键
  • 电枢/蒙皮

其他属性(如光源或材质)的动画将被忽略。

自定义属性

大多数对象的自定义属性都保留在 glTF 导出/导入中,并且 可用于用户特定目的。

原文链接:Blender插件:GLTF 2.0 导入/导出工具 (mvrlink.com)

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

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

相关文章

COSCon'23 开源市集:共赴一场草坪上的开源派对

一年一度的开源盛会,第八届中国开源年会(COSCon23 ),将于10月28~29日,在四川成都市高新区菁蓉汇召开!本次大会的主题是:“开源:川流不息、山海相映”! 我们预期会有超过1…

腾讯云免费SSL证书申请流程_每年免费50个HTTPS证书

2023腾讯云免费SSL证书申请流程,一个腾讯云账号可以申请50张免费SSL证书,免费SSL证书为DV证书,仅支持单一域名,申请腾讯云免费SSL证书3分钟即可申请成功,免费SSL证书品牌为TrustAsia亚洲诚信,腾讯云百科分享…

构建知识库——一文解决跨平台科研文献及笔记同步问题

文章目录 需求及目标现有方案调研文献管理方案云存储方案Markdown编辑器Windows端Ipad端 图床管理方案 最终方案操作流程最后 作为一个十级懒人,要么躺着要么在探寻提效工具的路上。 开始打工生涯之后,除了正常工作时间,总想利用业余时间提升…

详解Vue中的render: h => h(App)

声明:只是记录,会有错误,谨慎阅读 我们用脚手架初始化工程的时候,main.js的代码如下 import Vue from vue import App from ./App.vueVue.config.productionTip falsenew Vue({// 把app组件放入容器中render: h > h(App), }).$mount(#ap…

PaddleNLP使用Vicuna

LLaMA 模型 LLaMa 是一个大型语言模型,由 Meta 开源。它的全称是 Large Language Model Meta AI,参数量从 70 亿到 650 亿不等。例如,130 亿参数的 LLaMA 模型在大多数基准上可以胜过参数量达 1750 亿的 GPT-3,而且可以在单块 V1…

Vue框架--Vue中的事件

1.事件处理 事件的基本使用: (1).使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名; (2).事件的回调需要配置在methods对象中,最终会在vm上; (3).methods中配置的函数,不要用箭头函数!否则this就不是vm了; (4).methods中配置的函数,都是被Vue所管理的函数,this的…

python 之import与from import 导入库的解析与差异

文章目录 1. **使用import导入整个模块**:2. **使用from import导入特定内容**:注意事项别名的使用 在Python中,import和from import是用于导入模块中内容的两种不同方式。下面详细介绍它们的用法和差异: 1. 使用import导入整个模…

python in excel 如何尝鲜 有手就行

众所周知,微软在8月下旬放出消息python已入驻excel,可到底怎么实现呢。 今天我就将发布python in excel的保姆级教程,开始吧! 获取office 365 账号 首先我们要有微软office365 这时候需要再万能的某宝去找一个账号,…

梯度下降算法入门

提到梯度下降我们知道梯度下降算法是很多机器学习算法、深度学习算法的基础。 首先我们需要明确一些概念什么是梯度: 梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处…

嵌入式学习笔记(10)mkv210_image.c代码详解

第1步:检验用户传参是不是3个。 第2步:分配16KB buffer并且填充为0. 第3步:打开源bin(led.bin),判断bin长度是否不大于16KB-16Bytes 第4步:以16个字符串填充0~15这16个Bytes 第5步&#xff…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书成都理工大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书成都理工大学图书馆

Zabbix部分避坑知识点

一、密码重置 在使用zabbix的过程中由于默认密码过于简单,往往会修改密码并配置为自动登录,时间一长往往忘记密码,造成无法登录的情况,这种情况就需要重置密码。Zabbix的密码存储在数据库中,可通过数据库重置。在Zabb…

Jpeg文件格式详解

摘要:之前做过一些Jpeg相关的需求,对Jpeg进行了一些了解但是不够系统,因此整理下Jpeg文件相关的内容。本文描述了Jpeg文件格式的详细构成以及JPEG/JFIF,JPEG/EXIF的区别。   关键字:JPEG,JFIF,EXIF 1 简介 JPEG&…

瑞吉外卖简历也许可以这样写

项目描述: 瑞吉外卖是一款专门为餐饮企业(餐厅、饭店)定制的软件产品,包括系统管理后台和移动端应用两部分。系统管理后台主要提供给餐饮企业内部员工使用,用于对餐厅的分类、菜品、套餐、订单、员工等进行管理维护。…

unity2022版本 实现json读取保存 list自定义对象的读取与保存

1.序列化对象 通过unity自带的JsonUtility中的ToJson方法来序列化对象 public static string ToJson(object obj, bool prettyPrint) ToJson返回一个序列化后的json字符串, 参数一 要序列化的对象 参数二 设置是否返回结果是否带有可读性 默认是false就是不带…

Python中怎么解决内存管理的问题? - 易智编译EaseEditing

Python有自动的内存管理机制,这意味着大部分情况下你不需要手动管理内存,因为Python的垃圾回收机制会自动处理不再使用的对象。然而,有时候你仍然需要关注内存管理,特别是在处理大数据、长时间运行的应用或需要最大化性能的情况下…

04-Apache Directory Studio下载安装(LDAP连接工具)

1、下载 官网下载Apache Directory Studio 注意Apache Directory Studio依赖于jdk,对jdk有环境要求 请下载适配本机的jdk版本的Apache Directory Studio,下图为最新版下载地址 Apache Directory Studio Version 2.0.0-M16 基于 Eclipse 2020-12,最低要…

开源项目如何推进人工智能

推荐:使用 NSDT场景编辑器快速搭建3D应用场景 对于那些不熟悉这个概念的人来说,开源软件或项目是那些向公众提供源代码的软件或项目,允许他们查看、使用和修改它。使用开源软件和工具具有多种优势,尤其是在构建复杂的基于 AI 的产…

Unity中Shader的时间_Time

文章目录 前言一、_Time.xyzw分别代表什么二、_Time怎么使用 前言 Unity中Shader的时间_Time 一、_Time.xyzw分别代表什么 _Time.y 代表当前时间 二、_Time怎么使用 在需要使用的地方直接 * _Time.y 或 x / z / w 测试代码: Shader "MyShader/P0_9_5&qu…

当众讲话紧张不敢说话怎么办?

当在公众场合讲话时,紧张和不敢说话是很常见的问题。这种情况下,以下是一些帮助你克服紧张并提高自信的技巧和建议: 1. 准备充分:充分的准备是克服紧张的关键。在讲话前,确保你对主题有足够的了解,并进行适…