Blender 混合现实3D模型制作指南【XR】

本教程分步展示如何:

  • 减少 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 中使用模型的更多信息:

  • Dynamics 365 指南
  • Power Apps

原文链接:Blender混合现实模型制作 — BimAnt

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

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

相关文章

react-vite-antd环境下新建项目

vite 创建一个react项目 1. 安装vite并创建一个react项目1. 我使用的 yarn安装,基本配置项目名字, 框架react ,js2. cd vite-react进入项目目录安装node包并启动项目 2. 安装引入Ant Design引入依赖(我用的yarn,没有安装的也可以使…

C++之atomic_load与atomic_store原子操作实例(一百八十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

QGraphicsView 实例3地图浏览器

主要介绍Graphics View框架&#xff0c;实现地图的浏览、放大、缩小&#xff0c;以及显示各个位置的视图、场景和地图坐标 效果图: mapwidget.h #ifndef MAPWIDGET_H #define MAPWIDGET_H #include <QLabel> #include <QMouseEvent> #include <QGraphicsView&…

2021年03月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题&#xff1a;找和为K的两个元素 在一个长度为n(n < 1000)的整数序列中&#xff0c;判断是否存在某两个元素之和为k。 时间限制&#xff1a;1000 内存限制&#xff1a;65536 输入 第一行输入序列的长度n和k&#xff0c;用空格分开。 第二行输入序列中的n个整数&#xff…

android resoure资源图片颜色值错乱

最近androidstudio开发&#xff0c;添加一些颜色值或者drawable资源文件时&#xff0c;运行app,颜色值或者图片对应不上&#xff0c;暂时找不到原因&#xff0c;望告知。 暂时解决方法&#xff1a;

32.Netty源码之服务端如何处理客户端新建连接

highlight: arduino-light 服务端如何处理客户端新建连接 Netty 服务端完全启动后&#xff0c;就可以对外工作了。接下来 Netty 服务端是如何处理客户端新建连接的呢&#xff1f; 主要分为四步&#xff1a; md Boss NioEventLoop 线程轮询客户端新连接 OP_ACCEPT 事件&#xff…

Azure创建自定义VM镜像

创建一个虚拟机&#xff0c;参考 https://blog.csdn.net/m0_48468018/article/details/132267096&#xff0c;入站端口开启80&#xff0c;22 进行远程远程连接 使用CLI命令部署NGINX,输入如下命令 sudo su apt-get update -y apt-get install nginx git -y最后的效果 4. 关闭…

RocketMQ部署 Linux方式和Docker方式

一、Linux部署 准备一台Linux机器&#xff0c;部署单master rocketmq节点 系统ip角色模式CENTOS10.4.7.126Nameserver,brokerMaster 1. 配置JDK rocketmq运行需要依赖jdk&#xff0c;安装步骤略。 2. 下载和配置 从官网下载安装包 https://rocketmq.apache.org/zh/downlo…

Docker碎碎念

docker和虚拟机的区别 虚拟机&#xff08;VM&#xff09;是通过在物理硬件上运行一个完整的操作系统来实现的。 每个虚拟机都有自己的内核、设备驱动程序和用户空间&#xff0c;它们是相互独立且完全隔离的。 虚拟机可以在不同的物理服务器之间迁移&#xff0c;因为它们是以整…

【C++ 记忆站】引用

文章目录 一、引用概念二、引用特性1、引用在定义时必须初始化2、一个变量可以有多个引用3、引用一旦引用一个实体&#xff0c;再不能引用其他实体 三、常引用四、使用场景1、做参数1、输出型参数2、大对象传参 2、做返回值1、传值返回2、传引用返回 五、传值、传引用效率比较六…

服务器数据恢复-EqualLogic存储RAID5数据恢复案例

服务器数据恢复环境&#xff1a; 一台DELL EqualLogic存储中有一组由16块SAS硬盘组建的RAID5阵列。存储存放虚拟机文件&#xff0c;采用VMFS文件系统&#xff0c;划分了4个lun。 服务器故障&检测&分析&#xff1a; 存储设备上有两个硬盘指示灯显示黄色&#xff0c;存储…

虫情测报灯

在农业生产过程中&#xff0c;农作物的虫害问题永远都是放在首位的。随着现代生活科技的发展和社会进步&#xff0c;人们对物质也有了新的要求。伴随农作物品种的增加&#xff0c;农药和化肥的使用也在导致农业虫害问题日益加剧&#xff0c;在这种不良的耕作状态下&#xff0c;…

Vue初识别--环境搭建--前置配置过程

问题一&#xff1a; 在浏览器上的扩展程序上添加了vue-devtools后不生效&#xff1a; 解决方式&#xff1a;打开刚加入的扩展工具Vue.js devtools的允许访问文件地址设置 问题二&#xff1a;Vue新建一个项目 创建一个空文件夹hrsone&#xff0c;然后在VSCode中打开这个空文件夹…

HCIP第五节------------------------------------------ospf

一、OSPF基础 1、动态路由分类 2、距离矢量协议 运行距离矢量路由协议的路由器周期性地泛洪自己的路由表。通过路由的交互&#xff0c;每台路由器都从相邻的路由器学习到路由&#xff0c;并且加载进自己的路由表中&#xff0c;然后再通告给其他相邻路由器。 对于网络中的所有…

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时&#xff1a; 提示 然后 实际上是运行&#xff1a;com.docker.admin.exe start-service

七夕特辑——3D爱心(可监听鼠标移动)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

sql面试题

user登陆表数据如下&#xff0c;求出连续登录3天及以上的用户 方法1&#xff1a;排序&#xff0c;dt列求出本行和前面第2行的日期差&#xff0c;等于2则三天连续 SELECT DISTINCT uid FROM (SELECT uid,dt,lag(dt,2) over(PARTITION BY uid ORDER BY dt) AS lag_dt FROM USER…

Excel设置某列或者某行不某行不可以编辑,只读属性

设置单元格只读的三种方式: 1、通过单元格只读按钮&#xff0c;设置为只为 设置行或者列的只读属性&#xff0c;可以设置整行或者整列只读 2、设置单元格编辑控件为标签控件(标签控件不可编辑) 3、通过锁定行&#xff0c;锁定行的修改。锁定的行与只读行的区别在于锁定的行不…

聚观早报|京东称在技术投入没有止境;木蚁机器人完成B2轮融资

【聚观365】8月18日消息 京东零售CEO表示在技术上投入没有止境 木蚁机器人完成B2轮超亿元融资 耐能推出AI芯片KL730 三星电子泰勒晶圆厂首家客户是AI半导体厂商 韩国新能源汽车7月出口额同比大增36% 京东零售CEO表示在技术上投入没有止境 近日&#xff0c;京东零售CEO辛利…

计算机竞赛 图像识别-人脸识别与疲劳检测 - python opencv

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是…