android显示3d模型_使用Unity AR Foundation在增强现实中查看模型
本文將分享麻省理工學院的教程-使用Unity AR Foundation在增強現實中查看模型。
在本教程中,我們將介紹如何把3D模型導入Unity,并使用Android設備或iOS設備在AR中查看模型的步驟。
過去,我們往往使用Vuforia增強現實系統來實現此目的,但現在Android和iOS都默認支持圖像跟蹤功能,因此我們不再需要使用第三方工具包了。
Unity支持Android的ARCore和iOS的ARKit,但是還有一個更好的選擇:AR Foundation。
AR Foundation是一款跨平臺開發套件,支持Android和iOS的系統。AR Foundation可以幫助我們更輕松開發在不同設備上使用的應用。但在部署應用到iOS或Android設備之前,我們仍需要完成一些額外步驟。
通過學習本教程,我們將學習在增強現實中放置模型的兩種設置:圖像跟蹤和平面跟蹤。
圖像跟蹤允許我們指定放置模型的目標圖像。我們將打印出目標圖像,應用程序將查找和放置模型到該圖像上。
圖像跟蹤模式
平面跟蹤模式下,我們將模型放置到現實平面中。我們可以在該模式下縮放和旋轉模型。
平面跟蹤模式
學習準備
首先,我們必須安裝必要的軟件及工具。
1、請下載并安裝Unity Hub,此時會需要創建Unity用戶賬號。
2、啟動Unity Hub,依次點擊Install > Add,從列表選擇Unity 2019.1.7f1版本。請不要安裝結尾帶有“a”或“b”的預覽版本,因為我們無法確保它們的兼容性。
3、在安裝界面勾選Android Build Support或iOS Build Support。
對于Android系統,要點開Android Build Support旁邊的小箭頭,勾選Android SDK and NDK Tools選項,這樣可以跳過下一步。
4、Android系統的可選步驟:下載并安裝Android Studio。如有必要,我們會使用Android Studio下載最新版Android SDK。
我們建議使用Unity安裝Android SDK和NDK,過程將更簡單。安裝Android Studio可以在電腦上提供Android開發環境,方便實現高級用例。
下載Android Studio:
https://developer.android.com/studio
5、對于iOS系統,請訪問App?Store下載最新版XCode。
設置Unity項目
本教程將使用Unity AR Foundation示例項目中的兩個示例場景。使用模板可以簡化編輯操作,從而快速在場景放置和查看模型。
1、我們訪問GitHub下載模版文件,下載完成后進行解壓。
下載模版文件:
https://github.com/virtualxdesign/artemplate
2、啟動Unity Hub,點擊“Projects > ADD”選擇解壓的文件夾位置,將項目添加到Projects列表。在下拉菜單選擇Unity版本,然后雙擊打開項目。
請注意,建議電腦安裝的Unity版本和項目模版中使用版本一致,即Unity 2019.1.7f1。如果沒有Unity 2019.1.7f1的版本,我們將在項目下方看到橙色的感嘆號符號,只要使用的是更新的版本,所有功能都會正常工作。
為項目選擇正確的Unity版本,打開項目
3、現在項目窗口打開了,項目中的AR Foundation應該已經是啟用狀態,如果沒有啟用的話,我們可以手動啟用?。
請點擊“Window > Package Manager”,打開資源包管理器窗口。該窗口顯示Unity項目的所有可用擴展資源包。我們將看到AR Foundation、ARCore XR Plugin、ARKit Face Tracking和ARKit XR插件已經安裝。
這些資源包名稱旁邊可能會有一個向下的箭頭,表示有更新的版本可以使用,但請不要進行更新。如果已經有下面版本號的資源包,表示所有內容都已設置完成。
如果這些資源包沒有安裝好,請單擊選擇這些資源包,并從下拉列表選擇以下版本,然后單擊進行安裝。
AR?Foundation -> preview.3 - 2.1.0
ARCore XR Plugin -> preview.5 - 2.1.0
ARKit XR Plugin -> preview.5 - 2.1.0
ARKit Face Tracking -> preview.6 - 1.0.0
打開?Package Manager,確保已安裝需要的資源包
4、將構建目標切換為Android或iOS。選擇“File > Build Settings”,我們將為構建版本選擇正確的環境。
從左側列表中,選擇Android或iOS,此時可以在底部看到“Switch Platform”按鈕,單擊該按鈕。轉換項目到對應平臺需要一些時間,此時不要關閉該窗口。
單擊左下角的“Player Settings”,將打開帶有平臺專用設置的窗口。模板應該已經有正確的設置,但我們仍要改變項目的資源包名稱。
選擇目標平臺,然后單擊“Switch Platform”,最后單擊左下角的“Player Settings”
5、在Player Settings中,找到Identification部分。?我們可以修改資源包名稱,名稱的格式應該為“com.packagename.projectname”,
例如:模板設置的名稱為com.virtualxdesign.artemplate,將其修改為com.virtualxdesign.yourprojectname,這將讓應用擁有唯一的標識符。
修改資源包名稱為com.virtualxdesign.yourproject
現在查看Unity項目文件。在打開場景時,如下圖所示。
左側是層級窗口,我們將使用該窗口把模型放置到場景中。我們可以把對象放到其它對象之中,當對象中包含子對象時,對象名稱旁邊會出現一個小箭頭。
中間的視圖是3D場景視圖,我們可以在這個窗口中選擇、移動、旋轉和縮放對象。在圖像跟蹤示例中,我們不會使用該窗口。
右側是檢視窗口,我們可以在此查看和編輯游戲對象的細節。底部是項目窗口目錄,這里列出了所有項目文件,我們會把模型文件放置到此處。
6、打開圖像跟蹤示例。在項目窗口中,打開“Scenes/ImageTracking/ImageTracking.Unity”。我們可以在該場景放置模型到目標圖像上,例如:放到明信片或海報上。
我們使用默認設置在該場景測試了我們的設置內容。你不必修改任何內容,我們會構建應用,然后傳輸到設備,查看應用是否可以運行。此時,除了平臺專用部分,所有內容都應該準備就緒。
下面,我們將介紹在Android設備和iOS設備上運行的準備步驟,請根據自己的設備執行相應的步驟。
構建過程(iOS)
為iOS系統構建Unity項目會有一些略微復雜的步驟,請參考Unity官方教程《構建為在iOS設備上進行測試的Unity項目》學習在iOS中構建和測試你的應用。
閱讀Unity官方教程《構建為在iOS設備上進行測試的Unity項目》:
https://learn.unity.com/tutorial/building-for-mobile#
我們需要準備的內容:
安裝iOS 11或更高版本系統的iOS設備
最新版XCode
Apple賬號
溫馨提示:由于本文教程使用了示例應用及模版,所以請忽略Unity官方教程中“Setting up the Simple Mobile Placeholder project”和“Preparing your Unity project for building to iOS”兩部分的內容。
按照官方教程完成設置后,應用將會成功安裝到設備上。啟動應用,將攝像頭對準“ImageTracking>Images”目錄下的圖像,我們將會看到,模板里的模型城堡出現在圖像上。
我們可以從“Scenes/PlaneTracking.Unity”中打開平面跟蹤示例項目,構建并運行該項目。當運行應用時,我們圍繞水平面移動攝像頭,此時將出現一個網格。?在網格上單擊,模型會出現在網格上。我們可以使用滑塊對模型進行移動,縮放和旋轉。
構建過程(Android)
面向Android系統構建項目時,我們需要的Android設備至少要安裝Android 7.0版本。
1、請在Android設備上啟用開發者模式。
在設備上打開“Settings> About Phone”(設置 > 關于手機),找到“Build Number”(版本號)。點按7次版本號,將提示已經進入開發者模式,這樣我們可以在手機上啟用“Developer Options”(開發者選項)。
2、啟用開發人員模式后,我們轉到點擊“Settings > System > Advanced > Developer Options“(設置 > 系統 > 高級?> 開發者選項),訪問“Developer Options”(開發者選項)。根據設備不同,開發者選項的位置可能有所區別。如果無法找到設備的開發者選項,請在網絡上搜索相關信息。
3、在開發者選項中,找到并啟用“USB Debugging”(USB調試),這將允許我們從Unity把應用傳輸到Android設備。
4、我們將Android設備連接到電腦。我們的設備應該會提示“Trust this computer”(信任此電腦),點擊“Always Trust”(總是信任),然后確認。如果不選擇信任此電腦,電腦將無法把應用傳輸到手機上。
5、現在我們已經準備好構建應用。打開“Build Settings”構建設置,找到“Run Device”設置,單擊“Refresh”按鈕。在下拉列表中,找到并選中設備名稱,這將使設備成為構建目標。
6、單擊“Build and Run”(生成并運行)。Unity會請求在處理前把應用保存在電腦上。使用默認位置即可。命名應用的名稱,然后保存,就開始構建過程了。
7、現在應用應已加載到手機上并且自動啟動。我們把手機攝像頭對準“Scenes/ImageTracking/Images”文件夾下的一幅圖像,可以看到圖像上出現了城堡模型。
8、我們可以從“Scenes/PlaneTracking.Unity”中打開平面跟蹤示例場景。構建并運行應用。我們圍繞水平面移動攝像頭,此時將出現一個網格。?在網格上單擊,模型會出現在網格上。我們可以使用滑塊對模型進行移動,縮放和旋轉。
在啟動應用后,打開并設備對準目標圖像,此時城堡模型應該會出現在目標上
導入和準備3D模型
我們可以使用攝影制圖法獲得OBJ文件或FBX文件,在導出模型時,我們應該把軸心點設為(0,0,0),把上方向設為Y軸。這樣在3D建模軟件中進行模型準備,比在之后導入Unity再進行設置要方便得多。如果模型的軸心點或朝向設置不正確,我們需要在Unity中進行調整。
3D攝影制圖法模型有逼真的紋理和自然的環境光照。因此,我們不要對它們應用額外的光照,而是使用Unlit材質。請按照下列步驟,導入和應用Unlit著色器。
1、我們將OBJ,MTL和JPG文件拖入Unity的項目窗口目錄中。我們可以在3DModels文件夾下創建新文件夾,把模型文件放到該文件夾中。
將文件拖放到Unity項目窗口
2、單擊OBJ文件,在檢視窗口中,單擊“Extract Materials”(提取材質),使用已選中的文件夾,這樣可讓Unity在同一目錄下生成可以編輯的材質資源。
3.、單擊新建的材質資源。在檢視窗口中,單擊“Shader”下拉菜單,輸入“Unlit”,單擊選擇“Unlit (Mobile/Unlit) shader”。
4、現在,我們要將模型放入模板場景中。為了方便正確地放置和縮放模型,我們提供了模板預制件。
在項目窗口中,打開3DModels文件夾,里面一個名為TrackedModel.prefab預制件,雙擊打開該預制件。
5、TrackedModel預制件已經放入圖像跟蹤和平面跟蹤的示例場景中。在修改該預制件時,兩個示例場景都會進行更新。因此,我們只需要把模型放到該預制件中即可。
6、把模型拖到該預制件中,請把模型添加為TrackedModel預制件的子對象。
7、此時,我們在同一預制件中有城堡參考模型和自己的模型。我們需要確保自己的模型有正確的位置和朝向。在放置自己的模型時,請使用城堡模型作為參考。
8、我們將自己的模型放到Tracked Model預制件之下,我們可能會不小心把它錯放到Castle子對象下。
如果發生這種情況,模型可能會使用錯誤的縮放,位置和角度參數,從而完全離開屏幕外。我們可以使用檢視窗口和3D工具來找到模型,把它移動到原來的位置。
在編輯Transform組件時,請確保選中的是自己的模型,而不是TrackedModel預制件。如果移動或縮放TrackedModel預制件會破壞示例場景。在單擊TrackedModel即根對象時,我們會看到下圖上的參數。
9、移動,縮放和旋轉模型,使模型處在城堡模型中間。它們應該在底部對齊。最后刪除城堡模型,單擊返回箭頭返回主場景。
10、我們的模型已經準備好了。現在可以打開示例場景,單擊“Build and Run”來體驗自己的應用。
使用圖像跟蹤模板
我們提供了一組圖像目標的示例文件,你也可以創建和使用自己的圖像目標。
1、找到合適的目標圖像。通常我們應該使用帶有鮮明特征的復雜圖像,而帶有少量或重復特征的圖像并不適合使用。
2、在項目窗口中,打開“Scenes/ImageTraking/Images”文件夾,把格式為.jpg或.png的目標圖像文件拖到該目錄中。
3、單擊“ReferenceImagesLibrary.asset”,在檢視窗口中,我們會看到一組圖像添加到目標圖像列表。該列表中的所有圖像都可以在運行時捕捉到,在列表下單擊“Add Image”。
4、我們添加新的參考圖像,將自己的圖像拖到新的參考圖像上,它會把圖像添加到該列表中。
5、在“Specify Size”部分下,輸入目標圖像在現實世界中的大小,以米為單位。
給目標圖像列表添加新圖像
現在大功告成 !構建Image Tracking示例場景時,我們將看到應用能夠識別目標圖像,并在圖像上方放置模型,我們也可以嘗試不同的圖像和大小。
使用平面檢測模板
我們也可以使用Plane Tracking平面跟蹤示例場景。平面跟蹤示例場景擁有UI,你可以將模型放置到任何水平面上,并且使用滑塊移動,縮放和旋轉模型。
在項目窗口中,打開Scenes文件夾。點擊Plane Tracking,所有內容應該都已經設置好了。根據Android設備或iOS設備特定步驟,構建并運行應用。
別忘了點按平面來放置模型。在手機識別到平面時,我們會看到平面上出現網格。我們可以把模型放到識別到的網格上。
小結
麻省理工學院的教程《使用Unity AR Foundation在增強現實中查看模型》為大家介紹到這里,對AR感興趣的開發者,趕緊按照教程中的內容,動手進行操作吧。
下載Unity Connect APP,請點擊此處。?觀看部分Unity官方視頻,請關注B站帳戶:Unity官方。
你可以訪問Unity答疑專區留下你的問題,Unity社區和官方團隊幫你解答:
Connect.unity.com/g/discussion
推薦閱讀
攝影制圖法工作流程指南
AR Foundation已支持LWRP 4.8.0-preview
Unity的移動端AR生態系統:AR Foundation,ARCore和ARKit
使用AR Foundation制作圣誕AR小游戲
《帕斯卡契約》2019蘋果秋季發布會大放異彩
使用Unity Accelerator加快團隊協作開發
使用Unity開發沙盒游戲《The Serpent Rogue》
高級動畫綁定功能:角色與物品的交互
喜歡本文,請點“在看”
總結
以上是生活随笔為你收集整理的android显示3d模型_使用Unity AR Foundation在增强现实中查看模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作碳排放强度的空间可视化_【科研成果】
- 下一篇: 调用python_「Python 进阶」