FPA GLB 文件制作指南
从毫米建模到 GLB 交付:按 fpa-glb-1 规范制作尺寸、朝向、材质槽与 UV,附图示、逐项自检和 Blender 完整实例。本文仅提供中文版。
操作入口随账号权限而异;尺寸、规格和参考价的确认状态,以当前项目所用资源为准。
0. 一页速查
交付前逐项确认。前 8 项是文件读取和几何检查的重点;正面朝向还需目视检查。第 9–12 项决定换材质和外观效果。
| # | 要求 | 不满足的后果 |
|---|---|---|
| 1 | 单个 .glb 文件(二进制 glTF 2.0),网格和贴图全部打包在内 | 方块 |
| 2 | 文件名 = 组件编号,例如 FPA-R-0001-M.glb | 系统找不到文件 |
| 3 | 单位为米,按数据卡的真实尺寸建模 | 方块 |
| 4 | 宽、深、高各与数据卡相差不超过 2 mm | 方块 |
| 5 | 原点在底面中心,最低点 Y = 0,偏差不超过 2 mm | 方块 |
| 6 | Y 向上,正面朝 +Z,导出前冻结变换 | 方块或朝向错误 |
| 7 | 文件不超过 1,500,000 字节,三角面不超过 30,000 | 方块 |
| 8 | 不用 Draco、KTX2 压缩(meshopt 压缩可用),不用骨骼蒙皮和点线图元 | 方块 |
| 9 | 材质槽用 MAT_BODY、MAT_INSERT、MAT_HARDWARE、MAT_TRIM | 模型能显示,但不能随材质风格换材质 |
| 10 | 部件命名 PART_<功能>_<两位序号> | 模型能显示,后台出现命名提示 |
| 11 | 需要换贴图的表面有 UV | 模型能显示,贴图不生效,只换颜色 |
| 12 | 材质是实际饰面的 PBR 材质,不是 CAD 标识色 | 模型能显示,外观只是示意 |
1. 文件与命名
| 项目 | 规定 |
|---|---|
| 格式 | 二进制 glTF 2.0(.glb),单文件;网格、材质和贴图全部打包在文件内 |
| 命名 | <组件编号>.glb,编号与后台组件的编码完全一致,区分大小写(与照片 <编号>.jpg 相同) |
| 交付 | 把通过自检的文件交给资源维护人员,由其上传到固定目录并在后台登记;建模同事不需要操作 OSS |
| 不要包含 | 相机、灯光、动画、空物体、未使用的材质。系统不使用相机和灯光,动画会被忽略 |
没有编号的组件不会请求模型,始终显示尺寸示意方块。先向资源维护人员确认编号,再开始制作。
1.1 开始制作前先拿齐资料
- 组件准确编号、签核的宽/深/高、正面标注、正视/侧视/俯视图或实物照片。照片只能辅助外观,不能作为真实尺寸的唯一依据。
- 哪些表面需要一起换颜色,哪些要独立换材质;有包覆面料、金属、绒垫时先划清区域。
- 托盘或底座需要位置点坐标、开口大小、凹槽深度和方向;缺资料先向资源维护人员确认。
- 保留可编辑源文件和贴图原件。正式交付单个 GLB;源文件作为后续修改依据另行归档,不上传进模型目录。
1.2 几何制作细节
- 用能表达轮廓的低面数网格;倒角优先用少量分段。面料纤维、皮纹等微小细节用贴图表达,不用大量小几何堆出来。
- 检查法线朝外,处理重复面、重叠面和未合并的接缝;不要用双面材质掩盖反面或破洞。
- 删除看不到且没有外观作用的内部结构、测量辅助线、参考地面、文字标注、摄影棚和背景;凹槽等真实外观结构仍须保留。
- 布尔、细分和倒角等修改器会改变最终网格。检查导出后的三角面数,不能只看编辑软件里未应用修改器时的面数。
- 从 CAD 导入的曲面需要转成网格;检查薄边、圆弧、破面与法线。原软件看起来平滑,不代表导出的三角网格就合适。
2. 单位、原点与朝向
- 单位:米(glTF 标准)。系统加载时统一乘以 1000 转为毫米,不做其他缩放。60 mm 宽的组件在文件里就是 0.06。
- 原点:底面中心,即组件放在柜台面上的接触点。模型最低点 Y = 0,X、Z 方向以原点居中。
- 朝向:Y 向上;正面朝 +Z(朝向顾客);X 为宽度方向。
- 外包尺寸:X 向长度 = 数据卡的宽,Z 向 = 深,Y 向 = 高。
- 导出前冻结变换(应用位置、旋转、缩放)。检查按节点层级计算外包盒,没有冻结的非 90° 旋转会让外包盒偏大,被判为尺寸不符。
系统不会缩放或移动模型去适配数据卡。碰撞、放不放得下、数量和清单都按数据卡尺寸计算,模型只负责外观;尺寸不符时宁可显示方块,也不显示一个与计算结果对不上的模型。
如果确认是数据卡的高度录错了、模型才是对的:不要改模型去迁就,告诉资源维护人员。只有高度超差而宽、深和其他检查都通过时,后台可以采用模型实测高度。宽或深不符必须改模型或由所有者更正数据卡。
2.1 可以用毫米建模:只在导出边界换算
制作时照图纸输入毫米即可,不必把每个尺寸换算成米。GLB 的最终几何遵循 glTF 的米制约定;SpaceScene 加载时再转回毫米。导出器若已自动转换,不要再手工缩小 1000 倍。改变界面显示单位,不等于把模型缩放了一次。
| 环节 | 60 mm 宽的组件 | 检查重点 |
|---|---|---|
| 建模软件 | 输入 60 mm,按实际大小制作 | 确认场景单位设置;不要在米制场景里输入无单位的 60 |
| 导出的 GLB | 最终宽度 0.06 m | 考虑节点变换后的整体外包尺寸 |
| 系统与自检工具 | 宽度 60 mm | 检查报告应显示 60,而不是 0.06 或 60000 |
2.2 外包尺寸怎样量
- 量整个组件所有可见部件的最外侧,包括包边、脚垫、突出挂钩;不是只量主体。宽 = X 最大值 − X 最小值,深 = Z 最大值 − Z 最小值,高 = Y 最大值 − Y 最小值。
- 删除远处残留顶点和多余物体;一个看不见的小碎片也可能扩大外包盒。
- 2 mm 是系统接收容差,不是建模精度目标,更不是生产公差;制作应尽量与签核图纸完全一致。
- 高度错误先区分原点错误和模型高度错误:整个模型浮高 5 mm 时,应把底面归零,不能靠改数据卡高度掩盖。
- 换软件或换导出插件后,先用一个已知 60 mm 的测试件导出并检查,通过后再批量制作。
3. 硬性检查
自检工具、后台“检查 GLB 模型”和编辑器加载前用的是同一段代码,工具通过的文件就是系统会显示的文件。
| 检查 | 规则 |
|---|---|
| 容器 | 有效的 GLB 2.0 |
| 文件大小 | ≤ 1,500,000 字节 |
| 三角面 | ≤ 30,000 |
| 外部资源 | 不得引用外部文件或 data URI |
| 压缩扩展 | 不接受 Draco、KTX2;可用 meshopt 压缩几何 |
| 必需扩展 | 只允许 KHR_materials_*、KHR_texture_transform、KHR_mesh_quantization |
| 图元 | 只支持三角面;不支持骨骼蒙皮、点和线 |
| 尺寸 | 宽、深、高各与数据卡相差 ≤ 2 mm |
| 原点 | X、Z 中心及底面高度偏离原点 ≤ 2 mm |
| 动画 | 允许但忽略,只给提示 |
4. 材质
- 使用 PBR 金属度/粗糙度材质,颜色是实际饰面颜色。
- 保留一套合理的原材质作为默认外观:没有选材质风格的方案显示的就是它。
- 系统给模型加影棚环境反光。高金属度的表面仍会比实物暗,需要金属质感的部件应同时用颜色和粗糙度表现。
- 透明、透射材质可以用,但要少用:大量同类组件一起显示时,透明表面没有逐件排序,重叠处可能显示不正确,也更耗性能。
- 程序材质(节点生成的纹理)须烘焙成贴图再导出。
检查工具会把材质归为两类,只作提示,不判为不合格:
| 类别 | 判断 | 系统显示 |
|---|---|---|
| CAD 标识色 | 没有贴图,也没有 KHR_materials_* 扩展,且每个材质名以 :R:G:B 结尾或粗糙度为 0(首批 KeyShot 导出的样式) | 柔和反光(0.15),外观只是示意 |
| PBR 外观材质 | 其他情况 | 完整影棚反光,金属和宝石才有质感 |
新制作的模型应达到 PBR 外观材质。
4.1 PBR 材质制作要点
- 基础颜色(Base Color)表达材料本色,避免把强灯光、高光和阴影画死在颜色贴图里;否则换灯光或换颜色后容易显得脏。
- 金属度(Metallic)区分金属与非金属;布、皮革和塑料一般设为 0。粗糙度(Roughness)越大越哑光,越小越光亮;不要给所有表面都设为 0。
- 先做一套没有任何后台配置也能正常看的默认材质。原始 GLB 打开就全黑、全白或紫色缺图,应先修好再交付。
- 颜色贴图使用 sRGB;粗糙度、金属度和法线等数据贴图使用 Non-Color。法线贴图通过 Normal Map 节点连接到材质的 Normal,不要直接接入基础颜色。
- 程序噪声、复杂混合节点不等于可导出的贴图;需要纹理时烘焙成实际图像,再用简单可导出的 PBR 连接。
- 正式效果用实物或已确认饰面作为参考;本文实例中的颜色与粗糙度仅为教学设置,不是公司材料标准。
5. 材质槽与部件命名
这一节决定模型交付后,后台能不能给它换材质。后台按材质槽换材质,按部件名帮人辨认部位。
5.1 材质槽(glTF 的 material)
系统的材质风格只认四种用途。材质槽用下面四个名称时,后台点“按规范槽名匹配用途”即可一次配好:
| 材质槽名称 | 用途 | 指什么 |
|---|---|---|
| MAT_BODY | 主体 | 组件的主要表面,通常是包覆面料或漆面 |
| MAT_INSERT | 内衬 | 放首饰的内衬、绒垫、插槽内面 |
| MAT_HARDWARE | 五金 | 金属支架、挂钩、立杆等 |
| MAT_TRIM | 装饰 | 包边、嵌条、装饰线 |
规则:
- 一个区域一个槽:需要一起换材质的表面共用一个槽,需要分别换的表面用不同的槽。同一个网格可以有多个槽。
- 名称不带颜色和饰面:写 MAT_BODY,不写 MAT_WHITE_VELVET。颜色和饰面在后台材质库里配置。
- 名称在一个模型内唯一,重新导出时保持不变。
- 普通组件 1–3 个槽。超过 3 个后台会给出提示;超过 64 个时,第 64 个之后的槽后台无法管理,只保留原外观。
- 需要其他区域时可以用别的 MAT_<区域> 名称(大写字母、数字、下划线,例如 MAT_BASE),模型照常显示,后台也能单独给它指定材质。但它不会自动对应到四种用途,需要资源维护人员手工归入其中一种,否则这块表面不随材质风格变化。能用四个标准名称表达时就用标准名称。
5.2 部件(glTF 的 node / mesh 名称)
- 格式 PART_<功能>_<两位序号>,只用大写字母、数字和下划线,例如 PART_BODY_01、PART_BASE_01、PART_TRIM_01、PART_INSERT_01、PART_SUPPORT_01。
- 按结构命名,不使用 Cube.001、Object123 这类默认名。
- 名称在一个模型内唯一;用途不变时重新导出保留原名。
后台在每个材质槽下列出它包含的部件名,并可以高亮对应部位。部件名规范,维护人员才知道自己在给哪里换材质。
命名不规范不会让模型失效:模型照常显示,后台显示“发现 N 项命名或材质槽数量建议”。但材质槽不规范的模型换不了风格,建议按规范重新导出。
5.3 在建模软件里如何正确分槽
- 先建立命名准确的材质,再分配给对应表面。不同物体若应一起换材质,可以共用同一个材质数据块。
- 一个物体可在编辑模式选中不同面,分别指定不同材质。仅添加空材质槽、没有把面分配进去,导出后通常没有实际用途。
- 不要因为颜色相同就合并不同用途:主体和内衬即便都是白色,仍可能需要 MAT_BODY 与 MAT_INSERT 两个槽。
- 不要每个面创建一个材质;清理 MAT_BODY.001 之类自动复制的名称,核对是否应共用原材质。
- 临时把主体设为浅色、内衬设为深色逐面检查,确认没有漏面,再恢复合理的默认外观。测试颜色不是正式饰面。
- 重新导出时保留原槽名、顺序与部件名,方便维护人员核对;更名不是纯文字修改,会影响既有配置。
6. UV 与贴图
- 需要换贴图的表面必须有完整 UV。没有 UV 的表面,后台指定的颜色、金属度和粗糙度仍然生效,但贴图不会应用,后台会提示“该部位缺少完整 UV”。
- 面料、皮革、木纹这类靠纹理表现的区域,UV 要展开均匀、方向一致。后台用 U/V 重复次数调纹理疏密,这是贴图重复,不是制造尺寸。
- 法线贴图使用切线空间、绿色通道 +Y(OpenGL 约定)。
- 贴图嵌入文件,建议单边不超过 1024 像素。
- 后台给某个槽指定材质时,可以选择保留模型原贴图(基础颜色与原贴图相乘)。原贴图做成中性灰度纹理,换颜色时效果最好。
6.1 UV 和贴图逐步自查
- 在最终网格上创建 UV;简单方块可用立方体投影,弯曲或复杂表面应按结构标记接缝后展开。不是点一次自动展开就算完成。
- 把棋盘格临时贴到每个需要纹理的区域:方格不要严重拉伸,正面与侧面密度应接近,皮纹、布纹和木纹方向一致。
- 只有明确希望重复同一图案时才叠放 UV;需要烘焙独立细节的面应避免意外重叠,并给 UV 岛留边距,防止缩小时串色。
- 实际使用的贴图必须加载成功并进入导出材质链;只把图片放在文件夹中,或只在软件里打包项目,并不证明 GLB 已包含贴图。
- 先从 512 或 1024 像素贴图开始;无透明需求可用 JPEG,有透明需求可用 PNG。不能通过启用 KTX2 或 Draco 来绕过文件体积限制;几何体积可用 meshopt 压缩降低。
- 在另一个空白场景导入最终 GLB,核对贴图和材质;单个文件离开原始贴图目录后仍应能正常显示。
7. 可承载组件的凹槽
底座、托盘这类可以放其他组件的组件,后台录有位置点(凹槽或固定位)。模型里凹槽的位置、开口形状和深度须与后台位置点一致,偏差不超过 2 mm。
自动检查只比对外包尺寸,看不到凹槽内部,这一项靠制作时自查和人工抽检。制作前向资源维护人员要该组件的位置点数据。
7.1 凹槽不能靠外包盒验收
- 把每个位置点标在同一底面中心坐标系中,逐项核对 X/Z、方向、开口形状与深度;软件坐标轴不同,要先做转换。
- 凹槽的开口高度与内部最低点都要核对,不能只在表面画一个圆圈代表凹槽。
- 外包尺寸通过,只说明最外侧轮廓接近数据卡;内槽偏位、深度错误或开口不够仍可能存在,须人工比对。
8. 自检与交付
8.1 建模同事
更省事的做法:下载离线预检工具,不需要安装任何软件。把导出的 .glb 拖进去,页面在本机按同一套规范检查,列出必须修改的问题,并画出模型的三维外观(可拖动旋转,带 +X 宽、+Y 高、+Z 正面的坐标轴和地面网格,可高亮某个材质槽)——预览只是目视确认,判定仍以检查结果为准。同时载入资源维护人员给的“预检尺寸表”,还会比对尺寸和原点。文件不会上传,页面不联网。通过后再上传,交付时把工具导出的预检报告一并交给资源维护人员。没装 Node.js 时用这个工具;下面的命令行方式效果相同。
检查最终导出的 GLB,不只看建模软件里的样子。
node bin/glb-check.mjs --catalog <目录.json> <编号>.glb ...
node bin/glb-check.mjs --dims 60,60,45 FPA-R-0001.glb
- --catalog:用目录文件里的数据卡比对尺寸;目录文件向资源维护人员要。
- --dims 宽,深,高:没有目录文件时直接给毫米尺寸。
- 退出码 0 全部通过,1 至少一个不通过,2 参数错误。--lang en 输出英文。工具只读,不上传、不修改文件。
- 输出里会写明三角面数、外包尺寸和材质类别(CAD 标识色或 PBR 外观材质)。
工具通过后再目视确认:正面朝向正确;各材质槽分区符合预期;需要贴图的区域有 UV;没有多余物体和未使用的材质。不通过的文件不要交付。
8.2 资源维护人员(后台)
- 在“版本与发布中心”点“导出预检尺寸表”,随建模任务一起发给建模同事。
- 上传文件到模型目录。
- 后台“FPA 组件”打开该组件,在“3D 模型”中点“检查 GLB 模型”。通过即登记,并读出材质槽和部件名。
- 在“模型材质配置”里点“按规范槽名匹配用途”,核对每个槽的用途;需要时给个别槽指定材质。
- 在“模型材质”页用材质风格预览真实模型,确认各用途显示正确。
- 保存草稿,签核并发布;项目升级到新目录版本后显示新模型。
8.3 交付后在哪里能看到
- 后台组件详情:已登记模型的三维预览,可按槽高亮。
- 编辑器 3D 视图、陈列步骤的单柜视图和导航小地图。
- 陈列步骤组件属性里的模型预览:按当前方案的材质风格和单件材质显示,右上角可全屏查看、旋转和缩放。
- 分享页的三维视图。
9. 替换模型
模型和材质配置都绑定到具体文件(按文件指纹识别),所以替换文件有连带影响:
- 已发布的目录版本记录着旧文件的指纹。同名文件被覆盖后,仍在用旧目录版本的项目会显示方块并提示“模型文件已更新”,不会悄悄换成新外观。
- 旧的材质配置和用途对应会暂停生效,须在后台重新检查并核对。材质槽名称和顺序保持不变,核对就很快;改了槽名就要全部重配。
- 流程:自检新文件 → 交付覆盖 → 后台重新检查并登记 → 核对材质槽 → 保存、签核、发布 → 项目升级到新版本。
所以替换模型前先告诉资源维护人员,不要直接覆盖文件。
10. 常见提示与处理
| 后台或编辑器的提示 | 原因 | 怎么处理 |
|---|---|---|
| 尺寸或原点与数据卡不符 | 外包尺寸或原点超出 2 mm | 核对单位是否为米、是否冻结变换、原点是否在底面中心 |
| 不符合资产规范 | 文件过大、面数过多、用了压缩扩展、蒙皮或外部引用 | 减面、压贴图、关闭 Draco 等不支持的压缩后重新导出 |
| 未提供 / 未登记 | 目录里没有该文件,或还没在后台检查登记 | 确认文件名与编号一致,交资源维护人员登记 |
| 模型文件已更新 | 同名文件被覆盖,与登记的指纹不同 | 后台重新检查并发布新目录版本 |
| 无法读取(网络或跨域) | 网络或存储跨域设置问题 | 与模型无关,交开发人员处理 |
| 模型没有可识别的材质槽 | 网格没有分配材质 | 按第 5 节分配材质后重新导出 |
| 发现 N 项命名或材质槽数量建议 | 槽名或部件名不规范、重名,或槽超过 3 个 | 按第 5 节改名;不影响显示 |
| 未配置用途 / 用途未齐 | 槽名不是四个标准名称,或后台还没匹配 | 改用标准槽名,或由资源维护人员手工归类 |
| 该部位缺少完整 UV | 该槽的网格没有 UV | 补 UV 后重新导出 |
| 材质为 CAD 标识色 | 导出的是 CAD 标识色而不是饰面材质 | 换成实际饰面的 PBR 材质 |
11. 外观与业务数据的边界
模型和材质只改变外观,不改变尺寸、业务坐标、碰撞、排布规则、数量或清单。本规范不签核占位尺寸,不证明可制造,也不构成报价;模型始终标注为“外观示意”。
12. 完整实例:制作一个 60 × 60 × 45 mm 双材质展示座
教学实例编号 FPA-DEMO-0001,用两个长方体练习尺寸、底面原点、朝向、材质槽、UV 和导出。它不是已签核的 FPA 商品,不应登记到正式目录,也不代表真实承载结构或可生产设计。完成后再把同样流程用于正式组件。
操作按 Blender 4.4.3 核对。实例文件已用该版本实际导出,并通过本项目的 GLB 检查工具。其他版本的菜单位置可能不同;以下同时给出英文功能名便于查找。使用自己的建模软件时,仍以最终 GLB 的单位、尺寸、原点与朝向为准。
12.1 新建场景与毫米输入
- 打开新的 General 场景,先保存为单独的教学源文件,避免覆盖实际工作。删除默认相机、灯光和立方体。
- 在 Scene Properties → Units 选择 Metric,Unit Scale 设为 1.0,Length 选 Millimeters。这样界面按毫米显示,而内部仍保持 1 单位 = 1 米。
- 后续尺寸输入都带 mm,例如 60 mm、5 mm、27.5 mm;不要把 Unit Scale 改成 0.001 后又手动缩放一次。
- 按 Shift+S → Cursor to World Origin,将 3D Cursor 放到世界原点。按 N 打开 Item 面板,以便输入 Dimensions 和 Location。
12.2 制作底座
- Shift+A → Mesh → Cube,添加一个立方体,保持未旋转。
- 在 Item → Dimensions 输入 X = 60 mm、Y = 60 mm、Z = 10 mm。Blender 的 Z 是高度轴。
- Location 输入 X = 0 mm、Y = 0 mm、Z = 5 mm。立方体中心在 5 mm 高处,因此底面恰好在 0 mm、顶面在 10 mm。
- 把物体名称改为 PART_BODY_01;在网格数据属性里也将网格名改为 PART_BODY_01。两个名称属于不同类型的数据,名称相同是正常的。
- Object → Apply → Scale,应用缩放。确认 Scale 为 1、1、1,尺寸仍为 60 × 60 × 10 mm。
12.3 制作上块并确定正面
- 新增第二个 Cube,Dimensions 输入 X = 40 mm、Y = 40 mm、Z = 35 mm。
- Location 输入 X = 0 mm、Y = 5 mm、Z = 27.5 mm。下沿为 27.5 − 17.5 = 10 mm,与底座顶面相接;上沿为 45 mm。
- 物体名和网格名都设为 PART_INSERT_01,应用 Scale。
- 本例顾客位于 Blender 的 −Y 方向,上块向 +Y 偏 5 mm 是向后退。导出勾选 +Y Up 后,Blender 的 +Z 变成 GLB 的 +Y,Blender 的 −Y 变成 GLB 的 +Z。不要再手动把模型转倒。
- 从正面看,底座前侧露出 15 mm,后侧只露出 5 mm。用这个不对称特征检查正面,比看一个完全对称的方块更可靠。
| 物体 | Dimensions X / Y / Z(Blender) | Location X / Y / Z(应用位置前) |
|---|---|---|
| PART_BODY_01 | 60 / 60 / 10 mm | 0 / 0 / 5 mm |
| PART_INSERT_01 | 40 / 40 / 35 mm | 0 / 5 / 27.5 mm |
12.4 设置两个真正的材质槽
- 选择底座,在 Material Properties 新建材质并命名 MAT_BODY,使用 Principled BSDF。设置浅米灰基础颜色、Metallic = 0、Roughness = 0.65。
- 选择上块,新建 MAT_INSERT,设置深灰基础颜色、Metallic = 0、Roughness = 0.85。不要共用 MAT_BODY,否则两块会一起换。
- 检查底座全部面分配给 MAT_BODY,上块全部面分配给 MAT_INSERT;删除未使用的默认材质槽。
- 切到 Material Preview 查看两块的分区。这个基础实例不使用贴图,所以只需两套 PBR 颜色材质;后续也可以在同样的槽上换面料。
12.5 补全 UV
- 选择底座,Tab 进入 Edit Mode,A 选中全部面,使用 UV → Cube Projection。上块重复一次。
- 切到 UV Editing 查看 UV。示例用重复饰面,允许不同面重复采样同一纹理;若要制作独立烘焙纹理,应重新展开、整理不重叠的 UV 岛。
- 即使当前只用纯色,也保留 UV,让后续后台更换纹理时有可用坐标。想进一步检查时,可临时使用 UV Grid 图像观察拉伸,完成后恢复原材质。
12.6 归零变换并检查整体
- 回到 Object Mode,仅选两个网格物体,使用 Object → Apply → All Transforms。对本例两个没有父级、约束和动画的网格,此操作保持几何位置不变,把 Location/Rotation 归零,Scale 变为 1。
- 应用位置之后,两块的物体原点都在世界原点,即整体底面中心;上块几何仍在底座上方,不会落到地面。不要手动把 Location 改成 0 代替 Apply,否则上块会真的移动。
- 总外包在 Blender 中应为 X:−30~30 mm,Y:−30~30 mm,Z:0~45 mm。确认没有参考地面、尺寸标注或远处碎片。
- 本例先不加细分和倒角,最终只有 24 个三角面。实际产品需要倒角时适量添加,并重新核对导出面数与尺寸。
12.7 导出单个 GLB
- 选中两个网格物体,File → Export → glTF 2.0。Format 选择 glTF Binary (.glb)。
- 文件名填写 FPA-DEMO-0001.glb;正式任务中换成资源维护人员提供的准确组件编号。
- Include 中启用 Selected Objects;关闭 Cameras、Punctual Lights 等不需要的对象。
- Transform 保持 +Y Up;Geometry 保留 UVs、Normals,使用修改器时启用 Apply Modifiers;Materials 保持导出。
- 关闭 Animation;关闭 Draco 压缩,不启用 KTX2;meshopt 压缩可由系统的优化工具生成。基础实例不需要蒙皮或变形动画。
- 导出后确认只有一个 GLB。不要把外置 .bin 或贴图文件当作单文件 GLB 的交付依赖。
12.8 检查最终文件
先向资源维护人员取得检查工具及运行环境。在工具所在的 SpaceScene 目录打开终端,运行下列命令;文件放在别的目录时,把文件名换成带引号的完整路径。不会使用终端时,把文件交维护人员协助运行检查,但不能把未经检查的文件当作已合格交付。
node bin/glb-check.mjs --dims 60,60,45 FPA-DEMO-0001.glb
本页随附教学文件的实测结果:3,716 字节、24 个三角面、宽 60 mm × 深 60 mm × 高 45 mm、PBR 外观材质,检查通过。不同软件或导出版本的字节数可能不同;请核对限制与尺寸,不必追求字节数完全相同。
- 在新的空白场景导入刚导出的 GLB,确认两块都在、两种材质分区清楚、底面归零、整体尺寸正确;回导到 Blender 后恢复为 Z 向上是正常的。
- 检查材质仍叫 MAT_BODY、MAT_INSERT,两个网格都有 UV;确认前侧留边比后侧宽。系统加载后的正面为 +Z。
- 工具通过不代表实物结构与饰面已经签核。目视检查和尺寸资料核对仍然要完成。
下载已通过检查的教学 GLB:FPA-DEMO-0001.glb(3,716 字节)
12.9 正式交付时附一张说明
组件编号:按正式数据卡填写
文件:<组件编号>.glb
数据卡尺寸(宽 × 深 × 高):___ × ___ × ___ mm
正面:GLB +Z;原点:底面中心;最低点:Y = 0
材质槽:MAT_BODY(主体)、MAT_INSERT(内衬)
UV:需要贴图的区域已检查
检查结果:通过;字节数 ___;三角面 ___
人工复核:方向 / 分区 / UV / 凹槽(如有)
本次修改:___;是否替换旧文件:___
正式文件名不加“最终版”“新”“v2”等后缀。版本说明放在交付记录里。教学编号 FPA-DEMO-0001 不能代替正式编号;替换旧模型前先通知维护人员。
补充:AI 生成模型的整理
以后可以用 AI 生成(图片或文字生成 3D),但生成结果通常没有真实尺度,原点和朝向随意,面数偏高,贴图也不规整。无论人工还是 AI,交付前都须规范化并通过同一检查工具:
- 按数据卡等比例缩放到签核尺寸。
- 原点移到底面中心,正面转向 +Z,冻结变换。
- 减面到上限以内,贴图压到建议尺寸并嵌入,去掉相机、灯光和动画。
- 按第 5 节重新分材质槽、命名部件。
- 运行 bin/glb-check.mjs;不通过的文件不交付。
AI 生成的外形是近似效果,不得作为生产或报价依据,仍按“外观示意”标注。是否采用某个 AI 工具、费用与版权,由所有者另行决定。