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.rhkb.cn/news/92896.html

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

相关文章

Mariadb高可用MHA (四十二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 1.1 概念 1.2 组成 1.3 特点 1.4 工作原理 二、构建MHA 2.1 ssh免密登录 2.2 主从复制 2.3 MHA安装 2.3.1所有节点安装perl环境 2.3..2 node 2.3.…

零售行业供应链管理核心KPI指标(三)

完美订单满足率和退货率 完美订单满足率有三个方面的因素影响:订单按时、足量、无损交货。通常情况下零售企业追求线上订单履行周期慢慢达到行业平均水平,就是交付的速度变快了,这个肯定是一件好事情,趋势越来越好。 同时&#…

Vim的插件管理器之Vundle

1、安装Vundle插件管理器 Vim可以安装插件,但是需要手动安装比较麻烦,Vim本身没有提供插件管理器,所以会有很多的第三方的插件管理器,有一个vim的插件叫做 “vim-easymotion”,在它的github的安装说明里有列出对于不同…

log4j:WARN No appenders could be found for logger问题

本文将idea场景下的使用。 IDEA中,将配置文件命名为log4j.properties(该命名才会被自动加载), 并放到某个目录下(通常放到resources目录),并在resources上右键,找到Mark Directory a…

Nginx转发请求到后端服务报400 Bad Request

问题描述 系统部署好后,进行测试时发现有部分接口出错,项目采用Nginx作为后端代理服务器,有Nginx统一将请求转发到后端的网关服务,再由网关服务路由到具体的服务上,发布好后,大部分接口都是正常的&#xff…

POSTGRESQL 关于2023-08-14 数据库自动启动文章中使用KILL 来进行配置RELOAD的问题解释...

开头还是介绍一下群,如果感兴趣Polardb ,mongodb ,MySQL ,Postgresql ,redis ,SQL SERVER ,ORACLE,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 &…

常见排序集锦-C语言实现数据结构

目录 排序的概念 常见排序集锦 1.直接插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 hoare 挖坑法 前后指针法 非递归 7.归并排序 非递归 排序实现接口 算法复杂度与稳定性分析 排序的概念 排序 :所谓排序,就是使一串记录&#…

【计算机网络】13、ARP 包:广播自己的 mac 地址和 ip

机器启动时,会向外广播自己的 mac 地址和 ip 地址,这个即称为 arp 协议。范围是未经过路由器的部分,如下图的蓝色部分,范围内的设备都会在本地记录 mac 和 ip 的绑定信息,若有重复则覆盖更新(例如先收到 ma…

ESP32+VSCode开发环境搭建(全网最强最终解决方案)

文章目录 1 安装步骤2 开发机器环境准备3 安装ESP-IDF-tools离线包4 创建VSCode配置文件(纯净的开发环境)5 安装espressif IDF 插件6 程序测试7 常见问题7.1环境变量设置问题?问题1:到底是设置IDF_TOOLS_PATH和IDF_PATH还是只配置一个IDF_TOOLS_PATH? 7…

Spring的简介ioc容器及注入方式

一.Spring的简介 1.Spring的特性 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。 Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。 然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性…

Python文件操作与输入输出:从基础到高级应用

文章目录 🍀引言🍀文件操作基础🍀上下文管理器与文件自动关闭🍀文件的迭代与逐行读取🍀文件的其他常见操作🍀输入输出基础🍀 文件输入输出🍀格式化输出🍀高级文件操作&am…

(二)掌握最基本的Linux服务器用法——Linux下简单的C/C++ 程序、项目编译

1、静态库与动态库 静态库(Static Library):静态库是编译后的库文件,其中的代码在编译时被链接到程序中,因此它会与程序一起形成一个独立的可执行文件。每个使用静态库的程序都会有自己的库的副本,这可能会导致内存浪费。常用后缀…

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大

大家好,我是风雨无阻。 通过前面几篇文章的介绍,相信各位小伙伴,对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能,利用简单的几个单词,就可以生成完美的图片…

7-3 求给定精度的简单交错序列部分和

分数 15 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求编写程序,计算序列部分和 1 - 1/4 1/7 - 1/10 ... 直到最后一项的绝对值不大于给定精度eps。 输入格式: 输入在一行中给出一个正实数eps。 输出格式: 在一行中按照“sum S”的格式输出…

.net连接mysql,提示找不到请求的 .Net Framework Data Provider。可能没有安装

开发完成的.net程序需要连接mysql数据库,在个人电脑上运行没问题,别人运行时提示“提示找不到请求的 .Net Framework Data Provider。可能没有安装”。经过查询,安装Connector/NET 8.1.0,下载地址如下所示: https://d…

(分治) 剑指 Offer 16. 数值的整数次方 ——【Leetcode每日一题】

❓剑指 Offer 16. 数值的整数次方 难度:中等 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即, x n x^n xn)。不得使用库函数,同时不需要考虑大数问题。 示例 1: 输入:x 2.00000, n …

腾讯云轻量服务器测评:2核 2G 4M

腾讯云轻量2核2G4M服务器,4M带宽下载速度可达512KB/秒,系统盘为50GB SSD盘,300GB月流量,地域节点可选上海、广州和北京,腾讯云百科分享腾讯云2核2G4M轻量应用服务器配置性能表: 目录 腾讯云轻量2核2G4M服…

谈谈网络协议的定义、组成和重要性

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、网络协议的定义 二、网络协议的组成 1、…

Vite更新依赖缓存失败,强制更新依赖缓存

使用vitets开发一段时间了,感觉并不是想象中的好用,特别是出现些稀奇古怪的问题不好解决,比如下面这个问题 上午9:50:08 [vite] error while updating dependencies: Error: ENOENT: no such file or directory, open E:/workspace-dir/node…

常见期权策略类型有哪些?

这几天在做一个期权策略类型的整理分类,怎么解释期权策略,期权策略是现代金融市场中运用非常广泛、变化非常丰富、结构非常精妙的金融衍生产品;同时也是一种更为复杂也更为灵活的投资工具,下文介绍常见期权策略类型有哪些&#xf…