石油工程論文_第1頁
石油工程論文_第2頁
石油工程論文_第3頁
石油工程論文_第4頁
石油工程論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

I 目 錄 第 1 章 概述 . 1 1.1 系統(tǒng)開發(fā)背景 . 1 1.2 系統(tǒng)開發(fā)的方法 . 2 1.3 系統(tǒng)開發(fā)的意義 . 2 第 2 章 系統(tǒng)開發(fā)工具 . 3 2.1 3DS MAX 建模工具 . 3 2.2 Virtools Dev 開發(fā)工具的介紹 . 5 第 3 章 油田起油管操作考評系統(tǒng)分析 . 8 3.1 需求性分析 . 8 3.2 設(shè)計性分析 . 8 3.3 系統(tǒng)功能模塊圖 . 9 3.4 程序流程圖 . 10 第 4 章 三維場景和物體模型的建立 . 12 4.1 三維模型與貼圖的限制 . 12 4.3 模型的轉(zhuǎn)換 . 14 4.4 模型導(dǎo)入到 Virtools . 20 4.5 模型導(dǎo)入到 Virtools 后黑的原因 . 21 第 5 章 考評系統(tǒng)的實現(xiàn) . 22 5.1 菜單選項的實現(xiàn) . 22 5.2 系統(tǒng)操作的實現(xiàn) . 23 5.3 測試系統(tǒng) . 28 結(jié) 論 . 29 參考文獻(xiàn) . 30 致 謝 . 31 1 第 1 章 概述 1.1 系統(tǒng)開發(fā)背景 1.1.1 虛擬現(xiàn)實技術(shù) 虛擬現(xiàn)實,或虛擬實境( Virtual Reality, VR),也稱為靈境技術(shù)或人工環(huán)境,是以沉浸性、交互性和構(gòu)想性為基本特征的計算機高級人機界面。 VR 綜合利用了計算機圖形學(xué)、仿真技術(shù)、多媒體技術(shù)、人工智能技術(shù)、計算機網(wǎng)絡(luò)技術(shù)、并行處理技術(shù)和多傳感器技術(shù),模擬人的視覺、聽覺、觸覺等感覺器官功能,使人能夠沉浸在 計算機生成的虛擬境界中,并能夠通過語言、手勢等自然的方式與之進(jìn)行實時交互,創(chuàng)建了一種適人化的多維信息空間。使用者不僅能夠通過虛擬現(xiàn)實系統(tǒng)感受到在客觀物理世界中所經(jīng)歷的 “ 身臨其境 ” 的逼真性,而且能夠突破空間、時間以及其他客觀限制,感受到真實世界中無法親身經(jīng)歷的體驗 1。 VR 技術(shù)具有超越現(xiàn)實的虛擬性。虛擬現(xiàn)實系統(tǒng)的核心設(shè)備仍然是計算機。它的一個主要功能是生成虛擬境界的圖形,故此又稱為圖形工作站。目前在此領(lǐng)域應(yīng)用最廣泛的是 SGI、 SUN 等生產(chǎn)廠商生產(chǎn)的專用工作站,但近年來基于 Intel奔騰 ( 代)代芯片的和 圖形加速卡的微機圖形工作站性能價格比優(yōu)異,有可能異軍突起。圖像顯示設(shè)備是用于產(chǎn)生立體視覺效果的關(guān)鍵外設(shè),目前常見的產(chǎn)品包括光閥眼鏡、三維投影儀和頭盔顯示器等。其中高檔的頭盔顯示器在屏蔽現(xiàn)實世界的同時,提供高分辨率、大視場角的虛擬場景,并帶有立體聲耳機,可以使人產(chǎn)生強烈的 沉浸 感 2。其他外設(shè)主要用于實現(xiàn)與虛擬現(xiàn)實的交互功能,包括數(shù)據(jù)手套、三維鼠標(biāo)、運動跟蹤器、力反饋裝置、語音識別與合成系統(tǒng)等等。虛擬現(xiàn)實技術(shù)的應(yīng)用前景十分廣闊 , 它始于軍事和航空航天領(lǐng)域的需求,但近年來,虛擬現(xiàn)實技術(shù)的應(yīng)用已大步走進(jìn)工業(yè)、建筑設(shè) 計、教育培訓(xùn)、文化娛樂等方面,它正在改變著我們的生活 3。 1.1.2 系統(tǒng)開發(fā)的需求 在油田作業(yè)過程中使用到的油田自動化抽油設(shè)備包括:抽油機、油管、井口等,這些設(shè)備在長期的使用過程中,可能受到磨損、或是贓物堵塞等原因,需要進(jìn)行定期拆卸、維修和清洗,然而操作危險性很大,一旦操作不當(dāng)就可能會造成重大經(jīng)濟(jì)損失或人員傷亡。 為了減少油田的經(jīng)濟(jì)損失,避免不必要的人員傷亡,所以需要開發(fā)小修作業(yè) 2 仿真操作系統(tǒng),這是一個虛擬訓(xùn)練和操作考評系統(tǒng),使員工在虛擬的場景中有身臨其境的感覺,通過人機交互的方式學(xué)習(xí)、訓(xùn)練操作技術(shù),旨 在減少操作過程中的危險性,提高員工的實際安全操作能力,進(jìn)而提高油田安全生產(chǎn)的實踐水平。整個系統(tǒng)包括設(shè)備的拆卸、維修,以及清洗幾個部分,本文主要是針對拆卸過程中起油管這一關(guān)鍵操作,開發(fā)的油田 起油管操作考評系統(tǒng) ,是小修作業(yè)仿真操作系統(tǒng)中的一個子系統(tǒng)。 1.2 系統(tǒng)開發(fā)的方法 油田 起油管操作考評系統(tǒng)是利用 3DS MAX 和 Virtools 三維交互開發(fā)工具共同開發(fā)的系統(tǒng)。在熟悉系統(tǒng)流程后,利用 3DS MAX 軟件進(jìn)行精細(xì)和精簡建模,建立起油管操作考評 系統(tǒng) 的油管 、 吊環(huán) 、 吊卡 、 大鉤 、 液壓鉗等模型,并建立操作場景。 基于 Photoshop 軟件制作相應(yīng)的工具、天空、地面等場景的貼圖。這樣就建立出 了 逼真的立體模型。利用 3DS MAX 的導(dǎo)出插件 3DS MAX Exporter for Virtools 把制作好的 3D 模型導(dǎo)出 , 導(dǎo)入到 Virtools 中,并在 Virtools 中設(shè)置好場景。 進(jìn)一步 結(jié)合現(xiàn)場場景需求設(shè)計流程 , 利用 Virtools 為 三維場景以物體進(jìn)行驅(qū)動編程, 建立腳本并加入相應(yīng)的 Building Blocks 完成相應(yīng)的動作,實現(xiàn)操作系統(tǒng) ,最終把設(shè)計好的操作系統(tǒng)導(dǎo)出為 Web 應(yīng)用程序。 1.3 系統(tǒng)開發(fā)的意義 虛擬現(xiàn)實的仿真培訓(xùn)系 統(tǒng)主要為油田常見的、易發(fā)生操作事故 的環(huán)節(jié)而設(shè)計 ,能為生產(chǎn)操作過程提供一套交互的安全操作仿真平臺,使安全操作的培訓(xùn)更加易于接受,既節(jié)省人力物力又效果明顯,從而大大提高油田安全生產(chǎn)的管理水平和實踐水平。通過該系統(tǒng)的應(yīng)用,可以使受訓(xùn)人員既能進(jìn)行知識學(xué)習(xí)又能進(jìn)行技能訓(xùn)練 ,不僅降低了傳統(tǒng)培訓(xùn) 實際 操作的危險,而且節(jié)省人力物力,也 減少 了不必要的損失,收到了良好的效果。 同時 還能使這些環(huán)節(jié)聯(lián)系更加密切,使受訓(xùn)員工對于 每個部分 都 深入了解,往往能學(xué)到現(xiàn)實當(dāng)中無法接觸的東西。既能為員工提供學(xué)習(xí)知識的機會,又能為 他們提供提高技能的場 所。 3 第 2 章 系統(tǒng)開發(fā)工具 2.1 3DS MAX 建模工具 2.1.1 3DS MAX 簡介 3D Studio MAX,常簡稱為 3DS MAX 或 MAX,是 Discreet 公司開發(fā)的(后被 Autodesk 公司 合并), 基于 PC 系統(tǒng)的三維動畫渲染和制作軟件。其前身是基于 DOS 操作系統(tǒng)的 3D Studio 系列軟件,最新版本是 2010。在 Windows NT 出現(xiàn)以前,工業(yè)級的 CG 制作被 SGI 圖形工作站所壟斷。 3D Studio MAX + Windows NT組合的出現(xiàn)一下子降低了 CG 制作的門檻,首選開始運用在電腦 游戲中的動畫制作,后更進(jìn)一步開始參與影視片的特效制作,例如 X 戰(zhàn)警 II,最后的武士等 4。 在應(yīng)用范圍方面,廣泛應(yīng)用于廣告、影視、工業(yè)設(shè)計、建筑設(shè)計、多媒體制作、游戲、輔助教學(xué)及工程可視化等領(lǐng)域。擁有強大功能的 3DS MAX 被廣泛地應(yīng)用于電視及娛樂業(yè)中,比如片頭動畫和視頻游戲的制作,深深扎根于玩家心中的勞拉角色形象就是 3DS MAX 的杰作。在影視特效方面也有一定的應(yīng)用。而在國內(nèi)發(fā)展的相對比較成熟的建筑效果圖和建筑動畫制作中, 3DS MAX 的使用率更是占據(jù)了絕對的優(yōu)勢。根據(jù)不同行業(yè)的應(yīng)用特點對 3DS MAX 的 掌握程度也有不同的要求,建筑方面的應(yīng)用相對來說要局限性大一些,它只要求單幀的渲染效果和環(huán)境效果,只涉及到比較簡單的動畫;片頭動畫和視頻游戲應(yīng)用中動畫占的比例很大,特別是視頻游戲?qū)巧珓赢嫷囊笠咭恍挥耙曁匦Х矫娴膽?yīng)用則把 3DS MAX 的功能發(fā)揮到了 極致 5。 最初的 3D Studio 產(chǎn)品由 Yost Group 為 DOS 平臺制作,由 Autodesk 發(fā)行。Autodesk 從第二版開始買下接下來兩個版本的標(biāo)志和內(nèi)核開發(fā)。在 3D Studio Release 4 后,產(chǎn)品轉(zhuǎn)到 Windows NT 平臺,名字改為 “3D Studio MAX”。此版本還是 Yost Group 制作,由從 Autodesk 拆分的 Kinetix 發(fā)行。稍后,產(chǎn)品名稱改為 “3ds max”,為了符合位于蒙特利爾的 Discreet 公司的命名標(biāo)準(zhǔn)。之后 Discreet 被Autodesk 收購,在第八版產(chǎn)品又重新打上 Autodesk 的標(biāo)志,名稱又變?yōu)?“3DS MAX” 6。 2.1.2 3DS MAX 的應(yīng)用領(lǐng)域 該軟件應(yīng)用領(lǐng)域非常廣泛: 1) 建筑可視化與虛擬現(xiàn)實( architectural visualization) 4 在國內(nèi)發(fā)展的相對比較成熟的建筑 效果圖和建筑動畫制作中, 3DS MAX 的使用率占據(jù)了絕對的優(yōu)勢。根據(jù)不同行業(yè)的應(yīng)用特點對 3DS MAX 的掌握程度也有不同的要求,建筑方面的應(yīng)用相對來說要局限性大一些,它只要求單幀的渲染效果和環(huán)境效果,只涉及到比較簡單的動畫。 2) 游戲制作( video game) 主要客戶有 EA、 Epic、 SEGA 等,大量應(yīng)用于游戲的場景、角色建模和游戲動畫制作。深深扎根于玩家心中的勞拉角色形象就是 3DS MAX 的杰作。 3) 電視廣告( TV commercial) 3DS MAX 在國內(nèi)的廣告制作領(lǐng)域也有一定的運用,尤其被 大量使用在中等檔次的電視廣告片中。 4) 電視包裝( TV packaging) 擁有強大功能的 3DS MAX 被廣泛地應(yīng)用于電視包裝制作領(lǐng)域。 3DS MAX 操作簡單,反應(yīng)迅速,擁有簡單而高效的粒子流系統(tǒng),擁有眾多高質(zhì)量的渲染器,在國內(nèi)被電視包裝行業(yè)的從業(yè)人員大量使用。 5) 電影、電視劇特效與腳本預(yù)覽( movie effects &movie pre-visualization)隨著 3DS MAX 功能的不斷完善,不少電影制作公司也開始注意到它。例如在著名的后天、功夫等等影片中都有可以看到利用 3DS MAX 加工過的鏡頭。當(dāng)然, 3DS MAX 要在電影領(lǐng)域大顯身手顯然還需要一定的時間。當(dāng)然, 3DS MAX為國內(nèi)電視劇制作的特效鏡頭就數(shù)不勝數(shù)了。 6) 工業(yè)設(shè)計及教學(xué)輔助( industrial design And Assisted Teaching) 由于 3DS MAX 在建模和渲染方面性能的大幅提升,有些公司也開始使用3DS MAX 作為工業(yè)設(shè)計的輔助工具。例如油田的某些項目用 3DS MAX 來建立基本的模型。 3DS MAX 擁有完整而方便的動畫工具,可以方便地制作各種演示動畫,吸引學(xué)生的學(xué)習(xí)興趣,提高教學(xué)成績。 例如機械設(shè)計、物理、化學(xué)、巖石礦物學(xué)等學(xué)科的教學(xué)都大量采用了 3DS MAX 制作的演示動畫,有些公司的培訓(xùn)項目也大量的使用 3DS MAX 所制作的培訓(xùn)演示動畫 7。 2.1.3 3DS MAX 的特點 3DS MAX 系統(tǒng)擁有許多優(yōu)良的特性,具體包括: 1用戶界面提供了強大的靈活性和工作能力; 2多操作系統(tǒng)支持,系統(tǒng)在 Windows 9x 、 Windows XP 上都可以運行; 3造型命令和編輯修改命令,功能相當(dāng)強大; 4多線程渲染( Rendering); 5氣象萬千的材質(zhì)編輯器( Material Editor); 6 方便控制和編輯動畫順序的對話框( Track View); 5 7支持核心構(gòu)件插入技術(shù)( Core Component Plug-In); 8功能強大的編輯調(diào)整器堆棧; 9 HEIDI 陰影顯示技術(shù),可以在實時陰影環(huán)境中工作; 10有很多的第三方插件可供利用 8。 2.2 Virtools Dev 開發(fā)工具的介紹 2.2.1 Virtools 簡介 Virtools 是屬于法國達(dá)索公司所有的虛擬現(xiàn)實開發(fā)平臺,它豐富的行為交互模塊可以使非專業(yè)的程序開發(fā)人員快速地創(chuàng)建自己的三維數(shù)字產(chǎn)品,系統(tǒng)不僅提供了 自帶的渲染引擎,而且允許用戶根據(jù)自己的需要進(jìn)行自定義,另外,為了便于網(wǎng)絡(luò)的應(yīng)用,還有相應(yīng)的網(wǎng)絡(luò)播放器。 Virtools 中 已 集成有 400 多個BuildingBlock 模塊 (簡稱 BB 模塊 ), 通過 BB 模塊的組合與定義,以及 attribute屬性等輔助工具,能夠進(jìn)行腳本的編制,可以滿足一定程度上的開發(fā)需求。同時,系統(tǒng)擁有自己的腳本語言 VSL,其語法和 C+極其相似,便于習(xí)慣使用腳本的程序員進(jìn)行開發(fā)。最重要的是, Virtools 的 SDK(Software Development Kit)開放了行為引擎和渲染引擎的接口 ,使用戶可以編寫新的行為模塊或?qū)?已 存在模塊進(jìn)行修改,以及增加參數(shù)類型,修改渲染引擎等,來達(dá)到開發(fā)的需求 9。 本次考評系統(tǒng)所使用的是 Virtools Dev 4.0 版本, Virtools 4 的開發(fā)架構(gòu)體系支持多種 3D 文件格式。 Virtools 提供的 3D 內(nèi)容轉(zhuǎn)換插件,支持主流的 DCC(Digital Content Creation,數(shù)字內(nèi)容創(chuàng)建 )軟件格式 (3ds Max、 Maya、 XSI、 Lightwave、Collada), Virtools 還可以直接導(dǎo)入和輸出 3D XML(達(dá)索系統(tǒng)標(biāo)準(zhǔn)的工業(yè)文件格式 ), 從而使 real-time 3D 作品的技術(shù)制作變得更加方便和高效。 2.2.2 Virtools 4 中的關(guān)鍵組件舉例 1.GUI(Graphical User Interface,人機交互圖形化用戶界面 ),以可視化的編輯方式,流程圖的思維模式,進(jìn)行對象和腳本設(shè)計工作,有效的減短了作品的制作周期, Virtools 4 開發(fā)平臺的 GUI(人機交互圖形化用戶界面 ),包含下列內(nèi)容: (1)3D Layout(實時 3D 編輯器 )用來顯示 Realtime3D 實時渲染環(huán)境的內(nèi)容。 (2)圖形工具條,用來進(jìn)行作品中 3D objects(3D 對象 )、 lights(燈光 )、cameras(攝像機 )和 curves(曲線 )的導(dǎo)航、創(chuàng)建、編輯、選擇和操作。 (3)新建和編輯 lights(燈光 )、 cameras(攝像機 )、 materials(材質(zhì) )、 textures(紋理貼圖 )、 grids (柵格 )和 paths(路徑 )。 (4)在一個虛擬環(huán)境中,進(jìn)行 3D entities (3D 實體 )的 Translation(位移 ), rotation(旋轉(zhuǎn) ), scale (縮放 )操作及作品導(dǎo)航。 6 (5)behaviors 交互腳本以鼠標(biāo)拖放形式, 賦予 2D 和 3D 對象。 (6)behaviors 交互腳本完成一定的功能后,可以打包或者合并的方式,保存起來,供我們重復(fù)使用。 (7)圖解式的 building blocks 腳本編輯模式,有助于我們便捷有效地創(chuàng)建互動內(nèi)容作品。 (8)Script Debugger(腳本調(diào)試器 )可以用來對應(yīng)用程序進(jìn)行優(yōu)化。 (9)Entity Setup Tools(實體設(shè)置工具 ) 用來對任一對象及其關(guān)聯(lián)腳本的參數(shù)編輯。 (10)Attribute Manager(屬性管理器 )用來快速地設(shè)置和修改多個對象屬性數(shù)值。 (11)Action Manager(操作管理器 )用來編寫常用的一些函數(shù) ,以快捷鍵的方式,來執(zhí)行一些預(yù)定義的操作或者創(chuàng)建任務(wù)。 (12)Hierarchy Manager(層級關(guān)系管理器 ) 以樹形結(jié)構(gòu)的方式來顯示所有對象之間的父子關(guān)系。 2.Behavior Engine 腳本引擎用來運行互動應(yīng)用程序,可以運行內(nèi)置或者自定義的 behaviors 腳本。 Virtools 4 基本的互動腳本涉及以下的類別: Cameras(攝像機 )、 Characters(角色 )、 Collisions(碰撞 )、 Controllers(控制器 )、 Grids(柵格 )、 Interface(界面 )、 Lights(燈光 )、 Logics(邏輯 )、 Materials- Textures(材質(zhì)和紋理 )、 Mesh modifications(模型結(jié)構(gòu)的修改 )、 Narratives(作品故事相關(guān) )、 Optimizations(優(yōu)化 )、 Particles(粒子 )、 Sounds(聲音 )、 Shaders(著色器 )、 Visuals(視 覺特效 )、 Web(網(wǎng)頁 )、 World Environments(虛擬環(huán)境 )。利用Virtools SDK 的 Behavior Pack 腳本源代碼文件包或者第三方腳本,我們可以對Behavior Library 腳本庫進(jìn)行功能擴充。 3.Render Engine 渲染引擎以實時渲染的方式來顯示圖形圖像,它包含有如下的功能: (1)支持國際產(chǎn)業(yè)標(biāo)準(zhǔn): DirectX 和 OpenGL。 (2)支持可編程 Vertex 頂點和 Pixel 像素的 Shaders 著色技術(shù) (DX9.c, OpenGL 2.0, HLSL, CgFX, Shader Model 3)。 (3)支持 3D 模型對象和動作(通過 3ds Max, Maya, XSI, Lightwave 和 Collada插件導(dǎo)出)。 (4)提供與 render engine 渲染引擎相關(guān)的源代碼。 4.Virtools Scripting Language 腳本語言以代碼的方式,進(jìn)行一部分的編程開發(fā),優(yōu)化腳本,提高效能,并可以在 Virtools 4 的 Schematic editor 圖形腳本編輯器中,提供腳本關(guān)鍵字智能顏色顯示 (intelligent coloring system)、 自動上下文區(qū)分提 示 (context-sensitive completion)及函數(shù)參數(shù)顯示 (function arguments display)功能,可以進(jìn)行相應(yīng)的 code 代碼編寫與運行,提高腳本的執(zhí)行效率,完成部分 7 SDK 的功能。 除了用于腳本互動部分的撰寫與運行, VSL 還可以用于創(chuàng)作模式下的操作功能的擴展,提升 Virtools 本身開發(fā)環(huán)境的制作效能。 VSL 提供了完整的 Debug 調(diào)試功能,支持腳本運行的 breakpoint 中斷點,變量和數(shù)值編輯的監(jiān)測,及步進(jìn)腳本的 Debug 調(diào)試 (支持調(diào)試的 step into/ out 模式 )8。 5.SDK (Software Development Kit,軟件開發(fā)工具包 ) Virtools 的 SDK 是一套軟件開發(fā)工具 (包含 有 libraries 庫文件, DLLs 文件, header 頭文件 ),提供了 Virtools 軟件的所有底層函數(shù),用來創(chuàng)建自定義的腳本和應(yīng)用程序,以及對 Virtools 本身的功能進(jìn)行擴充。開發(fā)者可以使用它進(jìn)行下述的應(yīng)用程序的工作: (1)利用 Virtools 引擎,制作自定義的可執(zhí)行應(yīng)用程序。 (2)對 Virtools 引擎進(jìn)行功能擴充,比如 Behaviors 互動腳本,媒體文件的導(dǎo)入插件, Manager 管理器, Render Engines 畫面實時渲染顯示插件, Rasterizer 圖像光柵 和其它的功能 插件 (指定的 Parameter Types 參 數(shù)類型 )等等。 2.2.3 Virtools 的前途與發(fā)展 Virtools 制作具有沉浸感的虛擬環(huán)境,它對參與者生成諸如視覺、聽覺、觸覺、味覺等各種感官信息,給參與者一種身臨其境的感覺。因此是一種新發(fā)展的、具有新含義的一種人機交互系統(tǒng)。 目前全世界有超過 270 所大學(xué)使用 Virtools ,它 已經(jīng)獲得許多媒體技術(shù)學(xué)系學(xué)生的肯定和支持 。 Virtools 主要經(jīng)由一個設(shè)計完善的圖形使用者界面,使用模塊化的行為模塊撰寫互動行為元素的腳本語言。這使得使用者 能夠快速地熟悉各種功能,包括從簡單的變形到力學(xué)功能等。 Virtools 可以制作出許多不同用途的 3D 產(chǎn)品,如網(wǎng)際網(wǎng)絡(luò)、計算機游戲、多媒體、建筑設(shè)計、交互式電視、教育訓(xùn)練、仿真與產(chǎn)品展示等 。 許多大型游戲制作公司,例如 EA 和 Sony Entertainment,都使用 Virtools 來快速地制作游戲產(chǎn)品的雛形。而且還有很多游戲是從頭到尾都用 Virtools 進(jìn)行開發(fā)的。中國大陸的 Virtools 的應(yīng)用剛剛起步,但是前景十分看好,水晶宮和奇士等公司已經(jīng)開始應(yīng)用。 8 第 3 章 油田起油管操作考評 系統(tǒng) 分析 3.1 需求性分析 基于虛擬現(xiàn)實技術(shù)平臺設(shè)計的這套起油管操作考評系統(tǒng),是以真實場景的比例為基礎(chǔ)的一套演練和考核系統(tǒng)。原因在于大型的油田單位不能給員工提供大量的實際操作練習(xí)機會,因為這樣不僅僅會消耗員工大量的時間,在操作過程中也存在很大的危險性,消耗大量的人力、物力和財力。這就凸顯了我們制作的這套操作演練考評系統(tǒng)的重要性。由于此項操作系統(tǒng)主要是以油田員工為主要使用者,所以對于使用者而言,可能會對網(wǎng)頁開啟和加載的時間以及畫面的流暢度較為重視,因此在對 3DS MAX 所建立的模型的精細(xì)程度進(jìn)行取舍時,盡量使場景內(nèi)所有對象的 總面數(shù)保持在 100000 以內(nèi),對于不必要的面數(shù)進(jìn)行刪減,但同時也要控制好場景內(nèi)物體的真實程度。同時還希望將系統(tǒng)的圖片和聲音文件加以壓縮,以節(jié)省讀取畫面的時間,并在貼圖的畫質(zhì)上做適合的取舍,讓使用者可以有身處真實場景的感覺。 另外,在使用本操作系統(tǒng)的時候,考慮到使用者可能是未使用過設(shè)備的新員工。因此,我們在操作過程中加入了設(shè)備拾取的功能,以文字信息的形式提示各個設(shè)備的名稱,并提示各個步驟的正確操作,使員工盡快熟悉環(huán)境,迅速地投入到實際工作中。 我們利用虛擬現(xiàn)實技術(shù)的特性,使得員工有身臨其境的真實感,使安全操作 的培訓(xùn)更加生動、逼真、易于接受,達(dá)到寓教于樂的效果,從而大大提高油田安全生產(chǎn)的效率與水平。 3.2 設(shè)計性分析 油田起油管操作考評系統(tǒng)(簡稱考評系統(tǒng))既可以對操作過程進(jìn)行演練,又可以對員工的操作技能進(jìn)行綜合考核,所以對設(shè)計性分析的要求很高。我們首先分析系統(tǒng)的需求與流程,使用建模工具對場景中涉及到的物體進(jìn)行一一建模,為我們實現(xiàn)系統(tǒng)做好“物質(zhì)”準(zhǔn)備,再通過設(shè)計交互動作與動畫等等,最終在 Virtools中設(shè)計程序流程,實現(xiàn)考評系統(tǒng)。所以從設(shè)計的角度來講,起油管操作考評系統(tǒng)包括兩個部分:三維場景的建立和對三維場景及物 體的驅(qū)動編程。整個系統(tǒng)設(shè)計流程如下: 一、三維場景的建立 9 1、運用三維場景建模工具 3DS MAX 建立油田起油管操作場景的三維模型,包括建 立 抽油機、作業(yè)機、油管、吊卡、液壓鉗、大鉤等幾何模型。 2、將各個幾何模型組合成為三維場景。 3、三維場景及物體的導(dǎo)出。 二、三維場景的驅(qū)動 1、打開 Virtools 工具,導(dǎo)入所有模型和場景,調(diào)整添加渲染控件等,為接下來的渲染、交互設(shè)計工作做必要準(zhǔn)備。 2、為操作界面添加菜單功能,可以自由選擇操作視角、操作工具、以及背景音樂控制等,我們只需用二維幀來實現(xiàn)。 3、通過分析動作 ,把整個操作過程分解,分步分模塊設(shè)置腳本動作等。 ( 1)首先引入主場景,提示操作開始,并將操作場景拉近,開始操作,此時每一步操作有相應(yīng)的文字提示信息。 ( 2)班長給出手勢信號,提起大鉤,帶動吊環(huán)上升一定高度,以便吊起油管。 ( 3)將升起適當(dāng)高度的吊環(huán)吊住吊卡,提起大鉤帶動一端油管提升到地平面部分。 ( 4)使用吊卡工具卡住下方的第二根油管,并將吊卡牢牢卡好。 ( 5)使用液壓鉗工具,卡住兩油管相接處的螺母,安裝完畢啟動液壓鉗開關(guān)。卸開螺絲連接部分,收起液壓鉗。 ( 6)由班長發(fā)出完畢命令,并示意操作員提起大鉤。 ( 7)帶動取下油管將提起的油管可動的一端放在一側(cè)的滑輪上,放下油管,會自動滑動到安放油管的架子上。 ( 8)每一步操作都會計算分?jǐn)?shù),對于分?jǐn)?shù)的處理是在每一步操作中同時處理的。 ( 9)操作過程中應(yīng)該含有對錯誤處理的提示,以及正確操作的演示過程。 ( 10)另外為了增強場景的交互真實性,我們還設(shè)置了自由行走的功能,可以更具鍵盤的操作,來自己行走于整個場景,包括前后、左右以及上下、旋轉(zhuǎn)等等。 4、系統(tǒng)設(shè)計結(jié)束后,使用 Virtools 中的 Play 功能測試系統(tǒng)的操作,在演示及手動操作的過程中,對系統(tǒng)進(jìn)一步完善,達(dá)到理想的 效果。 5、測試系統(tǒng)可以正確流暢使用后,以 .COM 和 .HTML 的文件格式導(dǎo)出,完成整個操作系統(tǒng)的制作。 3.3 系統(tǒng)功能模塊圖 油田起油管操作考評系統(tǒng)具有可交互操作功能,為用戶提供了一個可實際操 10 作的環(huán)境。為了實現(xiàn)上述操作,我們從功能上將其分解為兩大類功能:菜單選擇和操作實現(xiàn)。詳細(xì)的系統(tǒng)功能模塊圖如圖 3-1 所示。菜單欄中包括了位置選擇、工具選擇、背景音樂和退出系統(tǒng)四大部分,其中位置我們使用了自由視角和操作視角兩種;考評系統(tǒng)重點用到了吊卡和液壓鉗等工具。在系統(tǒng)操作實現(xiàn)部分,我們分為鼠標(biāo)觸發(fā)事件,設(shè)備跟隨、相機的 移動,設(shè)備識別以及操作計分等操作步驟。 圖 3-1 考評系統(tǒng)功能模塊圖 3.4 程序流程圖 系統(tǒng)開始運行后,會提示操作考評已經(jīng)開始,請認(rèn)真操作。系統(tǒng)主要為了方便員工盡快熟悉操作工具以及起油管正確操作步驟,在每一步的操作進(jìn)程中,都會有文字信息提示。為了更具有交互性,我們 提供了錯誤操作時的兩種選擇,跳過該步操作或者是觀看系統(tǒng)該步操作的正確操作過程的演示。系統(tǒng)秉著準(zhǔn)確、可交互的原則來實現(xiàn),操作程序流程圖 3-2 所示。 11 開始結(jié)束第一步操作顯示操作過程記錄操作信息第二步操作顯示操作過程記錄操作信息最后一步操作顯示操作過程記錄操作信息計算并顯示考評分?jǐn)?shù)跳過跳過跳過是否正確是否正確是否正確觀看正確操作還是跳過觀看正確操作還是跳過觀看正確操作還是跳過觀看正確操作觀看正確操作觀看正確操作否是跳過跳過跳過否是是否 圖 3-2 考評系統(tǒng)程序流程圖 12 第 4 章 三維場景和物體模型的建立 4.1 三維模型與貼圖的限制 使用 3DS MAX 軟件制作出場景所需物體的三維模型,采用適當(dāng)格式的貼圖給設(shè)備模型附加貼圖后,導(dǎo)入到 Virtools 中進(jìn)行交互操作的設(shè)計,以下是 Virtools對于模型的限制: 一、模型必須是“ editable mesh”形態(tài)的 3D 模型才能導(dǎo)入到 Virtools 中去??晒┹敵龅?3D 模型資料如下: (1)基本模型資料 (2)貼圖坐標(biāo)的設(shè)定 (3)Smoothing Groups 的關(guān)系設(shè)定 (4)Hierarchy 從屬關(guān)系的設(shè)定 (5)Show/Hide Flag 顯示隱藏的設(shè)定 (6)如果 Wrapping settings 的輸出不正確,可以利用 Virtools 的行為模塊“ Set Wrap Mode”來改善詞問題 (7)Vertex Color 二、貼圖,貼圖的來源是親自到現(xiàn)場將有關(guān)的設(shè)備外觀用數(shù)碼相機拍下來,力求精細(xì),最后利用 Photoshop 對圖片做適當(dāng)修改。 Virtools 可以接受的貼圖尺寸的長與寬最好使用 2 次方像素(如 2、 4、 8、 16、32、 64、 128、 256 Pixels,也就是說 16 16、 16 32、 32 64 或 64 128)盡量減低貼圖大小,并且使用 16bit 或 24bit 的圖形格式(不可以使用 8bit或 32bit的圖形格式),可供輸出的材質(zhì)資料如下: (1)Diffuse 的貼圖,貼圖的色彩將會因為這個材質(zhì)的顏色而改變,除非顏色值為( 255, 255, 255)的白色。 (2)U, V 軸向的重復(fù)貼圖或鏡射貼圖(鏡射貼圖視顯卡的效能而定)。 (3) 自我發(fā)光的物體可以利用 Virtools 里的 Emissive 值來調(diào)整。 (4) Ambient Color (5) Specular Color (6) 雙面材質(zhì)的設(shè)定 (7) 透明度的設(shè)定 4.2 三維模型的制作 在考評系統(tǒng)中,三維物體及場景的建立是“物質(zhì)”基礎(chǔ)。本系統(tǒng)主要需要建 13 立抽油機、作業(yè)機、井口,油管、各種工具以及天空和地面等三維模型。本章只以抽油管和吊卡為例簡單介紹三維模型的構(gòu)建過程。下面介紹三維模型建立的注意事項、模型制作、模型導(dǎo)入以及導(dǎo)入后的問題等幾個內(nèi)容。 4.2.1 模型制作的注意事項 為 了降低模型的面數(shù),制作模型的過程中應(yīng)盡量避免使用 Boolean 與 3DS MAX 里提供的 Windows 物件,而改用貼圖的方式讓模型外觀看起來更真實。此外,將看不到的面刪除,面與面重疊時也應(yīng)將重疊的面刪除 5。 4.2.2 部分三維模型的建立 一、抽油管 抽油管是由三部分組成的,中間的油管部分以及兩頭的螺絲及螺母部分,如圖 4-1 所示。 圖 4-1 左側(cè)為螺絲部分,右側(cè)為螺母部分,中間由油管連接 創(chuàng)建一個管狀體有很多方法,包括圓環(huán)的擠出、兩個圓柱體的布爾操作,但是最簡單便捷的就是直接使用 3D MAX 提供的圓環(huán)管狀體 的創(chuàng)建工具,本系統(tǒng)使用的就是這種方法。創(chuàng)建好管狀體,調(diào)整其大小半徑,包括螺母部分,需要注意的是,螺母部分的圓環(huán)半徑要和油管外半徑相接。油管的螺絲接頭采用的是 UV貼圖處理,選中位圖類型的螺絲貼圖,將其指定給選中螺絲部分;組合后即為我們所需要的抽油管模型,在編輯器中為其選擇一個材質(zhì)球,調(diào)整環(huán)境光和漫反射中的 RGB、色調(diào)、飽和度和亮度值為適當(dāng),將其材質(zhì)指定給油管組,存儲后導(dǎo)入到 Virtools 中待使用。 二、 吊卡的組建過程 在頂視圖上制作一個半徑 1 為 85,半徑 2 為 65,高度為 150,邊數(shù)為 12 的管狀體,啟動切片啟 用,設(shè)置為 270,用旋轉(zhuǎn)工具將其旋轉(zhuǎn)到最佳位置,同理制作出另外兩個管柱體,半徑 1 分別是 65 和 50,半徑 2 分別是 50 和 40,高度為150,邊數(shù)同為 12;另制作一個圓柱體,半徑為 5,高度為 180,邊數(shù)為 12,并復(fù)制一個;接著在前視圖中制作一個長為 150,寬為 120,高為 30 的長方體,和一個半徑為 50,圓角為 90 度,高度為 50 的六棱柱以及一個長為 43,寬為 35,高 14 為 100 的長方體,并先將其與較小的長方體進(jìn)行布爾操作,后與六棱柱進(jìn)行布爾操作,然后復(fù)制一個,最后將所有建好的模型命名 diaoka01 至 diaoka07, 并成組,組名為 diaoka,其材質(zhì)命名為 diaokahuise。 圖 4-2 吊卡模型圖 4.3 模型的轉(zhuǎn)換 4.3.1 3DS MAX 模型轉(zhuǎn)換注意事項 可從 3DS MAX 輸出轉(zhuǎn)入到 Virtools 中的所有數(shù)據(jù)如下所示: (1)模型數(shù)據(jù):已經(jīng)轉(zhuǎn)為 editable mesh的 3D 模型??晒┹敵龅?3D 模型數(shù)據(jù)如下:基本模型數(shù)據(jù)。貼圖軸的設(shè)定。 Smoothing Groups 的設(shè)定。 Hierarchy從屬關(guān)系設(shè)定。 Show/hide Flag 顯示隱藏的設(shè)定。如果 Wrapping settings 的輸出不正確,可以利用 Virtools 的行為模塊 Set Wrap Mode 改善此問題。 Vertex Color。 (2)材質(zhì)資料: 3DS MAX 的標(biāo)準(zhǔn)材質(zhì)數(shù)據(jù)以及 multi/sub-object(同一對象、復(fù)合材質(zhì)數(shù)據(jù))。 可供輸出的材質(zhì)數(shù)據(jù)如下: Diffuse 的貼圖。 Diffuse:貼圖的色彩將會因為這個材質(zhì)顏色而改變,除非顏色值為 (255,255,255)的白色。 U、 V 軸向的重復(fù)或鏡射貼圖( Tiling and mirroring on U and V):鏡射貼圖將視顯示卡的效能而定。自我發(fā)光體可利用Virtools 里的 emissive 值來調(diào)整 (Virtools emissive 值可以在材質(zhì)的設(shè)定頁 Material Setup 中找到 )。 Ambient Color。 Specular Color。雙面材質(zhì)設(shè)定( 2-Sided Flag) 。透明色設(shè)定( Transparency)。 (3)燈光:所有 3DS MAX 的標(biāo)準(zhǔn)燈光,如 FreeSpot, Target Spot, Omni, Target 15 Direct, Free Direct 等。 可供輸出的燈光數(shù)據(jù)如下: 開 / 關(guān)設(shè)定。燈光顏色。照射范圍 ( 設(shè)定燈光范圍的Attenuation/Far/End等數(shù)據(jù) )。 Affect specular的設(shè)定。特殊燈光參數(shù)設(shè)定。聚光燈:聚光燈的 Fall Off 值的設(shè)定。平行光: 3DS MAX 可以使用圓柱線條來設(shè)定平行光的范圍,但在 Virtools 里并無法設(shè)定平行光的范圍,一旦有平行光將會完全照射整個場景。 (4)攝影機:所有 3DS MAX 設(shè)定好的攝影機,如 Target 或 Free 的攝影機??晒┹敵龅臄z影機數(shù)據(jù)如下: 3DS MAX 攝影機的參數(shù)只有 FOV 可供輸出。 (5)Dummy:接受 3DS MAX 的 Dummy 虛擬對象。 (6)動態(tài)數(shù)據(jù): TCB 格式、 LINEAR 或 Bezier 的動態(tài)數(shù)據(jù)。 可供輸出的動畫參數(shù)數(shù)據(jù)如下: 只有在 3DS MAX 里的 TCB、 LINEAR 或 Bezier 的位移、旋轉(zhuǎn)、大小等動態(tài)數(shù)據(jù)可以輸出至 Virtools。為了將正確 地輸出動態(tài)數(shù)據(jù),母對象(群組最高層級的對象)的位移、旋轉(zhuǎn)、大小三種動態(tài)數(shù)據(jù)的起始點與終點一定要設(shè)定在時間軸的范圍里。 Virtools 的每一段動畫的旋轉(zhuǎn)范圍并不允許有超過 360度的數(shù)據(jù),因此在 3DS MAX 里若有超過這個范圍的旋轉(zhuǎn)動畫請予以切割成可允許的旋轉(zhuǎn)范圍里。 (7)曲線數(shù)據(jù):在 3DS MAX 里做制作的 Shape將會轉(zhuǎn)成 Virtools 的 Curve (Virtools 的專有名稱 )。 可供輸出的曲線數(shù)據(jù)如下: 在 3DS MAX 所制作的曲線( Spline)將會在輸出成 Virtools 檔案時,只有點的數(shù)據(jù) 會被保留,并且轉(zhuǎn)為 Virtools的 Curve( Virtools 的專有名詞)。 (8)群組資料:在 3DS MAX 所定義的群組數(shù)據(jù)( Groups)。 可供輸出的群組數(shù)據(jù)如下 : 在場景輸出( Scene Export)模式下,使用 Dummy 來當(dāng)整個對象群組的母對象( parent object)時,這個 Dummy 將會依照群組的從屬關(guān)系轉(zhuǎn)成 Virtools里的 Frame( Virtools 的專有名詞) 。為了能夠正確地輸出群組數(shù)據(jù),必須在 3DS MAX 里將群組( Group)打開,成為開放式群組( Open Group)。不 過在動畫輸出( Animation Export)模式,將不支持 Dummy 的輸出,所以請避免使用群組。 (9)3DS MAX 模型 Reset XForm 部分: 為了正確而完整的輸出所有 3DS MAX所制作的模型到 Virtools 里,在設(shè)定從屬關(guān)系和制作動畫制作之前必須將所有的模型作 Reset XForm。設(shè)定方式如下: 制作所需的 3D 對象。將物件 Reset XForm: (a):選擇所有對象( Select all objects)。 (b): 選擇 3DS MAX 里最右邊的 Utility菜單中的 Reset XForm功能。 (c): 執(zhí)行 Reset Selected。 (d): 確認(rèn) 3D 對象里,面的方向 (normal)是正確的。 (e): 先將 3DS MAX 的檔案儲存起來,以供之后使用。最后再進(jìn)行從屬關(guān)系的設(shè)定或動態(tài)的制作。 4.3.2 3DS MAX 模型的導(dǎo)出 Virtools4.0 for MAX 導(dǎo)出插件主界面圖如圖 4-3 所示。 16 圖 4-3 導(dǎo)出插件主界面 ( 1)基本選項 導(dǎo)出插件基本選項如圖 4-4 所示。 圖 4-4 導(dǎo)出插件基本選項 Export as Objects: 輸出為 3D 物體。 Export as a Character: 輸出為一個角色。 17 Export Animation Only: 僅輸出動畫。 Export Level(produce.cmo): 輸出為 Level,在一般情況下這個選項是用來直接將 MAX 場景導(dǎo)出為 CMO 文件的。 (這里需注意的是,輸出插件 3 種輸出格式 NMO、 CMO、 VMO,當(dāng)選擇這 個選項導(dǎo)出為 NMO 后,在 Virtools 導(dǎo)入時會做為一個沒有名字的 Scene 導(dǎo)入。 ) Character Name:角色的名字,當(dāng)導(dǎo)出角色時可用。 Animatiion Name:動畫的名字,當(dāng)導(dǎo)出動畫色可用。 Starting Camera:當(dāng)導(dǎo)出為 Level 可設(shè)置場景初始相機。 ( 2)一般選項 導(dǎo)出插件一般選項如圖 4-5 所示。 圖 4-5 導(dǎo)出插件一般選項 Export selection groups as places: 將 MAX 中的組 (Groups)導(dǎo)出為 Places. Rescale Scenes unit: 重設(shè)場景單位, 將場景導(dǎo)入 VT 時重設(shè)場景單位為米。 Hide Helper Objects: 隱藏輔助物體 ,MAX中的輔助物體在導(dǎo)入 Virtools 后默認(rèn)為隱藏狀態(tài)。 File Compression Level: 導(dǎo)出文件的壓縮級別,從 0 到 9 壓縮級別越高文件越小。 Detect and Share identical: 資源共享,這里可以設(shè)置共享動畫、 Mesh、材質(zhì)和貼圖。(這個功能也很好用,以前在 MAX 中只有用 Instance 方式復(fù)制的關(guān)聯(lián)物體才可以共享 Mesh,現(xiàn)在只要兩個物體的 Mesh 數(shù)據(jù)是一樣的(比如頂點數(shù),頂點 位置),只要勾選這里的 Mesh 選項,導(dǎo)出后兩個物體也會共享一個 Mesh。其它的動畫,材質(zhì)和貼圖也是一樣的,只在數(shù)據(jù)一樣就會在導(dǎo)出時共享一個 11。 ( 3) 3D 物體選項 導(dǎo)出插件物體選項圖如圖 4-6 所示。 18 圖 4-6 導(dǎo)出插件物體選項 Deactivate Mesh Channels: 凍結(jié) Mesh 通道 .在導(dǎo)出 Virtools 后,使物體的 Mesh 通道默認(rèn)為凍結(jié)狀態(tài)。 Split Mesh by Channel: 按材質(zhì)通道分割 Mesh 。(只有在多維材(Multi/Sub-Object)中有超過一個合成材質(zhì) (Compsite)時才起作用。 Export biped and bones geometry: 導(dǎo)出 Biped 和 Bones(骨骼)為 3D物體。 Export Level of Detail: 導(dǎo)出 MultipleMesh 類型的 LOD 物體。(這里的LOD 物體設(shè)置方法為,在主物體同名稱的物體的名稱后加上 LOD1,LOD2LOD9的后綴,在導(dǎo)出 Virtools 后,主物體將被加上一個 MultiipleMesh 類型的 LOD屬性,有后綴的物體將導(dǎo)出為主物體的多個 Mesh。 Export Splines as Dummies: 導(dǎo)出曲線為 3Dframe。 ( 4) 材質(zhì)貼圖選項 導(dǎo)出插件貼圖材質(zhì)選項圖如圖 4-7 所示。 圖 4-7 導(dǎo)出插件材質(zhì)貼圖選項 Export Both Materials of Shell Mtl:導(dǎo)出 Shell 材質(zhì) 中的兩個子材質(zhì),不勾選時只導(dǎo)出第一個子材質(zhì)。 Export Alpha Map(Opacity):導(dǎo)出材質(zhì) Opacity 通道中的貼圖為 Alpha 通道,如果 Opacity 通道上沒有貼圖,會復(fù)制 Diffuse 通道的貼圖會 Alpha 通道。 Store only texture filenames: 只導(dǎo)出貼圖的名稱到 NMO 中,以別的方式導(dǎo)出時貼圖會包含在 Virtools 中,如果你看見空的貼圖,請查找你的 Virtools 19 資源厙設(shè)置貼圖的路徑。 Resize textures:重設(shè)貼圖的大小為 2 的平方數(shù) (Square 勾選后強制貼圖的長寬一樣 ),這里有三種方式。 1 Nearest Power of 2: 設(shè)為最接近的 2 的平方數(shù)。 2 Lower Power of 2: 設(shè)為低的 2 的平方數(shù)。 3 Highter Power of 2: 設(shè)為高的 2 的平方數(shù)。 Read Channels Seting from file:從 text 文件中讀取 Mesh 混合通道設(shè)置。 ( 5) 動畫選項 導(dǎo)出插件動畫選項圖如圖 4-8 所示 圖 4-8 導(dǎo)出插件動畫選項 Export Animation:導(dǎo)出動畫 ,不勾選就不會導(dǎo)出動畫。 Reset character animation s inintial orientation:重設(shè)角色動畫初始方 向?qū)R Z 軸。 Lgnore Single Key Animations: 勾選此項會忽略只有一個關(guān)鍵幀的動畫,這個選項在制做角色次級動畫時很有用。 Reduce Redundant Keys:跟據(jù)給定的域值( Threshold)優(yōu)化動畫關(guān)鍵幀。 Physique conversion: Physique 修改器轉(zhuǎn)換設(shè)置。 Convert to Skin 轉(zhuǎn)換為蒙皮動畫, Convert to Morph Animation 轉(zhuǎn)換為變形動畫。 Sampling Rate for Unsupported: 動畫每幀 采樣率, Mesh Deformation網(wǎng)格變形 ,3D Transformation 三維變形。 ( 6)報告選項 導(dǎo)出插件報告選項圖如圖 4-9 所示。 圖 4-9 導(dǎo)出插件報告選項 20 Verbose level:詳細(xì)級別 ,有低,中,高三個級別,級別越高越詳細(xì)。 Save to file:設(shè)置報告保存的文件,默認(rèn)在導(dǎo)出文件同目錄下生成一個名為“ Report.txt”的文件。 4.4 模型導(dǎo)入到 Virtools 打開 Virtools Dev4.0 進(jìn)行文件的導(dǎo)入,導(dǎo)入的方法如圖 4-10 所示。 啟動 Virtools Dev4.0,選擇上方菜單命令的 Resources(資源) Import File(導(dǎo)入文件),找出并開啟剛剛保存 的 NMO 文件,就可以看到在 3DS MAX 中做的模型已經(jīng)成功的導(dǎo)入到 Virtools 中了,然后對導(dǎo)入的模型進(jìn)行位置的擺放和排列。 圖 4-10 文件導(dǎo)入窗口 把模型導(dǎo)入到 Virtools 中的場景后,需要對各個模型的位置、大小以及角度等參數(shù)進(jìn)行調(diào)整。加入燈光后還需要對模型的材質(zhì)進(jìn)行調(diào)整,以達(dá)到逼真的視覺效果。調(diào)整過程中需要注意的是:在調(diào)整完對象的參數(shù)后,需要對模型設(shè)置初始值( Set IC),否則的話,當(dāng)對場景進(jìn)行 Reset IC 時,各個模型會回到其剛導(dǎo)入到場景時的狀態(tài)。調(diào)整后的場景如圖 4-11 所示。 21 圖 4-11 調(diào)整后場景 4.5 模型導(dǎo)入到 Virtools 后黑的原因 4.5.1 物體材質(zhì)顏色不正確 方法一: 在 3DS MAX 中,修改 Diffuse Color 的數(shù)值,再輸出。 方法二: 在 Virtools 開發(fā)環(huán)境中,開啟該物體的 Material Setup,修改 Diffuse 的數(shù)值。 4.5.2 物體材質(zhì)顏色是黑色的 一、 使用燈光的情況下 方法一: 在 3DS MAX 中,確認(rèn) Self Illumination 數(shù)值為 0,再輸出。 方法二: 在 Virtools 開發(fā)環(huán)境中,開啟該物體的 Material Setup,修改 Emissive 的數(shù)值為黑色 (R:0 G:0 B:0)。 二、 不使用燈光的情況下 方法一: 在 3DS MAX 中,確認(rèn) Self Illumination 數(shù)值為 100,再輸出。 方法二: 在 Virtools 開發(fā)環(huán)境中,開啟該物體的 Material Setup,修改 Emissive 的數(shù)值為白色 (R:255 G:255 B:255)。 22 第 5 章 考評系統(tǒng)的實現(xiàn) 將三維模型及場景導(dǎo)入到 Virtools 環(huán)境后,動作的驅(qū)動模塊是系統(tǒng)的核心部分。下面從兩個方面介紹系統(tǒng)的實現(xiàn):菜單選 項部分和系統(tǒng)操作的實現(xiàn)部分。 5.1 菜單選項的實現(xiàn) 菜單選項包括了位置選擇、工具選擇、背景音樂和退出系統(tǒng)四大部分,其中位置選擇提供了自由視角和操作視角兩種方式。下面介紹菜單的制作過程。 1.按鈕材質(zhì)及紋理的制作 首先在 Photoshop 中制作好按鈕的三種狀態(tài),即一般、鼠標(biāo)滑過和被點選三種狀態(tài)。然后把制作好的圖片作為紋理導(dǎo)入到 Virtools 當(dāng)中,在 Virtools 中 創(chuàng)建材質(zhì),并把剛才的紋理分別附加到相應(yīng)的材質(zhì)上。 2.按鈕 2D Frame 的建立 以 Create 2D Frame(創(chuàng)建二維幀)命令創(chuàng)建一個 2D 平面對象,并調(diào)整好其位置與大小,然后對其 Set IC 。 3.按鈕腳本的實現(xiàn) 為 2D 平面創(chuàng)建一個腳本,在腳本中加入 Push Button 模塊。然后在 Push Button的屬性面板中設(shè)置其相應(yīng)的按鈕三種狀態(tài)的材質(zhì)。如圖 5-1 所示。 4.其它按鈕的制作 按以上同樣的操作,為每一個按鈕都設(shè)置相應(yīng)的屬性。制作完成后的菜單如圖 5-2 所示。 圖 5-1 Push Button 屬性設(shè)置 圖 5-2 按鈕菜單 23 5.2 系統(tǒng)操作的實現(xiàn) 5.2.1 考評系統(tǒng)的操作步驟 系統(tǒng)實現(xiàn)考評操作總共分為七個步驟,具體如下: (1)點擊班長,班長做手勢上提大鉤。 (2)點擊吊環(huán),將吊卡安上吊環(huán)。 (3)選吊卡,點擊油管 2,安吊卡。 (4)選液壓鉗,點擊油管,打開液壓鉗。 (5)點擊推動液壓鉗動力桿。 (6)點擊班長,班長做手勢稍微上 提大鉤。 (7)點擊油管,卸下油管。 5.2.2 數(shù)據(jù)表的建立 建立數(shù)據(jù)表用到的是陣列( Array),陣列的熟練運用與否,是影響 Virtools作品優(yōu)劣的關(guān)鍵。實際上,陣列并不難,其訣竅在于邏輯的推演上,必須一步一步小心謹(jǐn)慎、有耐心的去編輯每一個環(huán)節(jié),這樣就不容易出錯。如圖 5-3 所示的陣列就是建立完成后的陣列。此陣列當(dāng)中的各個數(shù)據(jù)項的說明如下: 1.czbz 操作步驟 :此列的屬性是 Integer,其顯示的是每一步操作的編號。 2.cznr 操作內(nèi)容 :此列的屬性是 String,其顯示的是系統(tǒng)當(dāng)中的每一步操作的提 示信息。 3.czfs 操作分?jǐn)?shù) :此列的屬性是 Integer,表示每一步占有的分?jǐn)?shù)值。 4.czwc 操作完成 : 此列的屬性是 Integer,表示此步是否按照規(guī)定正確完成。 5.czdx 操作對象 :此列的屬性是 Group,表示接下來接受操作的設(shè)備名稱。 6.czxx 操作消息 : 此列的屬性是 String,說明本步驟操作過程。 7.czdf 操作得分 : 此列的屬性是 Integer,表示在每一步得到的最終分?jǐn)?shù) 圖 5-3 數(shù)據(jù)表 24 建立 Array,主要是用來存取信息的,考評系統(tǒng)中的每一步操作都記錄在 Array中,包括操作是否正確的判斷,操作步驟名稱的顯示,計算每一步分?jǐn)?shù)以及最終考核總分,都要從圖 5-3 中讀取或是查找相應(yīng)的信息。下面具體介紹實現(xiàn)過程。 5.2.3 鼠標(biāo)操作設(shè)備使用的實現(xiàn) 這一部分主要說明在考評系統(tǒng)中,我們要對指定的設(shè)備進(jìn)行特定的操作,旨在判斷操作的準(zhǔn)確性,系統(tǒng)提供了 鼠標(biāo)觸發(fā)左鍵點擊事件,除了識別設(shè)備名稱外,還實現(xiàn)了識別所選中的設(shè)備是否為需要接受操作的對象。基本實現(xiàn)腳本如圖 5-4所示。 圖 5-4 鼠標(biāo)觸發(fā)設(shè)備的流程圖 這里涉及到了 Array 組(上文提到的數(shù)據(jù)表)中的查詢測試,例如當(dāng)使用者操作進(jìn)行到第一步驟,就會出現(xiàn)提示信息顯示 使用者接下來要對那個對象進(jìn)行怎樣的操作,為了識別操作對象的準(zhǔn)確性,當(dāng)鼠標(biāo)選中一個對象并用左鍵激該活動作時,將觸發(fā)圖中的 Row Search 等模塊, 通過查找指定 Array 中的某一行,當(dāng)查找到的內(nèi)容符合條件,即與 Array 某行某列的值相等時,系統(tǒng)自動會認(rèn)為此步操作正確。 如果操作正確完成,則會直接自動進(jìn)入下一步操作,分?jǐn)?shù)計入得分表中;否則,本步分?jǐn)?shù)不計分,并顯示錯誤處理界面,包括跳過和觀看正確操作兩種選擇。 5.2.4 鼠標(biāo)跟隨設(shè)備的實現(xiàn) 在使用者使用考評系統(tǒng)進(jìn)行操作的過程中,可能會借助一些工具,菜單選擇中會 有工具選擇功能,選擇相應(yīng)的工具。為了讓使用者感到真實的在使用所選工具,本系統(tǒng)實現(xiàn)了鼠標(biāo)跟隨設(shè)備的功能。具體實現(xiàn)過程如下: 首先,創(chuàng)建一個 2D Frame 和一個材質(zhì) ,分別命名為 tools和 tools_material,作為鼠標(biāo)點擊工具時小圖片跟隨鼠標(biāo)的材質(zhì),需將“所需材質(zhì)和紋理”文件夾中的工具小圖片的名字重新命名為 tools_diaoqia、 tools_yeyaqian、并拖入到場景中 ,初始化隱藏。 25 其次就是設(shè)計設(shè)備跟隨鼠標(biāo)移動的腳本。我們用到了坐標(biāo)屏幕的拾取,參照原點坐標(biāo)來獲取當(dāng)前鼠標(biāo)的位置,每一次鼠標(biāo)變換 位置時都重新計算一次。然后獲取鼠標(biāo)附近某一位置,我們?nèi)∈髽?biāo)右側(cè)下標(biāo)來顯示設(shè)備圖片,當(dāng)鼠標(biāo)觸發(fā)菜單選項中的工具設(shè)備時觸發(fā)事件,根據(jù)預(yù)設(shè),系統(tǒng)查找現(xiàn)實選定設(shè)備的圖片信息,即我們視覺看到的鼠標(biāo)右側(cè)跟有一個設(shè)備。具體實現(xiàn)腳本流程圖如圖 5-5 所示。 圖 5-5 鼠標(biāo) 跟隨設(shè)備流程圖 5.2.5 自由相機漫游的實現(xiàn) 我們在操作系統(tǒng)中設(shè)置了兩種漫游方式,一種是操作漫游,隨著系統(tǒng)的每一步驟的操作而一步步前進(jìn),鏡頭根據(jù)操作需要進(jìn)行變換;另一種就是自由漫游,可以自由的漫游場景,這里我們使用的是自由相機,我們通過鍵盤控制相機的運動方向和運動模式,可以拉近拉遠(yuǎn),或是移動、旋轉(zhuǎn)來改變操作視角,既可以觀看整個場景的概況,也可以近處細(xì)看某個物體,從而達(dá)到了場景的漫游的效果。 1.攝像機的創(chuàng)建 我們在新建板中單擊創(chuàng)建攝像機按鈕 ,創(chuàng)建一個攝像機,設(shè)置其初始值,然后為其創(chuàng)建一個腳本。 2.腳本 實現(xiàn)的關(guān)鍵 BB 我們使用自由相機實現(xiàn)場景漫游,主要是通過鍵盤信息來控制相機的行走與視角的轉(zhuǎn)向。因此我們使用到 Switch On Key 模塊來響應(yīng)鍵盤事件。根據(jù)模塊本身的特性,我們可以根據(jù)需要增加輸入輸出控件條件。這里我們實現(xiàn)了八個動作,動作和鍵盤的映射關(guān)系如表 5-1 所示。 表 5-1 鍵盤控制功能表 鍵盤輸入名稱 實現(xiàn)功能 Up 視角相機向前移動 Down 視角相機向后移動 26 Left 視角相機向左移動 Right 視角相機向右移動 Page up 視角相機向上移動 鍵盤輸入名稱 實現(xiàn)功能 Page down 視角相機向下移動 Home 視角相機向左旋轉(zhuǎn) End 視角相機向右旋轉(zhuǎn) 3.具體腳本的實現(xiàn) 除了使用 Switch On Key 模塊之外,我們還用到了八個 Per Second、 6 個Translate 和 2 個 Rotate 模塊。 Per Second 與 Translate 連接實現(xiàn)的是移動的效果,而 Per Second 與 Rotate 連接實現(xiàn)的是旋轉(zhuǎn)的效果。另外還用到了一個拾取坐標(biāo)參數(shù)計算屬性設(shè)置,完成后的效果如圖 5-6 所示。 圖 5-6 自由相機的腳本實現(xiàn) 5.2.6 鼠標(biāo)識別的實現(xiàn) 本考評系統(tǒng)針對不能馬上投入工作的新員工,但急需熟悉工作場地各項設(shè)施的情況,設(shè)置了鼠標(biāo)識別功能,使得系統(tǒng)具有學(xué)習(xí)可觀性。在系統(tǒng)操作過程中當(dāng)鼠標(biāo)移動到某個設(shè)備上,便會在鼠標(biāo)處顯示一個綠色的圓圈,同時在圓圈的右部顯示該設(shè)備的名稱。而當(dāng)鼠標(biāo)離開設(shè)備范圍內(nèi)時,綠色的圓圈和設(shè)備的名稱 便會 27 消失。只有鼠標(biāo)選中設(shè)備或者從該設(shè)備上滑過時才會有相應(yīng)的顯示,這就是鼠標(biāo)識別設(shè)備的過程。其腳本流程圖如圖 5-7 所示。 圖 5-7 鼠標(biāo)識別的關(guān)鍵腳本實現(xiàn) 1.鼠標(biāo)動作觸發(fā) 本系統(tǒng)所使用的是鼠標(biāo)滑動這一動作來觸發(fā)設(shè)備拾取的功能。鼠標(biāo)識別腳本流程圖中的 Mouse Waiter 只有一個輸出,即 Move Received,它為當(dāng)鼠標(biāo)滑過相應(yīng)物體時有效。 Mouse Waiter 的第一個參數(shù)輸出 Mouse Position 連接的是 2D Picking,它的設(shè)置是為了獲取當(dāng)前鼠標(biāo)的位置。 2.設(shè)備的識別 2D Picking、 Is In Group 以及圖像和名稱的顯示是物體識別過程用到的模塊。當(dāng) 2D Picking 點選物體后,便把點選的 3D 物體傳送給了 Is In Group,通過它判斷是不是選擇其相應(yīng)的物體,如果是的話,激活其后邊相應(yīng)的 顯示信息 ,包括把名字傳給 Text Display 使其顯示物體的名字,同時也顯示一個綠色的小圓圈。 3.圓圈提示及文字的顯示 綠色小圓圈是在 Text Display 中設(shè)置其 Text 為 O,文字的 Size 為 30, Color為綠色。 Op 的屬性設(shè)置為 Addition,其作用是為字體的顯示做一個 偏移,目的是為了使顯示的文字顯示在小圓圈的右邊。綠色小圓圈的 Text Display 的 Offset 的參數(shù)輸入為前面鼠標(biāo)位置的參數(shù)輸出,即最后一個 Subtracti

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論