發表於2024-11-26
Vizard軟件是近年來不斷受到國內外專業人士推崇的虛擬現實開發平颱。它不但具有免費試用、免費在綫技術支持等應用優勢,還具有功能完備、適閤多種應用環境、支持多種交互設備等技術特點。因此,學習該軟件能夠在較短時間內掌握虛擬現實應用的相關開發技術,並可進行快速應用。
本書首先簡單介紹Vizard軟件的功能特點和開發技巧,然後詳細介紹該軟件的各個功能模塊,具體包括三維模型的操作,任務流程的控製,人物角色的控製,圖形用戶界麵,場景,窗口和虛擬視點,紋理貼圖和視音頻素材,著色器編程,物理引擎,硬件交互設備,網絡控製等。本書最後還給齣基於該軟件開發齣的幾個綜閤實例。針對Vizard軟件中的每一個功能模塊,本書都提供詳細的程序案例和源代碼,以幫助讀者深入理解它們的使用方法。
值得一提的是,本書在介紹Vizard軟件的每一個功能模塊時,都詳細解釋瞭與其相關的圖形學原理。因此,本書既可作為高等院校計算機應用技術、數字媒體技術等相關專業的教材,也可作為虛擬現實技術、人機交互技術等從業人員的自學讀物和參考用書。
第1章Vizard虛擬現實開發平颱簡介
1.1Vizard軟件的特點
1.1.1Vizard軟件的開發特點
1.1.2Vizard軟件的功能特點
1.2Vizard軟件的安裝
1.3Vizard軟件的開發環境
1.3.1開發環境的自定義設置
1.3.2Python工具包的安裝
1.3.3腳本文件的編寫
1.3.4代碼的瀏覽與定位
1.3.5腳本文件的運行與調試
1.4Vizard軟件的開發基礎
1.4.1基本開發流程
1.4.2相關技術概念
1.5一個簡單的開發實例
第2章Python語言編程基礎
2.1Python語言的基本概念
2.1.1Python語言的特點
2.1.2Python編程的注意事項
2.1.3Python程序的執行模式
2.2變量、錶達式和語句
2.2.1變量和類型
2.2.2變量名和關鍵字
2.2.3語句
2.2.4錶達式
2.2.5運算符和操作數
2.2.6運算的順序
2.2.7字符串操作
2.2.8注釋
2.3函數和條件錶達式
2.3.1函數
2.3.2條件錶達式
2.4高級數據類型
2.4.1字符串
2.4.2列錶
2.4.3元組
2.4.4字典
2.5麵嚮對象技術
2.5.1類和對象
2.5.2類和方法
2.5.3類的繼承
2.6Python語言的工具包
2.7總結
第3章三維模型的操作
3.1三維模型的文件格式
3.2三維模型的準備
3.2.1三維模型的優化方法
3.2.2OSG模型的準備
3.2.3Vizard所支持的OSG模型特徵
3.3三維模型的基本操作
3.4三維模型的層次關係與坐標係統
3.5三維模型的高級操作
3.6OSG模型文件內部的層次關係及其操作
3.7文本模型
3.8在腳本程序中創建三維模型
3.9其他特殊模型
第4章任務流程的控製
4.1vizact庫
4.1.1簡單示例
4.1.2vizact庫的基本使用方法
4.1.3vizact庫的高級應用
4.1.4小結
4.2物體之間的鏈接
4.2.1鏈接的基本概念
4.2.2鏈接的高級應用
4.2.3鏈接對象的矩陣操作符
4.2.4路徑動畫
4.3viztask庫
4.3.1簡單示例
4.3.2Task對象的基本概念
4.3.3Task對象的應用分析
4.3.4小結
4.4Director庫
4.5Timer工具
4.5.1vizact庫中的Timer控製方法
4.5.2Event庫中的Timer控製方法
4.5.3利用麵嚮對象方法封裝Timer功能
4.6Event庫
4.6.1Event庫的應用方法
4.6.2用戶自定義事件
4.6.3常用標準事件參考
4.6.4路徑動畫中的事件機製
4.6.5vizact庫中的相關函數
4.7其他流程控製工具
4.8各種流程控製方法的分析
第5章人物角色的控製
5.1人物角色的基本概念
5.2人物角色的程序控製
5.2.1人物角色的基本控製
5.2.2基本控製的程序舉例
5.2.3人物角色的骨骼控製
5.2.4骨骼控製的程序舉例
5.2.5小結
5.3角色模型的製作
5.3.1角色建模的注意事項
5.3.2Cal3D文件導齣的總體說明
5.3.3Cal3D文件導齣的詳細步驟
5.3.4編寫CFG索引文件時的注意事項
5.4麵部錶情的控製
5.5vzf頭部模型的製作方法
5.6總結
第6章圖形用戶界麵
6.1一個簡單示例
6.2GUI對象的基本操作
6.3GUI對象的布局
6.4利用畫布管理GUI對象
6.5通用對話框
6.6其他GUI工具
第7章場景、窗口和虛擬視點
7.1虛擬場景、虛擬視點和顯示窗口之間的關係
7.2虛擬視點的操作方法
7.3顯示窗口的操作方法
7.4顯示窗口的立體效果
7.5應用程序窗口的操作方法
7.6總結
第8章紋理貼圖和視音頻素材
8.1三維模型的外觀
8.2三維模型的紋理操作
8.2.1紋理的基本操作
8.2.2多重紋理
8.2.3環境映射
8.2.4程序渲染的紋理
8.2.5紋理操作的總結
8.3場景渲染的特殊處理技巧
8.3.1全景圖的瀏覽
8.3.2非真實感的繪製
8.3.3繪製序號和深度偏移
8.3.4半透明效果的處理機製
8.4視音頻操作
8.5燈光的操作
8.5.1光源的基本操作
8.5.2光源的屬性
8.5.3多光源設置
8.5.4光源的投影效果
第9章著色器編程
9.1著色器編程的基本方法
9.1.1著色器編程的步驟
9.1.2著色器編程舉例
9.2vizfx庫簡介
9.3vizfx庫提供的著色器特效
9.3.1與光照相關的功能
9.3.2與投影特效相關的功能
9.3.3用戶自定義的effect對象
9.3.4用戶自定義的effect對象舉例
9.4postporcess函數庫
9.4.1畫麵後處理
9.4.2畫麵後處理
第10章物理引擎
10.1物理引擎的基本概念
10.1.1物理引擎的應用步驟
10.1.2物理形狀的設置方法
10.1.3物理引擎的基本應用舉例
10.2三維模型的物理屬性和人為外力
10.3復雜物理形狀和碰撞事件的響應
10.4關節裝置的使用
10.4.1關節裝置的類型
10.4.2關節裝置的受力
10.5物理引擎的其他注意事項
10.6總結
第11章硬件交互設備
11.1普通交互設備
11.1.1鼠標的控製
11.1.2鍵盤的控製
11.2特殊交互設備概述
11.3運動跟蹤設備的一般用法
11.4運動跟蹤設備的舉例說明
11.4.1遊戲設備
11.4.2虛擬跟蹤設備
11.4.3PolhemusFastrak設備
11.5力反饋設備的用法
11.6特殊顯示設備的用法
11.7視頻采集設備的用法
11.8基於VRPN的硬件交互
11.8.1基於VRPN的通用交互方法
11.8.2WorldVizPPT設備的訪問方法
11.9三維交互的輔助工具包
11.10硬件交互的整體解決方案
11.10.1Vizconnect工具的功能介紹
11.10.2Vizconnect工具的配置舉例
第12章網絡控製
12.1端到端的網絡連接
12.2端到端的網絡連接舉例
12.3viznet函數庫
12.4客戶端/服務器的網絡連接舉例
12.5集群繪製
12.5.1集群繪製的基本概念
12.5.2集群繪製的編程步驟
12.6洞穴虛擬現實係統
第13章其他輔助功能
13.1文件的存取
13.2軟件環境的全局配置
13.3矩陣運算函數庫
13.4可執行文件的發布
13.5插件開發工具
第14章綜閤應用實例
14.1麵嚮對象的編程技巧
14.2科學實驗的程序設計
14.3交互遊戲的程序舉例
14.4在綫程序實例說明
第5章人物角色的控製
5.1人物角色的基本概念
1.人物角色的類型
人物角色是虛擬場景中的一類特殊三維模型,它一般作為真實用戶在虛擬場景中的扮演者,能夠按照用戶的意圖完成各種變形動作效果,從而使用戶達到身臨其境的感覺。這就要求,人物角色模型不但具有人體的幾何外形,還應該封裝有真實人物的動畫特徵,如行走、坐臥、跑跳、駕駛等。在某些應用場閤中,角色模型還可以錶現為各種動物或植物。
Vizard軟件支持3種文件類型的人物角色,它們對應瞭3種不同的動畫封裝方式。第一種類型是普通的三維模型文件格式,如osgb、wrl、3ds等文件格式。用戶可以使用3dsMax軟件創建這些三維模型。首先,使用關鍵幀方法為三維模型設定動畫效果,或者使用運動捕捉設備記錄真實人體的動作效果並賦給三維模型;然後,將這些模型導齣為osgb、wrl、3ds等文件格式。此時,關鍵幀動畫參數也會被保存在模型文件中。
上述文件格式存在著一定的局限性:當使用Vizard軟件將這些模型導入到虛擬場景中後,它們所封裝的動畫效果將立即被執行,並且被重復不斷地執行,永不終止。這樣一來,用戶沒辦法將多個動作封裝在一個三維模型中並且選擇執行某個特定的動作,更沒有辦法控製動作執行的時機。因此,不提倡使用這種文件格式存儲人物角色。
第二種類型是Cal3D角色模型,它是人物角色專用的文件格式。用戶可以將多個動作封裝在一個Cal3D人物角色中,並且可以隨時執行任意一個動作。Vizard軟件針對該文件格式的人物角色提供瞭功能強大的函數庫,並且免費提供瞭幾個模型示例,因此本章重點介紹這種人物角色的操作方法。除瞭免費的角色模型,WorldViz公司還針對該文件格式推齣瞭百餘種收費的角色模型,每個角色模型都封裝瞭數十種動作效果。另外,用戶也完全可以製作齣自己需要的Cal3D人物角色模型。
第三種類型是Vizard軟件提供的實時角色庫(VizardLiveCharacters)。該角色庫的功能是,直接利用運動捕捉設備作為交互手段實時控製虛擬角色的動畫效果。也就是說,真實用戶穿戴上運動捕捉設備,該設備與計算機相連,那麼當用戶運動時,Vizard程序中的虛擬角色將會發生相應的運動。與前兩種類型相比,這種角色庫提供瞭完全逼真的實時交互效果。該實時角色庫沒有免費示例,用戶可以訪問WorldViz公司網站瞭解詳細的信息。
2.人物角色的Cal3D文件格式
Cal3D文件格式是Vizard軟件重點支持的人物角色文件格式。一個完整的Cal3D角色模型包含如下5個部分。
(1)骨骼描述文件:它定義瞭角色模型的骨骼結構,如脊椎骨、頸骨、鎖骨等。它具體體現為一個.csf文件。
(2)動作描述文件:它描述瞭角色模型能夠完成的各種動作效果。每個動作效果對應著一個.caf文件。
(3)幾何描述文件:它描述瞭角色模型的幾何外形,具體體現為一係列的.cmf文件。每一個文件對應著人物角色幾何形狀的某個部分,例如,頭部對應一個.cmf文件;四肢對應一個.cmf文件;身體對應一個.cmf文件等。
(4)材質描述文件:它描述瞭角色模型的材質參數和紋理貼圖,具體體現為一係列的.crf文件。
(5)索引文件:它描述瞭上述四類文件的路徑索引及功能標簽,具體體現為一個.cfg文件。
可見,一個Cal3D角色模型不是一個文件,而是包含瞭上述5個部分的多個文件。對於一個Cal3D角色模型來講,索引文件(.cfg文件)和骨骼描述文件(.csf或.csfx文件)是唯一的,其他描述文件的個數均不唯一。另外,索引文件是文本格式,而其他描述文件為二進製格式。
對於一個Cal3D角色模型來講,索引文件(.cfg文件)中存儲瞭其他各個描述文件的路徑索引和功能標簽。用戶在編程時,主要針對索引文件進行操作。下麵以一個具體的角色實例來分析索引文件的存儲格式。
圖5.1是Vizard軟件免費提供的一個Cal3D角色模型的索引文件。如果用戶安裝瞭Vizard軟件,那麼該文件的存儲路徑為“WorldViz\Vizard5\resources\vcc_male.cfg”。圖5.1是使用文本編輯器打開該文件後的顯示內容。該文件的存儲結構具有如下規則。
圖5.1cfg文件格式舉例
(1)如果某一行的起始字符為“#”,那麼該文本行是注釋行,沒有語法含義。
(2)path為路徑關鍵字。它的取值錶示瞭其他四類文件(骨骼描述文件、動作描述文件、幾何描述文件、材質描述文件)相對於當前.cfg文件的存儲路徑。本例中的相對存儲路徑為“vcc_male/”。
(3)scale為縮放關鍵字。它的取值錶示瞭角色模型的縮放比例。
(4)flip_texture為貼圖翻轉關鍵字。它的取值為0或1,錶示瞭貼圖內容是否需要上下翻轉。
(5)第11行的skeleton為骨骼關鍵字。它的取值錶示瞭骨骼描述文件的名稱。
(6)第14行至第20行的內容描述瞭人物角色的幾何外形。其中,mesh為網格關鍵字。它的取值錶示瞭幾何描述文件的名稱。每一個mesh關鍵字的後麵都可以跟隨若乾行的morph關鍵字,它錶示瞭該幾何外形能夠産生的變形效果。在圖5.1中,第14行錶示頭部幾何外形,第15、16、17行錶示該幾何外形能夠産生的變形效果,分彆為眨眼、皺眉、張嘴。第19行錶示瞭除頭部外的其他幾何外形,它沒有變形效果。
(7)第22行至第36行用於描述角色模型能夠産生的動作效果。其中,animation是動作關鍵字,它的每一個取值錶示瞭一個動作描述文件。在圖5.1中共有15個取值,錶示該人物角色能夠産生15種動作。
(8)第39至第40行用於描述角色模型的材質貼圖。其中,material是材質關鍵字,它的每一個取值錶示瞭一個材質描述文件。在圖5.1中共有兩個取值。
(9)第42至第49行是附加描述信息。它的功能是,為一些重要的信息提供變量名。在圖5.1中,頭部骨骼的變量名為head_bone,它的取值為Bip01Head;頸部骨骼的變量名為neck_bone,它的取值為Bip01Neck。有瞭這些變量名之後,在對角色模型進行骨骼操作時,隻需調用這些變量名即可,無須記住具體的取值(骨骼的操作見5.2節)。另外,變量名head_mesh的取值為頭部幾何外形的描述文件,該變量用於為人物角色替換頭部幾何外形(具體操作方法見5.4節);變量名speak_morph的取值為張嘴變形網格所對應的描述文件,該變量用於使人物角色的嘴巴産生張閤效果從而擬閤音頻文件(具體操作方法見8.4節);變量名walk_animation用於描述行走動作的索引號,變量名walk_speed用於描述行走動作的速度,它們的設置與動作定義函數vizact.walkTo()相關;變量名run_animation用於描述跑步動作的索引號,變量名run_speed用於描述跑步動作的速度,目前版本的Vizard函數庫還沒有使用這兩個設置。
……
前言
虛擬現實(VirtualReality,VR)技術起源於20世紀60年代。它的目標是:以計算機技術為核心,在視覺、聽覺、觸覺等方麵創造齣逼真的虛擬環境;用戶藉助必要的裝備與其進行交互,從而獲得身臨其境的感受和體驗。VR技術涉及心理學、控製學、計算機圖形學、數字圖像處理、計算機視覺、數據庫設計、實時分布係統、電子學和多媒體技術等多個學科,具有較強的綜閤性和交叉性。
由於它的綜閤性和不可替代性,世界各國均重視虛擬現實技術的戰略研究。我國2006年頒布的《國傢中長期科技規劃綱要(2006—2020)》也將虛擬現實技術列為信息領域優先支持的3個方嚮之一。近十幾年來,隨著信息技術的不斷發展,與虛擬現實相關的各個學科都積纍瞭豐富的成果,這些成果極大地推動瞭虛擬現實技術的發展和應用。目前,虛擬現實技術已被廣泛應用於城市規劃、醫學、娛樂與藝術、衛星與航天、室內設計、産品展示、教育等各個領域。
在最近兩年,VR技術已經進入瞭一個全新的發展時期。例如,在交互硬件方麵,OculusRift頭盔顯示器、HTCVive頭盔顯示器、LeapMotion體感控製器等各種價格低廉的VR設備層齣不窮;在産業發展方麵,我國各級政府部門已經紛紛開始籌備VR産業基地。可見,VR研究和應用正在嚮高端和民用兩個方嚮拓展,VR技術已經開始普及化和商業化。可以預見,在不遠的未來,VR相關技術不僅會帶來更大規模的技術革命,還會推動商業模式不斷推陳齣新,甚至直接影響人們的思維模式和生活方式。
虛擬現實技術的推廣和應用,離不開專業開發平颱的支持。目前,相對成熟的虛擬現實開發平颱並不多,而僅有的一些知名虛擬現實平颱(如Unity、Unreal等)均是從遊戲領域衍生而來的。本書所介紹的Vizard虛擬現實開發平颱來自於美國的WorldViz公司。該公司起源於美國加利福尼亞大學虛擬環境與行為研究中心。該公司推齣的Vizard引擎最初被應用於心理學研究,然後經多個版本的迭代改進,逐漸被商業化為成熟的VR引擎。
近年來,Vizard軟件一直活躍在企業級的虛擬現實應用領域。目前,Vizard軟件的企業級用戶已經有數韆傢,其中包含瞭全球頂尖的科研機構和世界500強企業。國內外的眾多高校和研究機構也都相繼應用該軟件展開科學研究。其中,國外的研究機構包括加利福尼亞大學聖巴巴拉分校虛擬環境與行為研究中心、邁阿密大學心理與計算機科學實驗室、加拿大滑鐵盧大學心理係、斯坦福大學信息學院虛擬人機交互實驗室等;國內的研究機構包括中國科學院心理研究所、北京師範大學心理 Vizard虛擬現實開發指南(清華科技大講堂) 下載 mobi epub pdf txt 電子書 格式
Vizard虛擬現實開發指南(清華科技大講堂) 下載 mobi pdf epub txt 電子書 格式 2024
Vizard虛擬現實開發指南(清華科技大講堂) 下載 mobi epub pdf 電子書評分
評分
評分
評分
評分
評分
評分
評分
Vizard虛擬現實開發指南(清華科技大講堂) mobi epub pdf txt 電子書 格式下載 2024