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.mzph.cn/news/43736.shtml

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

相关文章

​Kubernetes的演变:从etcd到分布式SQL的过渡

DevRel领域专家Denis Magda表示,他偶然发现了一篇解释如何用PostgreSQL无缝替换etcd的文章。该文章指出,Kine项目作为外部etcd端点,可以将Kubernetes etcd请求转换为底层关系数据库的SQL查询。 受到这种方法的启发,Magda决定进一步…

求Win11系统virtualbox+vagrant安装MacOS虚拟机

文章目录 一、背景二、素材2.1、virtualboxvagrant 三、问题3.1、安装失败3.2、第二个失败3.3、网络说 四、求助 一、背景 题主,主要是穷,没钱买mac笔记本或相关系统的苹果产品,哈哈,偶尔也有用过MacOS系统,只是还没有…

actuator/prometheus使用pushgateway上传jvm监控数据

场景 准备 prometheus已经部署pushgateway服务&#xff0c;访问{pushgateway.server:9091}可以看到面板 实现 基于springboot引入支持组件&#xff0c;版本可以 <!--监控检查--><dependency><groupId>org.springframework.boot</groupId><artifa…

H3C交换机如何配置本地端口镜像并在PC上使用Wireshake抓包

环境: H3C S6520-26Q-SI version 7.1.070, Release 6326 Win 10 专业版 Wireshake Version 4.0.3 问题描述: H3C交换机如何配置本地端口镜像并在PC上使用Wireshake抓包 解决方案: 配置交换机本地端口镜像 1.进入系统视图,并创建本地镜像组1 <H3C>system-vie…

高效反编译luac文件

对于游戏开发人员,有时候希望从一些游戏apk中反编译出源代码,进行学习,但是如果你触碰到法律边缘,那么你要非常小心。 这篇文章,我针对一些用lua写客户端或者服务器的编译过的luac文件进行反编译,获取其源代码的过程。 这里我不赘述如何反编译解压apk包的过程了,只说重点…

【【STM32之GPIO】】

STM32之GPIO 学完了正点原子自带的视频课之后感觉仍然一知半解现在更新一下来自其他版本的STM32学习 GPIO 就是 General Purpose Input Output 中文名叫通用输入输出口 可配置8种输入输出模式 引脚电平 0V~3.3V 部分引脚可容忍5V 输出模式下可控制端口输出高低电平&#xff…

grafana-zabbix基础操作篇------导入数据源

文章目录 一、grafana的安装1.1、下载地址1.2、下载后导入所安装机器1.3、yum安装解决依赖1.4、启动grafana1.5、查看端口是否启用&#xff08;端口默认3000&#xff09;1.6、浏览器访问 二、添加zabbix数据源2.1、导入数据源 **下一篇 我们讲讲构建仪表板的操作** 今天&#x…

如何在工作中利用AIGC提质增效?

引言 人工智能技术快速发展&#xff0c;以 ChatGPT 为代表的新的人工智能语言模型的出现与更迭&#xff0c;引发人们极大的兴奋和关注。越来越多的企业开始将 AI 技术应用到生产流程&#xff0c;以提高工作效率和生产力。AIGC&#xff08;AI Generated Content&#xff09;是人…

UE4/UE5 照明构建失败 “Lightmass crashed”解决“数组索引越界”

在构建全局光照时,经常会出现“Lightmass crashed”的错误,导致光照构建失败。本文将分析这一问题的原因,并给出解决建议。 UE4 版本4.26 报错如下&#xff1a; <None> Lightmass crashed: Assertion failed: (Index > 0) & (Index < ArrayNum) [File:d:\bu…

在 ubuntu 18.04 上使用源码升级 OpenSSH_7.6p1到 OpenSSH_9.3p1

1、检查系统已安装的当前 SSH 版本 使用命令 ssh -V 查看当前 ssh 版本&#xff0c;输出如下&#xff1a; OpenSSH_7.6p1 Ubuntu-4ubuntu0.7, OpenSSL 1.0.2n 7 Dec 20172、安装依赖&#xff0c;依次执行以下命令 sudo apt update sudo apt install build-essential zlib1g…

BOXTRADE-天启量化分析平台 主要功能介绍

BOXTRADE-天启量化分析平台 主要功能介绍 potato 数学 web 缘起 月晕而风&#xff0c;础润而雨 BOXTRADE-天启量化 欢迎来到天启量化&#xff01;这是一个专注于量化分析的网站。我们致力于为用户提供市场行情技术指标和量化策略分析方面的优质内容和资源。 我们的使命是 做…

第4章 微服务框架主体搭建

mini商城第4章 微服务框架主体搭建 一、课题 框架搭建 二、回顾 1、整体业务功能分析 2、根据业务需求设计表结构及字段 三、目标 1、版本控制器的搭建使用 2、能独立自主的搭建微服务框架 3、学会考虑一些公共的工具组件 4、网关模块的应用 四、内容 第1章 版本控…

万字长文·通俗易懂·一篇包掌握——输入/输出·文件操作(c语言超详细系列)(二)

前言&#xff1a;Hello&#xff0c;大家好&#x1f618;&#xff0c;我是心跳sy&#xff0c;上一节我们主要学习了格式化输入输出的基本内容&#xff0c;这一节我们对格式化进行更加深入的了解&#xff0c;对文件概念进行介绍&#xff0c;并且对输入、输出与文件读写的基本概念…

SpringBoot统⼀功能处理

前言&#x1f36d; ❤️❤️❤️SSM专栏更新中&#xff0c;各位大佬觉得写得不错&#xff0c;支持一下&#xff0c;感谢了&#xff01;❤️❤️❤️ Spring Spring MVC MyBatis_冷兮雪的博客-CSDN博客 本章是讲Spring Boot 统⼀功能处理模块&#xff0c;也是 AOP 的实战环节&…

18-组件化开发 根组件

组件化开发 & 根组件: 1. 组件化:一个页面可以拆分成一个个组件&#xff0c;每个组件有着自己独立的结构、样式、行为. 好处:便于维护&#xff0c;利于复用->提升开发效率 组件分类: 普通组件 , 根组件 2. 根组件:整个应用最上层的组件&#xff0c;包裹所有普通小组件…

常见指令以及权限理解

常见指令以及权限理解 命令格式&#xff1a; command [-options] parameter1 parameter1 命令 选项 参数1 参数2 1.command为命令名称&#xff0c;例如变化目录的cd等 2.中括号[ ]实际在命令中是不存在的&#xff0c;这个中括号代表可选&#xff0c;通常选项前面会添加一个符号…

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

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

视频汇聚/视频云存储/视频监控管理平台EasyCVR添加萤石云设备详细操作来啦!

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

css伪元素实现li列表圆点相连+锚点跳转悬浮窗实现

实现效果&#xff1a; html代码&#xff1a; <div class"sidenav"><ul class"nav-text progressbar"><!-- data-target的值对应要跳转的模块的id --><li data-target"module1"><div class"text">锚点…

Java创建对象的几种方式

在Java中&#xff0c;对象是程序中的一种基本元素&#xff0c;它通过类定义和创建。本篇教程旨在介绍Java中创建对象的几种方式&#xff0c;包括使用new关键字、反射、clone、反序列化等方式。 使用new关键字创建对象 在Java中&#xff0c;最常用的创建对象方式是使用new关键…