原創|其它|編輯:郝浩|2012-09-07 15:42:18.000|閱讀 1090 次
概述:上一個教程中介紹了HOOPS的背景和編譯相關的內容,這篇文章將要向大家介紹HOOPS的幾大主要模塊。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
上一個教程中介紹了HOOPS的背景和編譯相關的內容,這篇文章將要向大家介紹HOOPS的幾大主要模塊。
上一教程請參見:《HOOPS 3D可視化入門教程一:簡介及安裝部署》
下一教程請參見:《HOOPS 3D可視化入門教程三:基本概念和數據結構》
HOOPS是一個模塊兒化的開發套件,各個模塊功能專一,模塊之間的互操作也處理得不錯。模塊兒化是任何一個大型的開發工具的必由之路,好比國家大了必須劃分成多個省一樣。在我這個系列文章中將會涉及到的模塊主要有:3dGS,MVO,GUI,Stream還有Modeling Kernel Bridge。它們之間的關系如下圖所示。
3dGS是HOOPS最為核心的模塊,其負責HOOPS的繪圖及數據管理任務。它屏蔽了不同底層繪圖庫(OpenGL、DirectX等)接口的不同,向上提供一套統一的、更加直觀且便于調用的接口。3dGS使用純C語言編寫,HOOPS優秀的跨平臺以及跨開發工具的特性也正是基于3dGS這一模塊。此外,3dGS還針對特定的底層繪圖庫有相應的優化,例如針對OpenGL的紋理渲染,3dGS就做了充分的算法優化,而這種優化如果要直接在OpenGL上做,則需要編程人員具有非常老練的技術,可謂非斲輪老手不可為。我曾經親自做過測試,拿一個用HOOPS編寫的虛擬現實渲染程序和師兄用OpenGL寫的差不多的程序對比,其速度要快上4倍左右(fps,即每秒幀數)。而該師兄在我眼里已經是編程好手了。
MVO是HOOPS另一個重要模塊,而且將是我們實際編程中接觸最多的一個模塊。MVO分別是Model、View、Operator的縮寫,即文檔、視圖和操作算子。MVO有時候也稱為MVC,這個C是Controler的縮寫。相信用MFC開發過的同學對MVO或者MVC應該不會陌生,CDocument和CView正是M和V的具體化身。至于O么,在MFC里面則分散在各種消息映射里,此處且不多提,在后續文章中用到的時候可順便說明。
3dGS和MVO什么關系?它倆的關系跟Windows API和MFC的關系是一樣的。做過Windows C/C++編程的人都知道,Win API實際上可以實現Windows上編程的所有功能(這個不難理解,因為所有Windows上的程序最終都是轉化成對若干個最底層的Win API的調用),但是大家也知道用Win API直接編寫大型程序是不現實的,因為這種C風格的程序接口在面對龐大的工程需求時完全是心有余而力不從。所以后來微軟推出了MFC,實際上是在面向對象和開發框架的基礎上對底層Win API的封裝。3dGS和MVO也是一樣。實際上用3dGS可以實現HOOPS上的所有功能,但是幾乎沒有人會完全用3dGS去做項目開發(搞研究自己折騰的人除外)。MVO是對3dGS的上層封裝,提供了更加友好直觀的編程接口,從而使得HOOPS能夠適應大型程序開發的需要。
Stream主要負責HOOPS的I/O模塊,處理數據流的讀寫和控制。HOOPS特有的文件類型主要有兩種,分別是字符格式的hmf和二進制格式的hsf。hsf具有非常優秀的特點,它具有高壓縮比,支持流式加載,同樣的模型,用hsf存儲,文件大小僅為常見格式的五分之一左右。流式加載的能力使得HOOPS能夠很好地勝任B/S架構的程序。對于大型模型來說,流式加載是非常關鍵的,它使得觀看者可以像收看流式視頻那樣,邊下載邊查看模型,而不必等到整個模型都下載完畢才能夠打開瀏覽。
如果說3dGS、MVO、Stream等模塊處理的是和繪圖相關的邏輯命令,那么真正把HOOPS包裝成一個可執行程序并且在Windows等窗口界面中繪制出圖像來則是GUI模塊的功勞。HOOPS可以寄宿于多種GUI開發庫中,包括MFC、Qt、X11、WPF等等。支持多種GUI框架也是保證HOOPS跨平臺能力的重要條件。在最新的版本中,HOOPS更隨潮流,添加了在iOS平臺上的支持。不過作為一名業余Android開發者,我非常期待HOOPS能夠在不遠的將來增加在該平臺上的兼容。
本文最后介紹的一個模塊是Bridge。上篇文章中我們也提到了,HOOPS本質上只是一個三維圖形渲染框架,雖然它有一定的建模能力,但是估計沒有人會完全用它來進行復雜模型設計。而實體造型是幾何建模引擎所擅長的,因此在用HOOPS進行CAD/CAE/CAM開發時常會搭配一個幾何造型引擎,所謂尺有所短寸有所長,在各領域選擇合適的工具對于大型系統來說是非常必要的。HOOPS可以和多個實體造型內核相連接,例如Spatial的ACIS和Siemens的Parasolid。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網