NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模
本教程分步展示如何:
- 减少 3D 模型的多边形数量,使其满足 Microsoft Dynamics 365 Guides 和使用 Microsoft Power Apps 创建的应用程序中包含的混合现实组件的特定性能目标的性能需求。
- 将 3D 模型的多种材质(颜色)组合成可应用于模型的单个纹理。
- 将优化的 3D 模型导出为可在 Dynamics 365 Guides 和 Power Apps 中使用的 GLB 文件。
- 减少多边形和将多种材质转换为单个纹理相结合,可以将复杂且资源密集型的 3D 模型转换为在 Dynamics 365 Guides 和 Power Apps 中表现良好的 3D 模型。
1、什么是Blender?
Blender 是一款免费、开源的 3D 创作套件。 它支持整个 3D 流程:建模、绑定、动画、模拟、渲染、合成和运动跟踪,以及视频编辑和游戏创建。
如果你决定使用 Blender 来准备 3D 模型,请查看 Blender 的网站并下载适用于 Windows 的最新稳定版本。
2、使用 Blender 准备 3D 模型的总体步骤
使用 Blender 准备混合现实 3D 模型包括以下步骤:
- 将模型导入 Blender。
- 减少模型。
- 展开模型(UV 展开)。
- 分配材质。
- 烘烤纹理。
将模型导出为 GLB 文件。
如果你已经有现成的3D模型,可以直接使用3DConvert这个在线3D格式转换工具将模型转换为GLB文件。
3、将模型导入 Blender
打开Blender。 当你打开应用程序时,会自动创建一个新场景。
右键单击Cube模型,然后选择删除将其删除。
选择“文件”>“导入”>“Wavefront (.obj)”以导入 OBJ 文件。
在“导入 OBJ”下,执行以下操作:
A、 清除对象和组复选框,然后选择图像搜索复选框。
B、选择屏幕右侧的“导入 OBJ”。 这会将 3D 模型作为一项导入,并在子文件夹中搜索任何材质。
当你选择“导入 OBJ”时,将看到带有导入材质的 3D 模型。
如果 3D 模型非常大或非常小,或者很难看到,或者可能位于屏幕外(如下图所示),你可以使用鼠标滚轮放大或缩小相机,直到模型可见。
如果 3D 模型显示为灰色,请选择“外观开发”着色选项以显示颜色。
C、查看屏幕右下角的 Tris 计数(多边形数量)。
如果此数字满足性能目标分辨率,你可以跳过模型精简步骤并直接转到本教程后面的“展开模型”。 如果不满足目标分辨率,请继续执行下一部分以抽取模型。
4、模型精简
为了达到特定于应用程序的性能目标,你可能需要“精简”模型。 抽取(Decimate)是重新计算模型的表面多边形以创建具有更少多边形的相似形状的过程。 这会降低视觉保真度,但会提高性能。 下面的示例图像显示了当你在 Microsoft HoloLens 上查看3D 模型时使用高保真模型以及低质量 3D 模型的情况。
首先选择模型,然后转到“修改器”菜单“修改器”菜单。 在右侧的工具栏中。
在“修改器”菜单的“添加修改器”列表中,选择“抽取”。
选择模型后,将比率值更改为 0.0 到 1.0 之间的数字。 此设置确定删除的多边形(三角形)的百分比。 例如,值 0.5 会将原始多边形计数减少到 50%。 当你更改比率时,会看到 Blender 窗口右下角的 Tris 值减小。 当数字达到与你的性能目标相匹配并且看起来不错的值时,选择“应用”。
5、展开模型(UV 展开)
如果你的模型只有一种颜色,可以跳过此步骤。
为了形象化 UV 展开的概念,想象一下剪切 3D 模型的每个表面并将这些表面平放在一张纸上。 U 和 V 维度代表纸张的垂直和水平轴,就像 X、Y 和 Z 代表 3D 模型的三维轴一样。 展开 UV 使你能够使用模型的材质颜色绘制展平的部件。 这种彩绘纸称为纹理,随后将其包裹回模型顶部,给人一种由不同颜色的碎片制成的错觉,而实际上它是一个包裹着彩色纹理的物品。 此过程称为纹理烘焙,本教程稍后将对此进行介绍。
选择模型,将鼠标悬停在主菜单上,按 Tab 键进入编辑模式,按 a 全选,然后在 UV 菜单上选择 Smart UV Project。
通过选择左上角的编辑模式列表或按 Tab 键进入编辑模式。 在编辑模式下按 Tab 键可返回对象模式,如下图所示。
保留属性的默认设置,然后选择“确定”。
确保你处于编辑模式(按 Tab 键),并且整个模型仍处于选中状态(按 a)。 当选择整个模型时,它是橙色的。
选择 UV 编辑器菜单(或按 Shift+F10)。
在 UV 菜单上,选择pack islands。
概述的部分被重新组织以尽可能有效地表示模型的表面。 Pack Islands后,UV 如下所示:
创建网格的副本以在其上烘焙纹理。 按如下步骤操作:
- 选择模型。
- 右键单击模型以打开菜单。
- 选择重复对象。
- 按空格键。
6、准备纹理烘焙的材质
选择复制模型,然后选择“材质”选项卡。 转到材质面板。
通过选择材料右侧的减号来删除重复 3D 模型的所有材质。
要隐藏原始 3D 模型并仅显示副本,请选择原始 3D 模型名称右侧的“眼睛”。 请注意,复制的 3D 模型上没有材质。
选择“材质”面板中的加号,将新材质添加到副本中。
选择“新建”将新材质添加到材质槽。
将鼠标悬停在视口(显示 3D 模型的主窗口)上,按 Tab 键进入编辑模式,按 a 选择全部,然后从“材质”选项卡中选择“指定” 显示“材质”选项卡的屏幕截图。
选择对象模式左侧的图标,然后选择图像编辑器。
创建新图像(选择“添加”>“图像”>“新建”)。
将新图像保存为 My_Texture 或类似的易于记住的名称,然后将宽度和高度设置为 1024 × 1024 像素。 保留其他选项的默认值。
选择“视图”左侧的图标,然后选择“着色器编辑器”。
选择复制的 3D 模型后,选择“添加”>“纹理”>“图像纹理”。 选择或单击以将图像纹理节点放置在窗口中。
将图像纹理窗口中标记为 Color 的黄色节点链接(黄点)拖动到 Principled BSDF 节点上的 Base Color 黄色节点,以连接它们。
在图像纹理节点的下拉菜单中,找到刚刚创建的纹理并选择它。
选择左上角的 3D 视口以转至 3D 视口菜单。
6、将材质烘焙到纹理上
在复制的 3D 模型上设置纹理和材质后,就可以将原始 3D 模型中的材质烘焙到该纹理上了。 纹理将包裹在复制的 3D 模型周围,这使得它在使用原始颜色时具有更高的性能。
- 选择“渲染”选项卡“渲染”选项卡。
- 选择 Cycles 作为渲染引擎。
- 在“烘焙”菜单中,将“烘焙类型”设置为“漫反射”。
- 清除直接和间接复选框。
- 选择原始 3D 模型,然后在按住 Shift 的同时选择重复的 3D 模型。
- 选中“选定的活动”复选框。
- 添加光线距离值。 从 0.01 开始,如果结果缺少色块,则增加它。
选择烘焙。
现在,复制的 3D 模型具有与原始模型相同的颜色,但只有一种材质而不是多种材质。 这可以显着减少绘制调用并提高性能。
要确认烘焙是否成功,你可以选择眼睛图标 眼睛图标。 在原始模型旁边将其隐藏。 现在只有具有一种材质和纹理的副本可见。
7、将模型导出到 GLB 文件
最后一步是将模型导出到 GLB 文件,以便它可以与 Dynamics 365 Guides 和 Power Apps 一起使用。
在 Blender 中,选择“文件”>“导出”>“glTF 2.0”。
在“导出”菜单上,确保选择了 GLB 格式并选中了“选定对象”复选框。 为文件命名,然后选择 glTF 2.0 (.glb/.gltf)。
8、在Power Apps 中查看 3D 模型
准备好 3D 模型后,请使用以下链接了解有关在 Dynamics 365 Guides 或 Power Apps 中使用模型的更多信息:
BimAnt翻译整理,转载请标明出处