版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于flex的開源3d引擎1 papervision3d三維引擎1.1 papervision3d引擎組成1.2 papervision3d各類之間關系2 panosalado全景圖像顯示引擎2.1 pansalado的整體構成2.2 panosalado引擎中的核心類隨著電腦硬件的發(fā)展,在人們對視覺感官要求越來越高,flash作為當今一款主流的web插件,人們對它能夠實現(xiàn)商業(yè)應用級絢麗高效三維顯示也越發(fā)期待,但是簡單、特定的三維顯示不僅非常難以適應多變的應用場合、同時也在實現(xiàn)過程中浪費了大量的人力。使用actionscript語言編制flash播放器內(nèi)置的三維引擎技術成為大家的共識,現(xiàn)在國內(nèi)
2、外已經(jīng)有多種actionscript三維引擎誕生,比較流行的主要有:papervision3d、alternativa 3d、away3d、sandy 3d以及國內(nèi)的newx3d。其中以papervision3d最為出名,而且它在實際項目中往往有上佳的表現(xiàn)。1 papervision3d三維引擎papervision3d是一個遵循mit(麻省理工大學)協(xié)議的開源3d引擎,使用actionscript語言編制。papervision3d三維引擎自從2008年3月份開源以來經(jīng)過兩年的持續(xù)改進,現(xiàn)在已經(jīng)達到了三維引擎的基本功能,擁有包括:number3d、numberuv、matrix3d等各種基礎
3、數(shù)據(jù)類、3d視窗類、3d容器類、3d攝像機類、紋理材質(zhì)類、各種渲染效果類、模型文件加載顯示類等三維引擎模塊。得益于actionscript 3.0計算性能的改進,papervision3d在顯示三維效果時效率有了很大的提高,已經(jīng)可以滿足普通三維場景的應用,特別是其支持直接導入標準的dae和ase三維模型文件,這意味著在創(chuàng)作三維場景時可以直接使用大部分專業(yè)3d工具制作出來的模型,從而可以大大提高開發(fā)效率,降低系統(tǒng)運算時的cpu開銷。1.1 papervision3d引擎組成papervision3d主要由7個包組成:core核心包,geom包,cameras包,scenes包,event包,ma
4、terial包,object包。各個包的構成如下:core核心包number3d類:3d坐標系中的值類型定義;numberuv類:uv坐標系中的值類型定義;matrix3d類:4×3矩陣定義,矩陣算法操作定義;displayobject3d類:表示場景中的3d對象(也包括攝像機和其目標),并提供對象基本操作函數(shù);displayobjectcontainer3d類:displayobject3d容器的所有對象的基類,每個displayobjectcontainer3d對象有自己子容器列表;cameraobject3d類:所有攝像機的基類;sceneobject3d類:所有場景的基類場景
5、是放置物體的地方,它包含3d環(huán)境場景管理所有渲染的物體,它擴展了displayobjectcontainer3d類來分配顯示物體sceneobject3d是抽象基類;geometryobject3d類:包含幾何對象的類;materialobject3d類:所有材質(zhì)的基類。geom包vertex2d類:2d頂點數(shù)據(jù)定義;vertex3d類:3d頂點數(shù)據(jù)定義;mesh3d類:創(chuàng)建和顯示由頂點和三角形組成的3d物體;face3d類:渲染線性采樣的紋理貼圖的三角形,也支持顏色填充和輪廓線。cameras包camera3d類:用于創(chuàng)建及操作可觀察目標對象周圍景物的攝像機對象;freecamera3d類:
6、用于創(chuàng)建及操作可隨指定方向進行觀察的活動攝像機對象。scenes包scene3d類:用于創(chuàng)造在同一容器中渲染三維可視環(huán)境的舞臺;moviescene3d類:用于創(chuàng)造在同一容器中渲染三維可視環(huán)境的舞臺,支持通過movie的方式。events包fileloadevent類:模型文件導入時事件傳遞類。materials包bitmapmaterial類:創(chuàng)建使用bitmapdata對象的紋理;colormaterial類:創(chuàng)建使用單顏色的紋理;wireframematerial類:創(chuàng)建使用切線的紋理;bitmapassetmaterial類:創(chuàng)建使用存放在bitmap庫中的樣板的紋理;bitmapfi
7、lematerial類:創(chuàng)建使用外部導入的bitmap文件類型的紋理;moviematerial類:創(chuàng)建使用存在的movieclip實例的貼圖,該紋理可以是動畫的或者透明的。movieclip實例的當前的縮放和顏色值將會被使用,但旋轉則會被舍棄;videostreammaterial類:繼承自moviematerial類,不同在于該類可以使用流媒體的movieclip;movieassetmaterial類:繼承自moviematerial類,創(chuàng)建使用存放在movie庫中的樣板的紋理;materialslist類:材質(zhì)列表。objects包plane類:繼承自mesh3d類。創(chuàng)建并顯示長方形對
8、象;paperplane類:繼承自mesh3d類,主要用來測試一個對象的方向。1.2 papervision3d各類之間關系場景類的父類與子類的關系如圖1:圖1 scene類的繼承關系材質(zhì)類是可顯示的特殊對象,單獨從eventdispatcher中繼承,材質(zhì)類根據(jù)材質(zhì)的不同特性分為了線性材質(zhì)、貼圖材質(zhì)與顏色材質(zhì)。貼圖材質(zhì)又根據(jù)貼圖的來源與特性分為了moviematerial、bitmapfilematerial、bitmapassetmaterial以及materiaslist,它的繼承關系如圖2圖2 材質(zhì)類的繼承關系papervision3d引擎的的頂級類(頂級類就是不需要導入的類)包括nu
9、mber3d、number2d、vertex2d、vertex3d、face3d、matrix3d,這些為三維坐標下中的基本變量類型。還有fileloadevent用于支持模型、材質(zhì)文件的處理。其他幾個頂級類為從flash的eventdispatcher繼承,分別為geometryobject3d、materialobject3d、displayobjectcontainer3d,這三種頂級類擴展出其他三維引擎所需的豐富組件類.papervision3d中頂級類的關系如圖3所示:圖 3 papervision3d的頂級類papervision3d中的所有能夠顯示的物體都是對象,這些對象的父類是
10、displayobject3d,displayobject3d類中包含了三維對象基本的屬性值、操作函數(shù)。通過繼承,cameraobject3d擁有camera3d與freecamera3d子類,兩者分別用于固定位置與可活動位置的攝像機控制。collada類專門負責解析、顯示collada標準三維模型。vertices3d類衍生出眾多的顯示組件,方便了系統(tǒng)的開發(fā)。顯示類繼承關系如圖4。圖4 papervision3d顯示類繼承關系圖2 panosalado全景圖像顯示引擎panosalado是一個基于360度全景視圖的國外開源flash引擎,該引擎可以塑造出球形,圓柱體,正方體,平面的360度全
11、景,還能導入qtvr視頻,這個開源引擎是基于前一小節(jié)提到的開源引擎papervision3d,它對papervision3d引擎在3維空間全景展現(xiàn)方面做了極大的擴展。而且使得利用它開發(fā)能夠像flash和flex開發(fā)一樣簡潔,里面所有控件以及功能都能夠在該引擎中找到100%的源碼,所有源碼也沒有依賴任何商業(yè)組件。該引擎開發(fā)存在著極大的自由,對于as3.0編程熟手完全可以涉及該引擎內(nèi)部進行編程,即使as3.0新手亦可通過調(diào)用引擎內(nèi)部api,在配置文件中配置自己的插件集成進去。在作者的系統(tǒng)中,將對整個panosalado引擎進行修改擴展,從而能夠使得修改后的引擎符合系統(tǒng)的需求,同時由于panosal
12、ado引擎是完全基于papervision3d的,所以,對于有些功能,將直接使用papervision3d的api函數(shù)進行實現(xiàn)。2.1 pansalado的整體構成pansalado基本是對papervision3d的擴展應用,雖然papervision3d功能很強大,但是一直沒有一個基于flex的3d引擎專門用于構造虛擬空間的,panosalado的出現(xiàn),正好填補這一空白。pansalado引擎對于實現(xiàn)虛擬空間的構成,很有自己的特色,是通過配置xml實現(xiàn)專門的模塊的導入,所有關于全景信息以及顯示樣式信息通過xml配置好,然后經(jīng)過moduleloader類所生成的moduleloader.sw
13、f讀取名為panosalado的xml文件,然后關聯(lián)到相關外部資源,最后完成資源導入生成一個簡單的全景瀏覽系統(tǒng),對于整個全景系統(tǒng)一些界面上的擴展,也可以以插件的形式通過xml配置,集成入系統(tǒng)。整個關聯(lián)過程如圖5所示圖 5 panosalado系統(tǒng)的整體結構一個簡單的xml配置示例如下:<?xml version="1.0" encoding="utf-8"?> <panosalado>
14、; <layer id="meter" url="plugins/panosaladoloadmeter.swf" depth="1"/> <layer id="panosalado" url="panosalado.swf" depth="0" > <
15、;spaces onstart="loadspace:space1"> <space id="space1"> <sphere id="dark_blue_room_pano_preview">
16、 <file>images/dark_blue/dark_blue_prev.jpg</file> </sphere>
17、60; </space> </spaces> </layer> </panosalado> 其中每個layer代表一個插件,panosalado的核心實現(xiàn)也是作為一
18、個插件配置入panosalado.xml中的,其中id標識每個獨立插件,而depth屬性則是說明顯示層次的。如果是panosalado部分,里面子配置部分則說明的是采用什么方式進行顯示全景以及所關聯(lián)到的外部資源,如這里是用sphere球體的方式。利用xml配置文件和模塊分塊導入的方式,使得panosalado引擎在修改和擴展方面顯的更為靈活。2.2 panosalado引擎中的核心類zephyr .camera包:pscamera3d 類:pscamera3d 繼承于papervision3d中的camera3d類,作用相當于用戶的“眼睛”,是用戶觀看全景圖的媒介。zephyr .object包:cube類:cube類繼承于papervision3d中的trianglemesh3d類,主要是實現(xiàn)圖片映射到正方體中展現(xiàn)全景效果。cyliner類:cyliner類繼承于papervision
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)大全【人事管理】
- 三角形的面積推導課件
- 第4單元 民族團結與祖國統(tǒng)一 測試卷-2021-2022學年部編版八年級歷史下冊
- DBJT 13-317-2019 裝配式輕型鋼結構住宅
- 《電鍍錫工藝學》課件
- 2024年大學生攝影大賽活動總結
- 《焊接基本知識》課件
- 中小學家長會122
- 美術:源起與影響
- 醫(yī)療行業(yè)專業(yè)技能培訓體會
- ××領導班子及成員分析研判報告(模板)
- 08S305-小型潛水泵選用及安裝圖集
- 視頻監(jiān)控室值班記錄表
- 歌曲《梁?!泛喿V完整版
- 四川2020版清單定額
- 教材編寫工作總結
- 企業(yè)員工上下班交通安全培訓(簡詳共2份)
- 城市高密度建成區(qū)合流制溢流污染系統(tǒng)研究-黃孝河機場河水環(huán)境綜合治理項目實踐
- word 公章 模板
- T∕ZSQX 008-2020 建設工程全過程質(zhì)量行為導則
- ISO-IEC17025-2017實驗室管理體系全套程序文件
評論
0/150
提交評論