顧 瓏,芮延川
(南京醫(yī)科大學(xué)附屬常州第二人民醫(yī)院醫(yī)學(xué)裝備科,江蘇 常州 213161)
Unity 3D具有虛擬三維物體、虛擬場景等功能,可快速導(dǎo)入3D建模軟件構(gòu)建的模型,具有強(qiáng)大的交互性,可以讓用戶在短時(shí)間內(nèi)感知到現(xiàn)實(shí)環(huán)境中的事物。Unity 3D技術(shù)可應(yīng)用于PC(personal computer)端和移動(dòng)平臺(tái)中,Unity功能強(qiáng)大,具有易學(xué)的編輯界面,包含場景視圖、游戲視圖、層次面板、工程面板和檢視面板5組視圖。
3Ds Max建模技術(shù)可以渲染相似的真實(shí)物體和場景畫面。渲染出的場景畫面由頂視圖、左視圖、右視圖、透視圖組成,可以通過材質(zhì)設(shè)置、燈光設(shè)置和特效處理,在建模時(shí)完成可視化處理。自帶有標(biāo)準(zhǔn)基本體、NURBS曲面、粒子系統(tǒng)等建模工具,具有強(qiáng)大的動(dòng)畫演示功能,可以靈活操作,能夠在軟件中建立虛擬實(shí)驗(yàn)室以及實(shí)驗(yàn)器材等。
本文對(duì)基于Unity 3D和3Ds Max技術(shù)的電子計(jì)算機(jī)斷層掃描(computed tomography,CT)設(shè)備模型構(gòu)建步驟進(jìn)行分析,在此基礎(chǔ)上從軟硬件方面完成CT設(shè)備結(jié)構(gòu)拆裝和故障示教系統(tǒng)設(shè)計(jì)。
場景設(shè)計(jì)的基礎(chǔ)是模型設(shè)計(jì),3Ds Max技術(shù)可以在FBX格式下[1],將設(shè)計(jì)的模型直接導(dǎo)入U(xiǎn)nity 3D中,使得模型與3Ds Max能夠快速交互。在幾何模型導(dǎo)出前,對(duì)單位進(jìn)行自定義設(shè)置,將英制單位改為公制單位。在Unity 3D中設(shè)置碰撞體,在模型導(dǎo)出前選中對(duì)象,通過“僅影響軸”和“對(duì)齊-居中到對(duì)象”兩個(gè)操作,自動(dòng)對(duì)齊軸心,并對(duì)導(dǎo)入的模型進(jìn)行碰撞檢查,減少物體旋轉(zhuǎn)的后續(xù)影響。對(duì)貼圖進(jìn)行渲染,渲染工作直接在Unity 3D中完成,無需額外對(duì)貼圖進(jìn)行協(xié)調(diào),從根本上杜絕貼圖丟失現(xiàn)象。3Ds Max模型導(dǎo)出時(shí),將轉(zhuǎn)換軸選定為Y軸向上選項(xiàng),保證3Ds Max和Unity 3D的坐標(biāo)一致。
本文主要目的是對(duì)CT設(shè)備結(jié)構(gòu)的拆裝和維修進(jìn)行演示教學(xué),因此模型需要包含CT機(jī)的主要部件和工作示意流程[2]。通過部件的組裝對(duì)細(xì)節(jié)部分進(jìn)行修改,表1為CT設(shè)備的球管細(xì)節(jié)示例。
由表1可知,模型需要經(jīng)過部件處理形成后續(xù)虛擬物件。模型部件細(xì)節(jié)和尺寸的比例要求可由數(shù)據(jù)庫和時(shí)間推演得到,在模型初次構(gòu)建完畢后,應(yīng)從數(shù)據(jù)庫中尋找已有模型資源,查詢當(dāng)前時(shí)間節(jié)點(diǎn)下的所有數(shù)據(jù),參照已經(jīng)投入應(yīng)用的模型進(jìn)行修改,并根據(jù)用戶主要訴求,適當(dāng)調(diào)整模型的細(xì)節(jié)和具體參數(shù),實(shí)現(xiàn)模型重塑。
光源在Unity 3D場景中是不可或缺的,一旦缺少光源,設(shè)計(jì)出來的場景將會(huì)一片漆黑,在用戶視角中不能看到任何東西。良好的光源可以提升畫質(zhì),Unity 3D中有3種比較常見的光源:1)平行光,模擬自然界的陽光,達(dá)到平行光效果;2)點(diǎn)光源,模擬日常生活中的燈源;3)聚光燈,模擬手電筒和探照燈等工具燈源。
在光源屬性面板中,可以通過光源類型、顏色及陰影類型模塊完成對(duì)光源的創(chuàng)建[3]。但在 Unity 3D中,光源會(huì)消耗極大的資源儲(chǔ)備,尤其是使用復(fù)合光源構(gòu)造模型,在整個(gè)渲染過程中會(huì)消耗大量資源,這會(huì)對(duì)場景運(yùn)行的流暢性產(chǎn)生影響??紤]到這一情況,本文只采用平行光來模擬。完成對(duì)光源的創(chuàng)建之后,可以利用Transform插件更改光源的朝向。
Unity 3D模型渲染包括兩方面內(nèi)容:1)材質(zhì)選擇,由于CT設(shè)備結(jié)構(gòu)為醫(yī)用級(jí)別,在選擇渲染材料時(shí)需要具備反光特性;2)貼圖設(shè)置,要對(duì)紋理文件的輸入和輸出進(jìn)行控制,保證其拉伸與收縮的合理性,在選好貼圖材料和顏色后,直接利用Unity 3D中的著色器添加貼圖效果。
Unity 3D中包括一個(gè)標(biāo)準(zhǔn)著色器和一個(gè)高級(jí)著色器,它們共同組成一個(gè)物理著色的光照模型,可實(shí)現(xiàn)事物著色的統(tǒng)一渲染。標(biāo)準(zhǔn)著色器通常用于設(shè)置物體表面的顏色和貼圖,并處理光照強(qiáng)度以及貼圖在物體上的位置。高級(jí)著色器可以對(duì)貼片的紋理進(jìn)行調(diào)整,設(shè)定貼圖的復(fù)雜程度和可容許偏移量。
在基本幾何模型構(gòu)建、模型細(xì)節(jié)修改、場景光源創(chuàng)建的基礎(chǔ)上,進(jìn)一步對(duì)具體的模型參數(shù)進(jìn)行設(shè)定,此時(shí)便能達(dá)到渲染出圖的目的,3D建模需求得以滿足。
CT設(shè)備結(jié)構(gòu)拆裝與故障維修示教系統(tǒng)包括硬件和軟件兩個(gè)部分,硬件部分主要設(shè)置故障信號(hào)、監(jiān)測(cè)前置模塊,當(dāng)發(fā)生故障時(shí)發(fā)出信號(hào),并對(duì)故障進(jìn)行定位,為后續(xù)拆裝和維修提供依據(jù)[4]。根據(jù)一般的CT檢測(cè)設(shè)備要求以及示教需求,采用LabVIEW語言,構(gòu)建Unity 3D &3Ds Max示教系統(tǒng)框架,如圖1所示。
圖1 示教系統(tǒng)總體框圖
根據(jù)應(yīng)用要求,示教系統(tǒng)采用模塊化的設(shè)計(jì)理念,將整個(gè)系統(tǒng)劃分為檢測(cè)模塊、數(shù)據(jù)管理模塊以及示教顯示和訓(xùn)練模塊,并以數(shù)據(jù)庫為中心模塊,建立各個(gè)模塊之間的聯(lián)系[5]。
當(dāng)CT設(shè)備運(yùn)行信號(hào)觸發(fā)檢測(cè)板卡時(shí),驅(qū)動(dòng)程序能夠調(diào)取數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行分析,判斷其是否出現(xiàn)故障,以此建立多種故障問題演示模板,如圖2所示。
圖2 CT設(shè)備驅(qū)動(dòng)裝置結(jié)構(gòu)圖
系統(tǒng)采用NI公司生產(chǎn)的PCI-65425E作為監(jiān)測(cè)設(shè)備,直接與該公司的虛擬編程軟件配套使用,減少不同設(shè)備之間的接入矛盾[6]。當(dāng)CT設(shè)備出現(xiàn)故障時(shí),系統(tǒng)會(huì)觸發(fā)DAQ板卡,并利用PC機(jī)控制DAQ板卡采集CT設(shè)備故障信號(hào),利用Unity 3D和3Ds Max軟件構(gòu)建模型,直接通過訪問程序并經(jīng)由驅(qū)動(dòng)裝置達(dá)到控制CT設(shè)備的目的,提高系統(tǒng)的運(yùn)行效率和穩(wěn)定性。
Unity 3D和3Ds Max建模技術(shù)最主要的環(huán)節(jié)之一即幾何模型構(gòu)建,通過構(gòu)建的模型將現(xiàn)實(shí)中的事物轉(zhuǎn)化為虛擬實(shí)例[7]。
利用齊次坐標(biāo)變換對(duì)圖形進(jìn)行三維變換,假設(shè)物體中含有一點(diǎn)Q(X,Y,Z),將其平移至點(diǎn)Q″(X″,Y″,Z″),則有:
(1)
式中:WX、WY、WZ為平移量。構(gòu)建平移變換矩陣W:
(2)
各點(diǎn)的平移坐標(biāo)變換為:
[X″Y″Z″ 1]=W[XYZ1]
(3)
通過齊次坐標(biāo)獲取圖像的三維變化比例,設(shè)置等比例參數(shù)A、B、C,將Q(X,Y,Z)作為CT設(shè)備需要拆卸的部件中心,分別按照A、B、C等比例變化[8],則有:
[X″Y″Z″ 1]=[XYZ1]·
(4)
對(duì)應(yīng)到CT設(shè)備,設(shè)備部件模型在導(dǎo)入U(xiǎn)nity 3D時(shí)會(huì)產(chǎn)生軸旋轉(zhuǎn)現(xiàn)象,需要針對(duì)不同的坐標(biāo)系進(jìn)行變換矩陣求解。由此,以X、Y、Z軸為軸線,對(duì)Q(X,Y,Z)進(jìn)行轉(zhuǎn)換的變換矩陣為:
(5)
(6)
(7)
式中:δ為旋轉(zhuǎn)角度。示教系統(tǒng)不僅要保證畫面清晰度,更要保證畫面連貫性,通過碰撞理論檢查示教交互圖面。
CT設(shè)備應(yīng)用場景具有較高的嚴(yán)謹(jǐn)性,為了保證本文示教系統(tǒng)在對(duì)設(shè)備拆裝和維修時(shí)示教畫面的連貫性[9],對(duì)CT設(shè)備結(jié)構(gòu)拆裝與故障維修示教交互畫面碰撞進(jìn)行檢測(cè)。
針對(duì)CT設(shè)備的應(yīng)用需求,依據(jù)時(shí)間順序按照連續(xù)、離散和靜態(tài)3種類型進(jìn)行檢測(cè),如圖3所示。
圖3 碰撞檢測(cè)分類
靜態(tài)檢測(cè)是在CT設(shè)備靜止條件下進(jìn)行的,即系統(tǒng)示教準(zhǔn)備階段,驗(yàn)證CT設(shè)備中的組件是否放置在正確的位置。離散和連續(xù)碰撞檢測(cè)基本應(yīng)用于示教過程中,驗(yàn)證部件是否在拆分中出現(xiàn)碰撞現(xiàn)象[10]。如果在多次檢測(cè)和碰撞實(shí)驗(yàn)后,整個(gè)示教過程均沒有發(fā)生部件重疊的問題,即可保證設(shè)計(jì)的三維模型能夠完成示教工作,至此完成示教系統(tǒng)設(shè)計(jì)。
為驗(yàn)證本文設(shè)計(jì)的示教系統(tǒng)具有應(yīng)用效果,分3個(gè)階段進(jìn)行論證。以某技術(shù)股份公司生產(chǎn)的CT設(shè)備為建模原型,其內(nèi)部構(gòu)造為X線攝影系統(tǒng)、高壓發(fā)生器、探測(cè)器等,外部構(gòu)造為外殼、掃描床、信號(hào)源。采用本文示教系統(tǒng),以貼圖和渲染為主,分別模擬設(shè)備模型和放置場景,展示CT設(shè)備的工作原理以及設(shè)備的拆裝過程。
CT設(shè)備包括滑環(huán)、螺旋CT、雙源CT、能譜CT等,對(duì)操作技術(shù)要求較高,醫(yī)護(hù)人員或?qū)嵙?xí)生很難在短時(shí)間內(nèi)熟練其操作步驟。另外,CT設(shè)備在實(shí)際操作中會(huì)產(chǎn)生高壓,用戶只能觀摩各部件的裝配和工作,這種觀摩學(xué)習(xí)的方式很難達(dá)到較好的學(xué)習(xí)效果。
為保證用戶的學(xué)習(xí)效果,通過本文系統(tǒng)進(jìn)行模型構(gòu)建,展示CT機(jī)模型和應(yīng)用場景,模型展示如圖4所示。
圖4 模型展示
根據(jù)圖4,利用本文系統(tǒng)對(duì)所選CT設(shè)備進(jìn)行建模。建模過程中,從外殼和機(jī)床兩個(gè)方面分別完成了整體CT機(jī)的建模處理,并實(shí)現(xiàn)了應(yīng)用場景的設(shè)計(jì),可以實(shí)現(xiàn)示教工作。
在構(gòu)建的虛擬模型中進(jìn)一步測(cè)試系統(tǒng)示教效果,由于CT設(shè)備故障一般為內(nèi)部部件的損壞,因此在設(shè)備維修時(shí)需要對(duì)其外殼進(jìn)行拆解,外殼拆解展示如圖5所示。
圖5 外殼拆解展示
根據(jù)圖5,系統(tǒng)完成了CT機(jī)的外殼拆解,觀察CT機(jī)內(nèi)部的配件并進(jìn)行維修,維修完畢后對(duì)CT機(jī)的各個(gè)組件進(jìn)行裝配。圖6所示為示教系統(tǒng)自動(dòng)生成的探測(cè)器部件示例。
圖6 系統(tǒng)自動(dòng)生成探測(cè)器部件
由圖6可知,示教系統(tǒng)能夠自動(dòng)生成CT設(shè)備部件,并給出部件名稱和提示裝配的正確方位,進(jìn)一步完成CT設(shè)備的示教工作。
通過構(gòu)建展示和拆解展示,證明本文系統(tǒng)可以完成示教工作。為進(jìn)一步驗(yàn)證系統(tǒng)的實(shí)用性,引入錄播示教系統(tǒng)和CMM示教系統(tǒng)作為本文系統(tǒng)的對(duì)照組,選擇某省高校醫(yī)學(xué)專業(yè)學(xué)生進(jìn)行測(cè)試。
在MATLAB上初始化3種系統(tǒng)的運(yùn)行環(huán)境,分別測(cè)試500、1 000、1 500、2 000名醫(yī)學(xué)生同時(shí)訪問3種系統(tǒng),進(jìn)入CT設(shè)備結(jié)構(gòu)拆裝與故障維修示教系統(tǒng)主界面,并點(diǎn)擊“開始上課”,以此比較分析3種系統(tǒng)的響應(yīng)速度。響應(yīng)速度對(duì)比結(jié)果如圖7所示。
圖7 響應(yīng)速度對(duì)比結(jié)果
由圖7可知,隨著學(xué)生數(shù)量的增加,各系統(tǒng)響應(yīng)時(shí)間增加,當(dāng)學(xué)生數(shù)量為2 000名時(shí),本文系統(tǒng)響應(yīng)時(shí)間仍可在0.2 s內(nèi),說明本文系統(tǒng)可以快速啟動(dòng),應(yīng)用效果均較錄播示教系統(tǒng)和CMM示教系統(tǒng)更好。
分別利用3種系統(tǒng)對(duì)CT機(jī)外殼進(jìn)行建模,以面片數(shù)為指標(biāo),分析3種系統(tǒng)的建模性能。面片數(shù)越多,系統(tǒng)越容易發(fā)生卡頓,測(cè)試結(jié)果如圖8所示。
圖8 CT機(jī)外殼生成面片數(shù)對(duì)比結(jié)果
由圖8可知,在CT機(jī)外殼建模過程中,隨著旋轉(zhuǎn)角度增加各系統(tǒng)面片數(shù)增加。但從整體來看,本文系統(tǒng)的面片數(shù)少于兩種對(duì)比系統(tǒng),最高面片數(shù)為120個(gè)。由此可知,本文系統(tǒng)性能更優(yōu),建模過程中不易卡頓。
Unity 3D能夠通過程序腳本對(duì)實(shí)例化的事物進(jìn)行模型展示,實(shí)現(xiàn)虛擬部件的構(gòu)建和應(yīng)用。虛擬教學(xué)作為現(xiàn)代化教學(xué)資源,顛覆了傳統(tǒng)教學(xué)方式,為學(xué)生和教師提供了更為廣闊的學(xué)習(xí)空間,其擺脫了時(shí)間和環(huán)境的限制,能夠提升學(xué)生的學(xué)習(xí)自主性。由于研究時(shí)間所限,本文系統(tǒng)在實(shí)驗(yàn)測(cè)試中還存在一定的不足,如模型展示有限、系統(tǒng)對(duì)比分析數(shù)量相對(duì)較少等,后續(xù)應(yīng)通過對(duì)虛擬技術(shù)的進(jìn)一步研究,彌補(bǔ)實(shí)驗(yàn)中的缺陷,為教學(xué)提供更精確的理論支持。