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

news2024/12/24 8:16:25

在这里插入图片描述

推荐:用 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.coloradmin.cn/o/880572.html

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

相关文章

智慧工地源码,PC+APP源码,项目管理端+企业监管端+数据大屏端

智慧工地概念 智慧工地是一种崭新的工程全生命周期管理理念,是指运用信息化手段,通过对工程项目进行精确设计和施工模拟,围绕施工过程管理,建立互联协同、智能生产、科学管理的施工项目信息化生态圈,并将此数据在虚拟…

python3 0基础学习笔记

0基础学习笔记,临时有事暂停后边会继续学习 基础内容1. 条件语句 if - elif - else2. 错误铺捉try - except(一种保险策略)3. 四种开发模式4. 函数:def用来定义函数的5. 最大值最小值函数,max ,min6. is 严格的相等&am…

神经网络基础-神经网络补充概念-02-逻辑回归

概念 逻辑回归是一种用于二分分类问题的统计学习方法,尽管名字中带有"回归"一词,但实际上它用于分类任务。逻辑回归的目标是根据输入特征来预测数据点属于某个类别的概率,然后将概率映射到一个离散的类别标签。 逻辑回归模型的核…

echarts绘制仪表盘

代码展示: /**绘制仪表盘图表 */function drawInstrument(id) {setTimeout(()> {var chart echarts.init(document.getElementById(id)); var option {series: [{name: 风险指数,type: gauge,center: [50%, 60%],radius: 90%,min: chartData.min,max: chartDat…

捷码低代码+智慧水务:降本增效,灵活应变

数字经济正在强势崛起,已成为未来经济发展的主要动力。如何通过数字化转型获得最大收益,成为当下各行业最关心的问题。水务行业,作为我国的传统行业,也迎来数字化转型的快速发展期。如何利用新技术,实现以创新为核心的…

Android splash.img的制作

在device\qcom\common\display\logo下找到logo_gen.py如果没有安装Python,先执行以下命令 sudo apt-get install python-imaging将需要制作logo的图片拷贝到logo_gen.py的同级目录 需要注意的是图片分辨率应该与设备屏分辨率一致运行如下命令生成splash.img,执行 py…

相约天津!全国智能汽车竞赛百度创意组总决赛通知

“全国大学生智能汽车竞赛”是教育部倡导的大学生科技A类竞赛,中国高等教育学会将其列为含金量最高的大学生竞赛之一,为《全国普通高校大学生竞赛排行榜》榜单内赛事。 飞桨共承办了百度完全模型组和百度智慧交通组两大赛道。下文为百度智慧交通组具体安…

NeMo 声纹识别VPR-实战

声纹识别(VPR) ,生物识别技术的一种,也称为说话人识别 ,是从说话人发出的语音信号中提取声纹信息,从应用上看,可分为: 说话人辨认(Speaker Identification):用以判断某段语音是若干人中的哪一个所说的,是“多选一”问题;说话人确认(Speaker Verification):用以确认某…

【Git】本地搭建Gitee、Github环境

本地 (Local) 1、使用命令生成公钥(pub文件) 1. $ ssh-keygen -t rsa -C "xxxxxxxemail.com" -f "github_id_rsa" 2. $ ssh-keygen -t rsa -C "xxxxxxxemail.com" -f "gitee_id_rsa" …

一文预览 | 8 月 16 日 NVIDIA 在 WAVE SUMMIT深度学习开发者大会 2023精彩亮点抢先看!

由深度学习技术及应用国家工程研究中心主办,百度飞桨和文心大模型承办的 WAVE SUMMIT深度学习开发者大会2023,将于 8 月 16 日在北京与大家见面。NVIDIA 作为技术合作伙伴,将携手百度飞桨参与这场技术盛会。 在这次大会中,NVIDIA…

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

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

论文复现--关于多视角动作捕捉工具箱 --XRMoCap的研究

分类:动作捕捉 github地址:https://github.com/openxrlab/xrmocap 所需环境: Ubuntu18.04,conda22.9.0,CUDA11.4 目录 环境配置 环境配置 conda create -n XRmocap python3.7 -y conda activate XRmocap# install ffm…

uniApp引入vant2

uniApp引入vant2 1、cnpm 下载:cnpm i vantlatest-v2 -S2、main.js文件引入 import Vant from ./node_modules/vant/lib/vant;Vue.use(Vant);3.app.vue中引入vant 样式文件 import /node_modules/vant/lib/index.css;

Python opennsfw/opennsfw2 图片/视频 鉴黄 笔记

nsfw&#xff08; Not Suitable for Work&#xff09;直接翻译就是 工作的时候不适合看&#xff0c;真文雅 nsfw效果&#xff0c;注意底部的分数 大体流程&#xff0c;输入图片/视频&#xff0c;输出0-1之间的数字&#xff0c;一般情况下&#xff0c;Scores < 0.2 认为是非…

[NDK]从Opengles到Vulkan-基础篇(4)-图形管线

Opengles的渲染管线 Opengles的渲染管线在是由多个着色器处理来完成。 顶点着色器几何着色器片元着色器 其他图片装配,光栅化这两个过程Opengles是无法直接管理,都是已经内置系统完成,没有公开的api。 Opengles还能管理以下内容,api都是提供的。深度测试裁剪测试和视口大小…

[NDK]从Opengles到Vulkan-基础篇(7)-创建纹理容器

关于绘制调用的流程 我们可以看到整个流程步骤 1 光栅化2 裁剪测试3 多重采样4 深度测试5 模板测试6 混合7 抖动8 输出帧数据 这一节会涉及到FragmentShader的使用以及多重采样 Opengles创建纹理 对于加载纹理,我们可以选用stbimage。stbimage是一个C++图片加载轻量库,如果…

idea如何建立web项目???

我们需要用到tomcat&#xff0c;没有下在着小伙伴&#xff0c;可以借鉴这篇博客&#xff1a; 如何正确下载tomcat&#xff1f;&#xff1f;&#xff1f;_明天更新的博客-CSDN博客 1.建立普通的Java项目。 2.简单编写index.jsp文件 3.添加tomcat 4.运行服务器 5.构建Servlet 最后…

linux Socket简单编程实例

服务端 网络编程中服务端接受连接的套接字创建过程如下: 1.调用socket函数创建套接字 2.调用bind函数分配IP地址和端口号 3.调用listen函数转为可接收请求状态 4.调用accept函数受理连接请求 #include <stdio.h> #include <stdlib.h> #include <sys/types.h>…

C++RAII内存管理技术

文章目录 一.什么是RAII内存管理技术&#xff1f;二.智能指针unique_ptrshared_ptr循环引用问题weak_ptr 一.什么是RAII内存管理技术&#xff1f; C在引入异常机制后,代码执行流的跳转变得难以预料,如果使用普通的指针进行内存管理,很难避免内存泄漏的问题(执行流跳转导致堆区…

kafka集成篇

kafka的Java客户端 生产者 1.引入依赖 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>2.6.3</version></dependency>2.生产者发送消息的基本实现 /*** 消息的发送⽅*/ …