当前位置: 首页 > news >正文

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

相关文章:

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

本教程分步展示如何: 减少 3D 模型的多边形数量,使其满足 Microsoft Dynamics 365 Guides 和使用 Microsoft Power Apps 创建的应用程序中包含的混合现实组件的特定性能目标的性能需求。将 3D 模型的多种材质(颜色)组合成可应用于…...

kubeasz在线安装K8S集群单master集群(kubeasz安装之二)

一、介绍 Kubeasz 是一个基于 Ansible 自动化工具,用于快速部署和管理 Kubernetes 集群的工具。它支持快速部署高可用的 Kubernetes 集群,支持容器化部署,可以方便地扩展集群规模,支持多租户,提供了强大的监控和日志分…...

『C语言』数据在内存中的存储规则

前言 小羊近期已经将C语言初阶学习内容与铁汁们分享完成,接下来小羊会继续追更C语言进阶相关知识,小伙伴们坐好板凳,拿起笔开始上课啦~ 一、数据类型的介绍 我们目前已经学了基本的内置类型: char //字符数据类型 short …...

基于ssm+vue的新能源汽车在线租赁管理系统源码和论文PPT

基于ssmvue的新能源汽车在线租赁管理系统源码和论文PPT010 开发环境: 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 摘 要 随着科学技术的飞速发展&#xff0…...

深入解析IDS/IPS与SSL/TLS和网络安全

目录 防火墙 IDS IPS DMZ VPN VPS SSL/TLS 动态IP 静态IP 防火墙 防火墙是一种网络安全设备,用于监控和控制网络流量,保护网络免受未经授权的访问、恶意攻击和威胁。防火墙可以基于规则进行数据包过滤,允许或阻止特定类型的流量通过…...

在Visual Studio上,使用OpenCV实现人脸识别

1. 环境与说明 本文介绍了如何在Visual Studio上,使用OpenCV来实现人脸识别的功能 环境说明 : 操作系统 : windows 10 64位Visual Studio版本 : Visual Studio Community 2022 (社区版)OpenCV版本 : OpenCV-4.8.0 (2023年7月最新版) 实现效果如图所示&#xff0…...

搭建openGauss 5.0 一主一从复制集群

openGauss是一款支持SQL2003标准语法,支持主备部署的高可用关系型国产数据库。 多种存储模式支持复合业务场景,新引入提供原地更新存储引擎。NUMA化数据结构支持高性能。Paxos一致性日志复制协议,主备模式,CRC校验支持高可用。支…...

Docker碎碎念

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

【C++】extern

目录 1. 变量声明和定义的关系 2. 默认状态下,const对象仅在文件内有效 3. 链接指示:extern "C" 3.1 声明一个非C的函数 3.2 链接指示与头文件 3.3 指向extern "C"函数的指针 3.4 链接指示对整个声明都有效 3.5 导出C函数到…...

2023全网Mysql 合集(25w字)附课程 从安装到高级,实战

mysql学习 1.安装mysql 安装教程 2.mysql的详细学习教程 mysql的详细教程 3.mysql 的高级优化 MySQL高级篇(SQL优化、索引优化、锁机制、主从复制) 4.MySQL 面试 MySQL数据库面试题总结 二.mysql实战 一、创建数据表并插入数据 1、学生表 Stud…...

张俊林:由ChatGPT反思大语言模型(LLM)的技术精要

转自:https://mp.weixin.qq.com/s/eMrv15yOO0oYQ-o-wiuSyw 导读:ChatGPT出现后惊喜或惊醒了很多人。惊喜是因为没想到大型语言模型(LLM,Large Language Model)效果能好成这样;惊醒是顿悟到我们对LLM的认知及发展理念&a…...

单机编排docker compose

Docker之旅(8)-单机编排docker compose 当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容易出错, 并且每个容器之间也会有先后启动的顺序依赖等。这个时候推荐使用 docker 单机 编排工具 docker-compose,docker-compose …...

C++ 面向对象三大特性——多态

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C 继承 ☂️<3>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<4>前言&#xff1a;面向对象三大特性的&#xff0c;封装&#xff0c;继承&#xff0c;多态&#xff…...

相同数字的积木游戏

题目描述 题目描述 小华和小薇一起通过玩积木游戏学习数学。 他们有很多积木&#xff0c;每个积木块上都有一个数字&#xff0c;积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排&#xff0c;请小薇找到这排积木中数字相同目所处位置最远的2块积木块&#xff0c;计算…...

安防监控视频云存储EasyCVR平台H.265转码功能更新:新增分辨率配置

安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储…...

图数据库_Neo4j学习cypher语言_常用函数_关系函数_字符串函数_聚合函数_数据库备份_数据库恢复---Neo4j图数据库工作笔记0008

然后再来看一些常用函数,和字符串函数,这里举个例子,然后其他的 类似 可以看到substring字符串截取函数 可以看到截取成功 聚合函数 这里用了一个count(n) 统计函数,可以看到效果 关系函数,我们用过就是id(r) 可以取出对应的r的id来这样.....

LeetCode150道面试经典题-- 加一(简单)

1.题目 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 2.示例 示例 1&#xff1a; 输入&am…...

Centos7 配置Docker镜像加速器

docker实战(一):centos7 yum安装docker docker实战(二):基础命令篇 docker实战(三):docker网络模式(超详细) docker实战(四):docker架构原理 docker实战(五):docker镜像及仓库配置 docker实战(六):docker 网络及数据卷设置 docker实战(七):docker 性质及版本选择 认知升…...

微信小程序中pdf的上传、下载及excel导出

微信小程序中pdf的上传、下载及excel导出 pdf上传上传1&#xff1a;上传2&#xff1a; pdf下载导出excel pdf上传 上传两种方法&#xff1a; 上传1&#xff1a; 1.用vant weapp组件&#xff1a; //pdf上传--vant weapp组件 <view class"content"><van-u…...

Python_11 类的方法

一、查缺补漏 1. 实例方法必须用类实例化对象()来调用&#xff0c;用类来调用时会执行&#xff0c;但是self中不是实例化类地址而是传的字符串 二、类中的方法 1. 实例方法 1. 定义在类里面的普通方法(函数) 2. 第一个参数必须是类实例&#xff0c;在方法调用的时候会自动…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像&#xff08;比如分辨率3000*3000的图像&#xff09;的办法&#xff0c;尤其是想把内存中的裸数据&#xff08;只有图像的数据&#xff0c;不包…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...