999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Unity3D的虛擬化學智能課堂系統①

2021-06-28 06:27:38孫俊輝高全力
計算機系統應用 2021年6期
關鍵詞:用戶實驗模型

孫俊輝,高 嶺,高全力,曹 瑞

1(西北大學 信息科學與技術學院,西安 710127)

2(西安工程大學 計算機科學學院,西安 710600)

信息時代下,各領域科學技術都處于迅猛發展進程中,虛擬現實也是其中之一.從1963年的萌芽階段至今,其不論在理論還是實踐上都有質變,應用領域也不再僅限于娛樂,而涉及教育、醫療等諸多方面[1,2].在該背景下,為彌補傳統教學的不足,國家開始將信息技術和教育進行融合.學生的學習方式正發生顛覆性的變化,在5G 的發展和如今疫情的影響下,虛擬教學的發展勢頭將更加明顯[3].

化學是以實驗為核心的重要基礎學科,但由于中學階段授課受實驗條件、安全隱患等限制,許多實驗難以達到理想效果,甚至無法進行.如不進行有效實驗,學生僅從書本中難以對復雜反應有深刻理解,無法結合理論與實踐.但目前尚無功能成熟的虛擬化學課堂,已知系統中所實現功能大多單一、三維視覺效果差,缺乏權限控制策略及系統優化.

本文基于以上背景構建適用中學化學教學的虛擬課堂系統,開發三維視覺效果良好的虛擬化學實驗,實現了采用權限策略的智能模塊,根據學生情況為其分配不同權限,提供自動文字視頻實驗提示.此外,通過Spring Cloud 框架拆分系統功能,將其部署于不同接口,使用Redis 緩存優化系統.

1 系統設計

1.1 系統設計原則

根據虛擬現實的技術特性、傳統課堂的教學特點及現有虛擬課堂的系統特點,將設計原則總結如下:

(1)構建虛實結合的三維教學空間:構造符合真實世界比例的虛擬場景,注重用戶體驗;將二維平面的抽象內容以三維空間立體展示,提高教學趣味性[4–6].

(2)充分考慮學生用戶的群體特點:目標用戶對事物審美要求較高,為吸引其學習興趣,設計更符合其審美特點的用戶界面,讓其更好地獲得強沉浸感.

(3)最大化利用虛擬教學優勢:傳統課堂中教師受時間限制不能充分指導每位學生,在虛擬教學中該問題應得到充分解決;應當針對現實中難以進行的實驗進行開發,充分挖掘可教學內容,豐富學生知識廣度.

(4)力求解決虛擬場景下的權限問題:同現實環境一樣,虛擬多人場景下的模型交互也存在競爭.因此應提出一種應用于虛擬多人場景下的權限策略,提供合理的權限處理方法.

(5)嚴格保證系統質量:應當對網絡和系統故障等情況進行預處理,設計服務熔斷策略,避免影響用戶體驗.不僅要保證系統當下的可靠性,同時要采用合理的技術架構進行開發,方便系統未來進行擴展.

1.2 系統需求分析

進行系統功能開發前,需要針對傳統課堂教學的局限性及現有的虛擬化學課堂的不足進行分析并提出對應解決方案,明確系統需求.

(1)傳統化學教學存在對實驗材料的條件限制,例如需要鈹鋰等稀有金屬參與的反應在現實中難以進行.該問題在虛擬環境中不復存在,主要難點轉變為對虛擬場景中模型材料材質的高度還原.

(2)由于傳統課堂的教學時間有限,教師無法指導全部問題學生.如果學生的問題無法及時解決,課后隨時間積累就將更加嚴重.針對該問題設計一種智能模塊,學生可觀看并重復點播教學視頻.

(3)傳統課堂中難以進行高危實驗,即使可以也必須嚴格遵循要求,在已知系統中也僅有進行正確操作的實驗.這種情況下,實驗錯誤進行的結果變得抽象,學生無法深入了解實驗.針對該問題,考慮開發以非標準手段進行的化學實驗,例如在硫酸稀釋實驗中增設將水倒入濃硫酸的錯誤對比實驗.

(4)現有虛擬化學課堂中的實驗數量少,且大部分都是現實中可輕易進行的實驗,沒有涉及現實中受材料限制和安全考慮而難以進行的實驗,嚴重局限虛擬現實的技術優勢.針對該問題,設計開發多項現實中難以進行的化學實驗,尤其是具有強烈視覺效果的實驗,豐富課堂趣味性,提高學生沉浸感.

(5)現有虛擬課堂并未涉及權限問題,未充分考慮不同學生差異,無法做到針對性教學.此外,虛擬多人環境下的角色和模型屬于不可剝奪資源,無法在同一時間節點共享.為此提出一種適用虛擬教學的權限策略,對現實用戶與虛擬權限進行邏輯分離,并對虛擬角色及權限類型進行細粒度劃分,借助事件監聽機制,提供一種合理的動態權限控制方法.

(6)現有虛擬課堂缺乏優化,伴隨項目商業化及用戶數量增加,數據庫冗余會越來越高.高并發情況下系統運行效率低,發生故障時難以提供正常服務,嚴重影響用戶體驗.對此提出一套保證系統效率的服務端技術架構,使用Spring Cloud 進行開發,將Redis 作為緩存,增強系統魯棒性,方便系統擴展.

1.3 系統功能

根據上述設計原則及需求分析,設計如下功能:

(1)注冊登錄:用戶首先需要進行用戶注冊,注冊成功后系統會自動將其信息錄入后端數據庫中.登錄成功后,在登錄界面輸入用戶信息進行實驗選擇.

(2)角色控制:學生用戶在系統中通過鍵盤及鼠標等輸入設備對其對應的虛擬角色進行控制,能夠移動、進行虛擬實驗以及觀看教學視頻等.

(3)虛擬實驗:虛擬角色可進行的實驗共包括4 項,分別為金屬置換反應、火焰燃燒反應、硫酸稀釋反應及活潑金屬與水的反應.

(4)智能模塊:系統將根據權限策略為虛擬角色分配對應的實驗權限,具有對應權限的角色才能進行實驗,實現針對性教學;進行虛擬實驗時,系統將自動為虛擬角色提供文字視頻等提示,幫助學生進行自主學習,在缺乏教師指導的情況下保證教學質量.虛擬角色可以查詢對應成績和排名,促進良性學習競爭.

1.4 系統整體結構

圖1描述了本文所提出系統的結構,包括客戶端以及服務器端.客戶端負責實現虛擬場景下的功能,包括用戶管理模塊、虛擬實驗模塊以及智能輔助模塊.服務器端負責處理系統運行時產生的數據,包括用戶數據、虛擬角色數據以及虛擬權限的數據.

圖1 系統整體結構

首先搭建系統場景,采用三維建模軟件3dMAX構建虛擬場景,導入模型貼圖后進行格式轉換,以FBX格式導出到Unity3D 引擎[7].其次進行客戶端開發,完成數據庫設計,利用C#腳本進行組件化開發,結合粒子系統和NGUI 插件開發GUI 界面和虛擬化學實驗[8–10];設計權限策略,并以此為基礎開發智能模塊.最后通過IDEA 進行服務器端開發,利用Spring Cloud 框架拆分微服務,利用Redis 緩存優化系統.

2 系統實現及關鍵技術

2.1 技術架構

系統技術架構如圖2所示.客戶端采用Unity3D開發.表現層對控制模型材質的Shader 進行渲染并以GUI 形式作為交互接口;業務層完成虛擬課堂的核心功能,包括用戶的注冊登錄、虛擬實驗及智能模塊.服務器端采用IDEA 開發,客戶端通過HTTP 接口和服務器端進行數據交互,應用權限策略.MySQL 存儲學生基本信息等持久數據,Redis 存儲熱點數據作為緩存.

圖2 系統技術架構

2.2 場景建模

通過3dsMax 制作虛擬化學課堂所需的三維模型[11].構建模型時,既要保證模型質量,也要保證模型的頂點總數和三角切面總數不至過高,避免系統加載時占用大量內存開銷,影響系統運行效率.制作實驗儀器等小模型時,提高模型精細程度;制作教室墻體等大模型時,降低模型精細程度.

模型構建完成后,在其材質貼圖屬性中添加貼圖,實現高仿真視覺效果.此外還需將虛擬場景與真實課堂保持1:1 比例,增強學生使用系統時的沉浸感.

2.3 系統主場景

系統運行后,首先加載如圖3所示的負責用戶注冊及登錄的主場景,該場景通過GUI 即圖形用戶界面實現,用戶通過鼠標和其他輸入設備控制屏幕上的菜單和圖標,完成一系列交互活動.

圖3 系統登錄場景

GUI 包含面板、按鈕、輸入框等屬性,完成界面后添加C#腳本組件,使UI 可處理用戶輸入,用戶點擊登錄按鈕后,系統將根據用戶及密碼文本框的輸入信息判斷是否符合數據庫中已錄入的用戶信息,如符合則通過Invoke( )方法調用SceneManager.LoadScene( )系統API 觸發虛擬教室場景的加載并提示綠色的成功信息,否則清空用戶輸入并提示紅色的錯誤信息,處理用戶登錄的Login.cs 腳本的部分代碼如圖4所示.

圖4 處理用戶登錄的核心代碼

2.4 虛擬化學實驗

系統共包括4 項化學實驗,分別為金屬置換反應、火焰燃燒反應、硫酸稀釋反應及活潑金屬與水反應.

金屬置換反應UI 如圖5(a)所示,該反應通過更新對液體顏色的渲染實現.Unity 中每個對象都具有坐標、渲染器、腳本等組件,在對象的C#腳本中可以獲取其渲染器組件及具體負責渲染顏色的顏色組件,再通過調整該組件的RGB 屬性改變顏色.

圖5 虛擬化學實驗UI

為銅塊和液體分別添加碰撞器組件,并勾選觸發器屬性.當某游戲對象具有碰撞器組件時,其可以和其它具有碰撞器組件的對象在場景中接觸,而觸發器則可以在對象發生相關碰撞事件時觸發指定邏輯.

通過Input.GetMouseButtonDown( )系統API 檢測用戶是否單擊鼠標左鍵,當檢測到該事件發生時,通過生成對象實例的方法在指定位置和角度觸發銅塊固體的生成事件,并通過NumberChange( ) 方法更新當前銅物質量.之后調用ColorChange( )方法,當銅塊接觸液體時根據銅的數量決定液體顏色的改變程度,控制該反應的Test1.cs 腳本的核心代碼如圖6所示.

圖6 處理金屬置換反應的核心代碼

火焰燃燒反應模擬了火焰在氮氣、空氣以及氧氣3 種氣體當中不同的燃燒效果,主要通過粒子系統實現,粒子系統是一種計算機圖形學中模擬特定模糊現象的技術,Unity3D 中的粒子系統是參數化的,通過調整參數值模擬不同效果,難點在于確認合適的仿真參數,在測試中不斷調整參數值,最終確定具有高度仿真效果的參數,該反應的參數面板如圖7所示.運行時首先在腳本中獲得粒子系統組件,然后在Update( )方法中每幀更新粒子生命周期、尺寸、速度等屬性來渲染火焰燃燒的不同效果.火焰燃燒特效如圖5(b)所示.

圖7 火焰粒子特性的參數面板

硫酸稀釋反應同樣通過粒子系統實現,液體模型中的溫度計數值隨實驗實時更新并顯示,該功能通過自定義Shader 實現,Shader 用于控制GPU 的圖形渲染.其中溫度計Shader 控制顏色變化的surf( )方法的具體代碼如圖8所示.除標準實驗外,開發非標準實驗作為對比實驗,通過粒子系統模擬硫酸濺射特效幫助學生對該實驗有更深刻的了解.硫酸稀釋對比實驗中,硫酸濺射特效如圖5(c)所示.

圖8 溫度計Shader 控制顏色變化的具體代碼

活潑金屬與水的化學實驗由于其巨大風險在現實中幾乎無法進行,尤其是越活潑的金屬反應強度越劇烈.為充分挖掘教學內容并通過強視覺沖擊的三維效果吸引學生學習興趣,選擇了金屬中最活潑的Cs 作為實驗材料,該金屬與水反應時將產生極強的爆炸現象.該反應仍通過粒子系統實現,該實驗中的粒子系統用以模擬爆炸及煙霧效果,其爆炸特效如圖5(d)所示.

2.5 智能模塊

2.5.1 權限策略

由于虛擬現實在教育應用的發展不夠完善,缺乏對交互的權限控制,本系統提出一種基于RBAC 的虛擬教學環境下的細粒度權限動態控制策略.該策略包括用戶、角色、模型、權限、事件5 大單元,其中對角色、模型以及權限單元進行了細粒度劃分.

角色單元,即虛擬場景中的角色,包括3 項信息:角色標識符、角色名稱、角色類型.不同層次間的角色類型不同,如學生和教師角色;相同層次也具有不同的角色類型,如普通學生和班長角色.

模型單元,即虛擬場景中的模型,包括4 項信息:模型標識符、模型權限、操作限制數.

權限單元,指虛擬場景中角色及模型的權限,包括4 項信息:權限標識符、權限層級、權限內容、權限約束.權限內容劃分為角色管理、模型管理.權限約束包括數量、時間約束,分別限制權限最大被擁有角色數及權限最長分配時長,防止“教學饑餓”.

事件單元,采用事件監聽機制,對虛擬場景下全部事件進行監控,按照事件類型和處理原則處理.

為解決虛擬多人場景下虛擬模型所屬權的問題,提出以下原則:

(1)時間優先原則,虛擬角色發起模型交互請求時,發起時間節點較早的角色優先獲得模型交互權.

(2)權限優先原則,對模型交互具有不同權限的角色在同一時間節點(時間間隔小于1 ms)發起模型交互請求時,權限較高的角色優先獲得模型交互權.

(3)隨機分配原則,為避免具有相同權限的角色于同一時間節點發起模型交互請求的而導致系統故障,使用隨機生成數解決該問題.

為解決多人環境非實驗條件下進行獲取虛擬模型所屬權的問題,提出課堂進度原則:綜合學生角色的成績與課堂進度計算出權限優先值T,T值最小的虛擬角色優先獲得模型交互權.其中學生角色s的權限優先值Ts=(ps/p)wp+(gs/g)wg,ps為學生角色s的實時課堂進度,p為全體學生角色的平均實時課堂進度,gs為學生角色s的課程成績,g為全體學生角色的平均課程成績,wp為課堂進度對T的權重值,wg為成績對T的權重值,系統通過該原則確定所有虛擬角色的T值,對其升序排列入隊,依次出隊分配權限.

上述原則的具體實現依賴Unity3D 腳本Update( )方法每幀更新的特性,利用該特性實現事件監聽機制,持續監聽交互請求,當收到請求時通過HTTP 接口將請求數據交由服務器端進行處理,服務器端處理權限分配問題的核心代碼如圖9所示.

圖9 服務器權限策略代碼

2.5.2 智能提示

智能模塊除對學生角色進行權限控制外,還支持自主學習,學生可根據場景中智能提示觀看教學視頻.不但解決傳統教育模式中教師有限時間內無法顧全所有學生的缺陷,又以虛擬現實這種新生技術豐富了教育趣味性,擴展了可教學內容.

該功能主要通過C#腳本及NGUI 插件實現.NGUI是C#編寫的Unity 插件,提供強大的UI 功能,開發時不用點擊Play 按鈕進入運行狀態就能即時查看結果.

利用NGUI為4 項化學實驗設置具體的提示UI,利用C#腳本指定文字提示觸發的具體時機.Unity 中每個對象都具有Transfrom 組件,該組件中包含了模型的坐標信息.系統運行時首先在控制文字提示腳本的Start( )方法中獲取虛擬角色與各實驗桌的坐標信息,再在Update( )方法中通過Vector3 向量API 計算兩者間的向量距離d,當d小于虛擬場景中指定距離時通過setActive( )方法激活提示組件,將UI 呈現給虛擬角色.

視頻提示通過按鍵手動實現,系統支持用戶自定義觸發按鍵.當控制視頻組件腳本的Update( )方法檢測到指定輸入時,將激活虛擬場景中的教學視頻對象,獲取其附屬的Video 視頻組件,然后調用Play( )方法播放視頻,控制視頻組件播放腳本方法的具體代碼如圖10所示,硫酸稀釋實驗的智能提示如圖11所示.

圖10 觸發視頻播放的核心代碼

圖11 硫酸稀釋實驗的智能提示

3 系統優化

針對現有虛擬課堂缺乏系統優化的問題,提出運用Spring Cloud 微服務及Redis 緩存解決,對系統服務器端的功能進行拆分,并緩存數據處理結果.

微服務是一種構建應用的架構方案,可將應用拆分成多個功能,每個功能都被稱為一項服務,各項服務不會相互影響.依據功能不同,將本系統服務器端整體服務拆分為3 部分:用戶服務:處理用戶的注冊與登錄問題;角色服務:處理虛擬角色進行各項虛擬實驗的問題;權限服務:處理權限策略應用于當前虛擬場景的問題.

本系統后端微服務的服務處理流程如圖12所示.

圖12 服務處理流程

相比現有虛擬課堂的單體架構,使用微服務框架對系統功能進行拆分與部署有諸多優勢,概括如下:

1)分布式部署,后期可以將處理不同模塊數據的服務部署于不同服務器,大幅提升數據處理效率.

2)高度可擴展,隨項目進行,虛擬課程和實驗數量都將增加,微服務架構下可以完全不影響當前項目部署而增設物理生物等其它課程,充分滿足用戶需求.

3)高可用,服務互相獨立,彼此不存在影響,當某個微服務出現故障時,不會影響其它微服務.

3.1 數據交互

虛擬場景中產生的數據依據功能劃分提交至不同網絡接口處理,當有數據處理請求發起時,在C#腳本的Update( )方法中啟動一個協程,通過Unity3D 的HTTP REST API 訪問微服務對應HTTP 接口,將數據封裝為JSON 格式并提交;當數據處理請求返回時,接收JSON 數據并解析,將數據填充至UI 中的數據域,如查詢學生成績功能中客戶端和服務器端進行數據交互的具體代碼如圖13所示.

圖13 客戶端和服務器端進行數據交互的代碼

3.2 服務降級

如果發生異常,系統將進行服務降級,從本地客戶端獲取實驗相關信息并填充UI,呈現用戶友好界面,避免影響用戶體驗.服務降級通過Spring Cloud 的hystrix熔斷器組件實現,該組件的作用是在不改變各微服務調用關系的前提下,針對錯誤情況進行預先處理.

首先在項目的pom.xml 文件中引入hystrix 組件的坐標,該文件主要在JavaWeb 項目中對網絡中的組件進行下載引用,使項目可以使用第三方類或API;其次,在項目中對服務熔斷的服務接口進行注冊,將其部署于默認的8070 端口,并配置該組件的enabled 屬性為true,表示啟用熔斷器;之后利用注解對表現層的控制器類進行注解,注解的fallback 屬性則指明了服務降級所依賴的錯誤處理類,在該類中直接返回帶有錯誤標識信息的JSON 數據,客戶端接收后,如判斷有服務降級的標識,則直接從本地客戶端獲取數據.

事先在服務器端正常返回JSON 數據前的代碼中插入int i=1/0;的異常代碼,當在進行金屬置換反應實驗場景中希望查詢成績時,當點擊查詢成績后,服務器端產生異常,將返回帶有錯誤信息的數據處理結果,客戶端接收后,通過setActive(true)這個Unity3D 當中用于激活游戲對象組件的系統API 將含有本地存儲的關于銅置換反應的化學方程式及現象的提示UI 組件激活,同時調用setActive(false)隱藏實驗組件,減小資源開銷,這種用戶友好的錯誤提示UI 能夠避免在故障情況下影響用戶體驗,其效果如圖14所示.

圖14 服務熔斷后的金屬置換反應

4 結語

本文實現了虛擬化學智能課堂系統,操作簡易,三維視覺效果良好,有助于中學學生進行化學課的虛擬學習,更直觀地學習化學反應知識,了解各種化學反應的實驗效果,更好地構建完整的知識體系框架.

該系統的智能輔助模塊能夠依據權限策略對不同學生分配不同權限,進行針對性教學;通過文字視頻等提示幫助學生在沒有教師指導的情況下進行自主學習,保證虛擬教學質量.其多項化學實驗挖掘了可教學內容,包括爆炸在內的粒子特效為學生提供高沉浸體驗,吸引學生學習興趣.該系統運行時,服務端數據采用微服務框架及Redis 緩存處理,相比單體架構效率更高,同時也能夠通過熔斷機制實現高可用特性.

后期工作是增設物理、生物等虛擬課程,開發支持項目商業化的內置商城模塊,尋找并解決權限策略的漏洞,嚴格保障系統質量.

猜你喜歡
用戶實驗模型
一半模型
記一次有趣的實驗
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
做個怪怪長實驗
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
3D打印中的模型分割與打包
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
主站蜘蛛池模板: 伊人激情综合网| 暴力调教一区二区三区| 国产v欧美v日韩v综合精品| 永久免费AⅤ无码网站在线观看| 欧美精品在线视频观看| 久久精品无码一区二区日韩免费| 91福利国产成人精品导航| 国产一区二区三区在线观看免费| 午夜免费小视频| 欧美日韩中文国产va另类| 国产人碰人摸人爱免费视频| 色综合成人| 国产精品午夜电影| 亚洲精品va| 亚洲—日韩aV在线| 一级成人a毛片免费播放| 亚洲中文久久精品无玛| 国产99在线| 成人蜜桃网| 亚洲Va中文字幕久久一区| 国产成人精品日本亚洲77美色| lhav亚洲精品| 国内精品伊人久久久久7777人| 高清国产va日韩亚洲免费午夜电影| 国产免费人成视频网| 毛片免费在线| 亚洲欧洲自拍拍偷午夜色无码| 亚洲天堂区| 美女一级毛片无遮挡内谢| 久草中文网| 亚洲AⅤ永久无码精品毛片| 国产成人三级| 成人av专区精品无码国产| 国产精品美人久久久久久AV| 国产成人综合久久精品下载| 色成人综合| 亚洲国产中文欧美在线人成大黄瓜 | 伊人久综合| 国产成+人+综合+亚洲欧美| 成年人国产网站| 国产不卡在线看| 久久永久精品免费视频| 久久国产毛片| 亚洲AV无码不卡无码| 婷婷色狠狠干| 漂亮人妻被中出中文字幕久久| 亚洲国产第一区二区香蕉| 日本一区二区三区精品国产| 女同国产精品一区二区| 日本亚洲国产一区二区三区| 在线观看视频一区二区| www.91中文字幕| 波多野结衣中文字幕久久| 狠狠亚洲五月天| 久久精品一品道久久精品| 久久人与动人物A级毛片| 18禁黄无遮挡免费动漫网站| 日韩一区精品视频一区二区| 91破解版在线亚洲| 精品五夜婷香蕉国产线看观看| 国产成人综合久久精品下载| 18禁色诱爆乳网站| 四虎AV麻豆| 97成人在线视频| 亚洲a级毛片| 黄色在线不卡| 欧美精品成人| 高潮毛片免费观看| 19国产精品麻豆免费观看| 在线免费观看AV| 亚洲一区二区成人| 日韩欧美高清视频| av在线人妻熟妇| 国产美女在线免费观看| 亚洲乱码精品久久久久..| 青青青国产视频手机| 亚洲人成网站观看在线观看| 好吊日免费视频| 欧美精品三级在线| 亚洲第一区欧美国产综合| 免费aa毛片| 91精品国产无线乱码在线|