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.pswp.cn/news/37344.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37344.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37344.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

黑馬項目一階段面試58題 蒼穹外賣具體技術細節9題

一、Nginx的作用 1.反向代理 前端把請求發送給nginx,再由nginx將請求發送給后端服務器。 2.負載均衡 提高訪問速度;進行負載均衡;保證后端服務安全 二、Swagger有什么作用 直接調試后端請求響應 三、Redis常見數據類型 String、Hash、L…

flutter 解壓 zip 中文亂碼問題處理

前言 很簡單的一個 zip 包解壓縮的功能,但是 windows 平臺中文顯示亂碼,很糟心,搜了一圈沒找到現成的方法,在此貼上我的解決方式。 實現 導入需要的包 flutter pub add archiveflutter pub add fast_gbkflutter pub add path代…

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)里我們提到過注冊中心的概念,簡單來說微服務注冊中心是一個用于存儲和管理微服務實例信息的組件,它提供了服務注冊、服務發現、服務健康檢查等功能,以確保微服務之間的穩定通信。在微服務架構中,各…

Debian純凈系統安裝php常用擴展和程序

適用于 php-fpm debian容器 mysql擴展 docker-php-ext-install pdo_mysql docker-php-ext-install mysqliredis擴展 pecl install redis docker-php-ext-enable redis# pecl無法裝就: docker-php-source extract # 創建并初始化 /usr/src/php目錄(擴展…

應用層協議——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全稱為傳輸控制協議,意思…

【uniapp 中使用uni-popup阻止左滑退出程序】

在uniapp中,可以使用uni-app插件uni-popup提供的阻止左滑退出程序的功能。具體步驟如下: 安裝uni-popup插件:在HBuilderX編輯器中,打開manifest.json文件,找到“dependencies”字段,在其后添加&#xff1a…

〔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…

成都到長沙自駕游路線推薦-成都至長沙自駕游攻略

請問成都到長沙自駕怎么走,中途在哪里休息比較合適,沿途有哪些景點? 在湖南湘西的吉首落腳是首選 一,成都到吉首 約在800公里。全程高速估計就是 9個小時左右。如果上午出發,差不多可以到吉首吃晚餐,再住酒…

ef core 分頁

在使用 Entity Framework Core(EF Core)進行分頁查詢時,你可以借助以下方法來實現: 使用 Skip 和 Take 方法:Skip 方法用于跳過指定數量的記錄,而 Take 方法用于選擇指定數量的記錄。結合使用這兩個方法&am…

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、漏…

【Terraform學習】管理顯式依賴關系-depends_on(Terraform配置語言學習)

背景&#xff1a; 關于如何在機器上拉terraform代碼&#xff0c;初始化就不重復了&#xff0c;需要的可以查看前面的文章&#xff1a; 【Terraform學習】Terraform-AWS部署快速入門&#xff08;快速入門&#xff09;_向往風的男子的博客-CSDN博客 管理顯式依賴關系 隱式依賴…