Blender增强现实3D模型制作指南【AR】

在这里插入图片描述

推荐:用 NSDT编辑器 快速搭建可编程3D场景

将静态和动画 3D 内容集成到移动增强现实 (AR) 体验中是增强用户沉浸感和参与度的高效方法。 然而,为 AR 创建 3D 对象可能相当艰巨,尤其是对于那些缺乏 3D 建模经验的人来说。 与添加视频或照片 AR 图层不同,生成 3D 对象需要技术专业知识和专用软件。

不过,我们很乐意提供帮助 - 本教程旨在指导你使用免费开源 3D 创建软件 Blender 创建移动增强现实的 3D 内容。 以下文章提供了有关如何使用 Blender 生成可无缝集成到 3D编辑器中的 3D 对象的详细分步过程。

如果你已经有了可用的3D模型,只是需要转换成3D编辑器支持的格式,那么可以使用3DConvert这个在线3D格式转换工具。

1、为什么Blender 是增强现实的绝佳选择?

凭借其强大的 3D 建模工具套件和开源可用性,Blender 是希望在不花太多钱的情况下创建移动增强现实内容的开发人员和设计人员的绝佳选择。 Blender 提供的一系列功能可与 Cinema 4D、3DS Max 和 Maya 等昂贵的 3D 建模软件相媲美。 除非你已经投资了付费软件,否则选择比 Blender 更昂贵的替代品并没有显着的优势。

在过去的几年中,Blender 在扩展其功能和特性方面取得了显着的进步。 它现已被广泛认为是创建 3D 内容的行业标准工具。 凭借其用户友好的界面和全面的功能集,Blender 已成为寻求将其用于 AR 的新手和专家的热门选择。

2、准备 3D 对象以供3D 编辑器使用

为了确保你的 3D 对象与 3D 编辑器兼容,正确准备它们非常重要。 如果你的对象没有任何运动或动画,则可以以 OBJ 格式导入它们。

但是,如果你有更复杂的动画场景,则需要以 glTF 或 FBX 格式导出它们。 glTF 格式特别适合 Web 和移动应用程序,因为它针对快速加载和渲染进行了优化。

要为 3D 编辑器创建 3D 对象,你需要从 Blender 导出 3D 模型和动画,然后将此 3D 对象上传到 3D 编辑器,该编辑器具有内置文件优化工具。

3、了解 3D 模型的结构:多边形和网格

3D 开发的初始阶段是建模,其中对象实际上是在三个维度中创建的。 Blender 提供多种建模技术,其中“网格建模”是使用最广泛和基本的方法。

什么是网格?
在这里插入图片描述

在 3D 建模中,网格是指定义对象形状的一组顶点、边和面。

顶点(Vertex)也可以称为点,是空间中的单个位置:
在这里插入图片描述

边(Edge)是连接两个顶点的直线,定义它们之间的线段:

在这里插入图片描述

面(Face)也称为多边形,是由边包围的平坦表面。 它由通过边连接的三个或更多顶点来定义。
在这里插入图片描述

什么是多边形?

多边形是三维空间中三个或多个顶点用直边连接而成的几何形状。 顶点、边和面是多边形的基本组成部分,其中面指的是多边形的内部区域。 多边形建模通常涉及使用称为三角形的三边形状或称为四边形的四边形状。

多边形面由三个或更多顶点及其关联边包围的区域定义。 许多连接的面创建多边形网格,也称为多边形集或多边形对象,用于创建 3D 多边形模型。

在 Blender 中创建增强现实模型和场景时,对于所需的多边形数量没有具体要求。 然而,重要的是要记住,人们可能会在各种设备上访问此内容,其中一些设备可能较旧。 为了确保最佳性能,最好保持较少的多边形数量。

虽然现代设备可以轻松处理 60 万到 100 万个多边形,但建议将移动设备的场景限制为 25 万个多边形。

在这里插入图片描述

3、准备动画

对象动画可以通过多种方式创建,包括对象变换,其中涉及更改对象的位置、大小以及沿 x、y 和 z 轴的旋转。 对象绑定是另一种对于复杂对象(例如人类、动物和具有多个部件的机械设备)进行动画处理的方法。
在这里插入图片描述

例如,最近的一个项目利用索具系统来模拟蝴蝶翅膀的运动。

要创建动画,需要在时间轴中标记关键帧,以指示对象骨骼或骨架在 x、y 和 z 空间中发生变化的位置。

在这里插入图片描述

时间轴是用于创建动画的主要工具,动画标题及其与特定对象的关联添加在“摄影表”选项卡中,可以通过“动作编辑器”视图访问该选项卡。

5、了解渲染可视化和 AR 之间的颜色和光线差异

在 Blender 中向对象添加颜色是一项简单的任务。 你可以选择一种材质并为其指定颜色。 但是,如果你希望合并其他视觉元素,例如纹理、符号或颜色变化,则需要创建材质。

在这里插入图片描述

Blender 提供了一个选项来创建纹理并将其烘焙到 .JPG 或 .PNG 形式的对象上。 创建纹理时,确保场景中的闪电和阴影不被烘焙非常重要,因为它们会与 Unity 项目灯光发生冲突。 因此,建议选择烘焙类型为“漫反射”,并且仅打开“颜色”选项。

在这里插入图片描述

在烘焙纹理之前,必须检查法线是否面向正确的方向。 如果不是,某些多边形将在 3D编辑器环境中显示为黑色或透明。 扭转法线可以解决这个问题。 一旦纹理被烘焙,它就可以被分配给一个特定的对象,并且可以使用附加的纹理创建一个新的材质。
在这里插入图片描述

请记住,在 Sketchfab、Blender 或 Unity 3D 等平台上查看 3D 模型时,由于渲染系统的差异,外观可能会有所不同。 这些系统以独特的方式处理光照、纹理和阴影等元素,导致模型的最终外观略有不同。

然而,通过利用 glTF 或 GLB 格式以及通用材质层 (UML) 材质,可以标准化模型的外观,从而确保跨不同平台的视觉输出更加一致。

6、UV 映射指南

在 3D 建模中对模型进行纹理处理之前,创建 UV 坐标系贴图至关重要。 尽管这听起来令人畏惧,但这是一个简单的过程。 简而言之,它是显示 3D 对象上纹理出现位置的 2D 图像。 这就像为一个立方体创建纸张布局,然后进行切割、折叠和粘合。 创建布局后,可以为每个对象设计纹理并将其导入3D编辑器。
在这里插入图片描述

除了前面提到的方法之外,还可以使用Photoshop等程序来创建纹理。 可以使用各种纹理使材质变得有光泽、透明、粗糙或类似。 每个纹理应保存为 .JPG 文件。 例如,这对于创建窗户的反射或突出显示建筑物立面的不同方面非常有用。

在 Blender 中,无需创建灯光或摄像机,因为准备好的文件可以直接导入 3D 编辑器中。

7、了解文件格式和 glTF 的优点

创建动画后,必须以 glTF (.gltf/.glb)、FBX 或 OBJ 格式导出。 这些文件类型允许保存对象、纹理、动画和骨架。

glTF 文件格式在业界越来越流行。 其设计强调紧凑的文件大小、快速加载、运行时独立性和完整的 3D 场景表示。

在 glTF 之前,创建工具和引擎之间传输 3D 模型数据的两种主要格式是 FBX 和 OBJ。 FBX 有许多过时的功能,其专有性质和大型 C++ SDK 阻止在 Web 浏览器中直接加载。 对于OBJ格式来说,它的功能有限,并且在存储空间和读/写速度方面效率低下。

一些行业专家预计 glTF 的使用将持续增长,使其有可能成为行业内资产交换的标准格式。 鉴于 Blender 在增强现实方面的潜力,它可以在实现这一结果方面发挥重要作用。

最后,导出时,仅包含网格和骨架很重要。 最佳实践是在提交文件的同时提供纹理贴图到 3D编辑器,以确保顺利集成。

8、从 Blender 以 glTF 格式导出 3D 模型

要从 Blender 以 glTF 格式导出 3D 模型,请按照以下步骤操作:

  • 在 Blender 中打开你的 3D 模型。
  • 确保模型设置正确,包括材质、纹理和 UV 贴图。
  • 单击 Blender 界面左上角的“文件”,然后从下拉菜单中选择“导出”。
  • 从导出格式列表中选择“glTF 2.0 (.glb/.gltf)”。
  • 在右侧的导出选项面板中,选择“GLB”(二进制格式)或“GLTF”(文本格式)作为你的首选格式。 GLB 文件更紧凑,而 GLTF 文件更容易被人类读取。
  • 如有必要,配置其他导出设置,例如应用修改器、选择要导出的对象或调整动画设置。
  • 选择导出文件的目标文件夹并为其命名。
  • 单击“导出”以所选格式保存文件。

在这里插入图片描述

9、故障排除指南

当你在 Blender 中处理 3D 内容时,可能会遇到纹理外观损坏等问题,但这些通常是由于易于修复的人为错误造成的。 以下是一些最常见的场景:

  • 检查错误:将导出的glTF文件重新导入Blender中,看是否显示正确。 如果没有,请查看 Blender 控制台中是否有任何错误消息,因为它们可能提供有关问题的有用信息。
  • 验证材质和纹理:确保材质和纹理正确应用于 Blender 中的模型。 纹理缺失或分配不当可能会导致外观损坏。 另外,请确保你使用支持的材质类型进行 glTF 导出。
  • 检查 UV 映射:仔细检查模型的 UV 映射,以确保纹理正确映射到几何体。 不正确的 UV 贴图可能会导致导出模型上的纹理扭曲或错位。
  • 应用变换:在导出之前,通过选择对象,按 Ctrl+A,然后选择“所有变换”,对模型应用任何变换(缩放、旋转、位置)。
  • 应用修改器:如果你的模型具有任何修改器(例如细分曲面或布尔值),请在导出之前应用它们,以确保导出的文件中包含正确的几何图形。
  • 仔细检查导出设置也是一个好习惯。

10、将移动增强现实提升到新的水平

正如本指南所证明的那样,Blender 是一款功能强大的 3D 建模和动画软件,为创建移动增强现实项目提供了众多优势。

其多功能性使开发人员能够创建复杂的 3D 模型和动画,并将其导出到 3D编辑器。 该软件与 glTF 文件格式的兼容性确保了移动设备的模型和动画的高效压缩,同时保持其高质量。

Blender 拥有大量针对 AR 特定内容的插件和附加组件,是渴望为移动设备创建身临其境的一流 AR 体验的增强现实开发人员的首选。


原文链接:Blender增强现实模型制作 — BimAnt

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

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

相关文章

THUDM/chatglm2-6b-int4体验

在gpu下 gpu: Telsa T4 资源消耗:RAM大概4G,GPU显存大概6G # 安装transformers等包 !pip install protobuf transformers4.30.2 cpm_kernels torch>2.0 gradio mdtex2html sentencepiece accelerate# 导入AutoTokenizer, AutoModel from…

CSAPP Lec01

1. CMU 15213_15513 CSAPP 深入理解计算机系统 Lecture 01 Course Overview 中英字幕_哔哩哔哩_bilibili 从这个课程中可以学到什么?(为什么要学这门课) Great Reality #1(数字类型): Ints are not Integers, Floats…

idea打jar包

目录 1、打包设置 2、打包介绍 3、开始打包 1、打包设置 先设置要打包的模块信息,即打包进去的内容。如下图所示:File --> Project Structure --> Artifacts,点击+号完成模块创建,其中有两种方式:…

《零基础实践深度学习》(第2版)学习笔记,(二)机器学习和深度学习综述

文章目录 1. 人工智能、机器学习、深度学习的关系2. 机器学习2.1 实现原理2.2 如何实施 3. 深度学习神经网络核心概念 1. 人工智能、机器学习、深度学习的关系 **人工智能(Artificial Intelligence,AI)**是研发用于模拟、延伸和扩展人的智能…

微服务系列(2)--注册中心

在博文:微服务系列(1)里我们提到过注册中心的概念,简单来说微服务注册中心是一个用于存储和管理微服务实例信息的组件,它提供了服务注册、服务发现、服务健康检查等功能,以确保微服务之间的稳定通信。在微服务架构中,各…

应用层协议——TCP(上)

文章目录 1. TCP协议1.1 TCP协议段格式1.2 确认应答(ACK)机制1.3 16位窗口大小1.4 6位标志位1.4.1 TCP三次握手 1.5 确认应答(ACK)机制1.6 超时重传机制1.7 连接管理机制1.7.1 理解TIME_WAIT状态1.7.2 理解 CLOSE_WAIT 状态 1. TCP协议 TCP全称为传输控制协议,意思…

〔AI 绘画〕Stable Diffusion 之 VAE 篇

✨ 目录 🎈 什么是VAE🎈 开启VAE🎈 下载常见的VAE🎈 对比不同VAE生成的效果 🎈 什么是VAE VAE:是 Variational Auto-Encoder 的简称,也就是变分自动编码器可以把它理解成给图片加滤镜&#xff…

JavaWeb-Filter过滤器

目录 Filter过滤器 1. Filter的生命周期 2.Filter的配置 3.拦截路径 4.拦截具体的使用 5.拦截方式配置(资源被访问方式) 6.FilterChain拦截链 Filter过滤器 filter是过滤器,相比于Servlet的发送请求,filter是用于拦截请求。…

2023-08-14 linux 串口终端输入长命令不换行,覆盖前面内容,stty命令设置串口终端行列数

一、linux 串口终端输入长命令不换行,覆盖前面内容,现象如下图: 二、解决方法:用stty 命令设置行列数 stty columns 200 stty rows 10三、参考文章 https://www.cnblogs.com/goloving/p/15170537.html 常用Linux串口设备操作命…

【Servlet】(Servlet API HttpServlet 处理请求 HttpServletRequest 打印请求信息 前端给后端传参)

文章目录 Servlet APIHttpServlet处理请求 HttpServletRequest打印请求信息前端给后端传参 Servlet API Servlet中常用的API HttpServlet 实际开发的时候主要重写 doXXX 方法, 很少会重写 init / destory / service destory 服务器终止的时候会调用. //下面的注解把当前类和…

gin的占位符:和通配符*

1、用法 在 Gin 路由中,可以使用一个通配符(*)或一个占位符(:)来捕获 URL 的一部分。 r.GET("/royal/:id", func(c *gin.Context) {id : c.Param("id")//fmt.Println("into :id")c.Str…

HBase API

我们之后的实际开发中不可能在服务器那边直接使用shell命令一直敲的&#xff0c;一般都是通过API进行操作的。 环境准备 新建Maven项目&#xff0c;导入Maven依赖 <dependencies><dependency><groupId>org.apache.hbase</groupId><artifactId>…

命令执行漏洞

1、命令执行漏洞 1.1、简介 Django是用Python开发的一个免费开源的Web结构&#xff0c;几乎包括了Web使用方方面面&#xff0c;能够用于快速建立高性能、文雅的网站&#xff0c;Diango提供了许多网站后台开发常常用到的模块&#xff0c;使开发者可以专注于业务部分。 1.2、漏…

【删除vlan的方法】

提示错误 [SW1]undo vlan 10 Error: The VLAN has a L3 interface. Please delete it first. 解决办法 undo interface Vlanif10 #删除vlan 10下的接口 [SW1-GigabitEthernet0/0/1]dis this #删除下列的IP

接口自动化必备技能——jmeter提取token方式以及设置成全局变量(跨线程组传token值)方式

前言 今天Darren洋教大家如何使用jmeter中的插件来进行token值的提取与调用&#xff0c;今天Darren洋介绍两种jmeter提取token值的方式&#xff0c;一种是在当前线程组中直接提取token值&#xff0c;一种是跨线程组的方式进行token值的提取并调用给不同线程组里的HTTP接口使用。…

如何读取文件夹内的诸多文件,并选择性的保留部分文件

目录 问题描述: 问题解决: 问题描述: 当前有一个二级文件夹,第一层是文件夹名称是“Papers(LNAI14302-14304)",第二级文件夹目录名称如下图蓝色部分所示。第三层为存放的文件,如下下图所示,每一个文件中,均存放三个文件,分别为copyright.pdf, submission.pdf, s…

重磅发布!曙光存储“3+N”,绿色存力新选择

8月9-10日&#xff0c;2023年数据中心市场年会在京举办。会上&#xff0c;中科曙光存储产品事业部总监石静发表《绿色存力 打通绿色数据中心最后一站》主题演讲。“在今天&#xff0c;数据中心正在成为‘高能耗’产业&#xff0c;绿色节能从可选项走向必选项。曙光存储跨越绿色…

开发测试框架一 - 创建springboot工程及基础操作

一、创建及运行方式 1. 从官网导入&#xff1a; 注意&#xff1a;由于我的java版本是1.8&#xff1b;所以选中了spring2.7.14&#xff1b;如果你的java版本是9及以上&#xff0c;选中spring3相关的同时Java 版本也要对应起来 2. 创建第一个get请求 创建Controller package及…

mysql滑动窗口案例

获取学科最高分 SELECT DISTINCT name,subject,MAX(score) OVER (PARTITION by subject) as 此学科最高分数 from scores;获取学科的报名人数 select DISTINCT subject,count(name) over (partition by subject) as 报名此学科的人数 from scores; 求学科总分 SELECT DISTI…

Spring Boot + Vue3前后端分离实战wiki知识库系统十二--用户管理单点登录开发一...

目标&#xff1a; 在上一次https://www.cnblogs.com/webor2006/p/17533745.html我们已经完成了文档管理的功能模块开发&#xff0c;接下来则开启新模块的学习---用户登录&#xff0c;这块还是有不少知识点值得学习的&#xff0c;先来看一下整体的效果&#xff0c;关于效果官网有…