李君
鄭州旅游職業學院 河南 鄭州 451464
對于計算機編程教學而言,最重要的是就是動手實踐。利用AR技術進行計算機編程教學系統的設計,可以增強實踐教學,從而幫助學生熟悉計算機編程相關知識。下文,筆者將以AR技術的計算機編程教學系統設計為文章主題,就如何應用AR技術進行系統設計進行詳細的討論。
增強現實(augmented reality, AR)技術是在虛擬現實(virtual reality ,VR )技術的基礎上產生的,AR技術對于真實環境中的信息進行三維注冊,將計算機生成的虛擬信息疊加應用到真實世界,利用傳感技術和顯示設備將虛擬信息和真實世界統一在一個畫面或空間內,從而實現對現實世界的增強,達到超越現實的感官體驗。隨著虛擬現實技術和增強現實技術的發展,各大領域都開始立足于該技術進行相關工作的改革,教學領域也不例外。隨著科學技術的不斷發展,VR / AR技術開始被不斷應用,市場的需求正在推動AR產業不斷發展。基于AR技術對計算機編程教學系統進行設計,已經成為計算機編程教學的必然發展趨勢[1]。
計算機編程教學系統的總體設計為,首先需要開設一個信息輸入模塊,顯而易見,信息輸入模塊的作用是用于采集一些信息。信息輸入模塊主要獲取兩部分信息,第一采集客戶端在系統中輸入的需求信息,第二則是通過標志物特征點信息的處理與匹配,獲取服務器端虛擬模型信息。除了信息輸入模塊,還要在系統中開發融合顯示模塊,融合顯示模塊需要信息輸入模塊為之提供服務,即融合顯示模塊根據信息輸入模塊捕獲的信息,實時跟蹤注冊虛擬信息在真實世界的位置,然后進行真實信息與虛擬信息的疊加融合顯示。
在開發融合顯示模塊時,首先通過三維建模軟件Solidworks進行所需要展示框架的建模工作。在建模時應該注意,Unity3D只能識別模型格式為.fbx的模型文件,因此在進行識別時,需將其他格式的模型文件通過格式轉換軟件轉換為.fbx格式的模型文件才能繼續進行融合模塊的開發。模式轉換完畢之后,將所需的模型文件導入Unity 3D中。然后將Imagetarget 包導入Unity 3D 中并粘貼License Key。將.fbx模型文件放置在相應的Image target下,調整大小及位置等模型文件參數。最后進行相應設置并打包發布。在計算機編程系統中,還要添加最核心的人機交互模塊。在人機交互模塊中,用戶可以通過計算機的用戶界面進行操作,與教學輔助系統進行連接等。人機交互是該系統的核心,是開展教學的重要接口。也是用戶使用該系統的入口。由于是教學系統,因此還可以增設教師模塊和學生模塊,提高用戶體驗。開發教師模塊時,應該開設教師進行計算機編程教學所需的各種功能。
該系統可以運用一些主流的語言進行開發。比如應用最廣泛的Java,其作為跨平臺的語言,可以運行在Windows和Unix/Linux下面,是計算機編程教學系統設計的首選語言。還可以應用C或者C++等效率比較高的語言。除了語言,還要根據實際情況進行開發環境、軟件開發數據包的選擇。
通常,移動增強現實技術主要由離線處理和在線處理兩大部分組成。離線處理主要是由Uni- ty3D來完成,其包括建立虛擬三維模型、生成三維場景以及標志物的選取和預處理。在線處理部分主要由VuforiaSDK完成 ,包括信息的識別和實時生成反饋信息,在真實場景中疊加虛擬對象,實現人機交互。在系統設計時要根據開發環境選擇需要的Unity 3D,并安裝Unity。然后下載Easy AR SDK并新建一個工程項目。把Easy AR SDK導入Unity3D工程。配置License Key。導入模型資源,編譯工程,最終導入到手機,啟動App進行測試。并配置對平面圖像進行實時識別與跟蹤、從標準圖像動態生成跟蹤目標[2]。
計算機編程增強現實技術的設計方案包括服務器端程序,手持智能設備App。
2.3.1 服務器端程序。首先要建立一個數據庫模型,并通過圖像特征值查詢對應的各項數據,再根據不同的存儲位置使用不同的程序去讀取,然后通過網絡協議返回數據給調用的接口的App端,部分頻繁使用的數據,要使用服務器軟件解決緩存問題。
2.3.2 手持智能設備的App程序。在設計時,應該實現先對書籍進行拍攝然后讀取書籍的圖像,對圖像進行變換得到特征值,再調用本地緩存模塊,查詢是否有緩存,如果有則進行讀取。如果沒有,調用服務器端接口,通過特征值查詢數據。然后根據返回的數據類型不同,分別進行顯示。
2.4.1 配置識別圖。在進行系統設計時,首先準備一張需要識別的圖片,圖片的格式需要進行標準化處理,以便于圖片的識別、讀取更加準確。在進行圖片識別時,可以使用for循環的案例代碼來識別,首先對將要被識別的圖進行命名,命名完成后將需要識別的圖片添加到面板中去,然后對ImageTarget組件上的“ImageTargetBehavior”腳本進行編輯,該腳本的功能主要是捕捉到識別圖片時控制for循環運行變量的顯示與消失,腳本編輯結束以后,應該按照需求填寫信息,比如識別圖片的信息、識別圖片的路徑、識別圖片的大小。對于識別圖片路徑的配置,通常采用的有兩種方法,一種是可以直接填寫識別圖名并自動填寫后綴,另一種則是填寫Json。接著要在Imagetarget組件下面創建需要的AR模型。用戶在File中選擇Build Setting,之后再點擊Player Setting,選擇對應的platform[3]。
系統設計的總體流程主要包含三個 步驟:創建云端數據庫、目標管理、Vuforia的集成與發布。
在上述過程中,筆者已經提及,由于Android 平臺下的應用開發是基于Java語言,因此,在設計系統時,首先要做的是進行JDK(Java development kit)的下載與安裝。除此之外,由于該系統主要運行平臺為Android平臺,所以,需在此基礎上再進行AndoidSDK的下載與安裝。開發平臺搭建是系統設計的重要基礎,工作人員要根據實際的系統需求對開發環境、開發工具包等進行選擇。
2.4.2 旋轉、縮放和剖視功能的實現。旋轉功能在手機端通過滑動觸摸屏實現,而縮放功能通過兩指點擊滑動實現,剖視功能則通過點擊剖視按鈕實現。旋轉、縮放都要通過Unity 3D 腳本控制相應組件實現,腳本編輯語言可為Javascript或C/C++,由于當前c++的應用范圍更加廣泛,所以更建議使用C++這門語言。旋轉功能通過Rotate()函數就可以實現,而縮放功能通過localScale()函數實現。
由于無法在Unity 3D中直接進行剖視顯示,因此在系統開發中需通過建立另一并列獨立剖視三維模型的方式,設置按鈕組件激活狀態的“tme/false”進行整體模型與剖視模型的轉換。剖視實現的關鍵腳本代碼要以剖視的效果為依據不斷進行調試[4]。
綜上所述,AR技術的計算機編程教學系統設計是熱門教學科目的迫切工作需要,相關工作人員必須立足于實際需求等,基于AR技術對計算機編程教學系統進行設計,以期將增強現實技術與計算機編程學習相結合,取得良好的計算機編程教學成果。