siv06可視化工具簡介_第1頁
siv06可視化工具簡介_第2頁
siv06可視化工具簡介_第3頁
siv06可視化工具簡介_第4頁
siv06可視化工具簡介_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

空間信息可視化工具山東科技大學(xué)地理系韓李濤工具類型Java3DDirect3DSVGXMLGraphicsfortheWeb

SVG是英語「ScalableVectorGraphics」的簡寫??梢苑g為「可縮放的矢量圖型」。它是基于XML標(biāo)記語言來描述二維矢量圖型的一種圖形格式。SVG由W3C制定,是一個(gè)開放標(biāo)準(zhǔn)。SVG是W3C在2000年發(fā)布的一種開放的標(biāo)準(zhǔn)文本式矢量圖形描述語言。使用SVG可以在網(wǎng)頁上顯示出各種各樣的高質(zhì)量的矢量圖形,包括許多圖像處理中常見的功能,如圖形、文字、動畫、顏色、濾鏡效果等。最關(guān)鍵的是SVG完全用普通文本來描述。也就是說,這是一種專門為網(wǎng)絡(luò)而設(shè)計(jì)的基于文本的圖像格式。并且SVG基于XML(ExtensibleMarkupLanguage),所以可擴(kuò)展性很強(qiáng),能夠描述任意復(fù)雜的圖像。Flexflex通常是指AdobeFlex,是最初由Macromedia公司在2004年3月發(fā)布的,基于其專有的MacromediaFlash平臺,它是涵蓋了支持RIA(RichInternetApplications)的開發(fā)和部署的一系列技術(shù)組合。原因:一是為了迎合更多的developers。Flash天生是為了designer(設(shè)計(jì)者)設(shè)計(jì)的,界面還有flash的動畫概念和程序開發(fā)人員格格不入,為了吸引更多的jsp/asp/php等程序員,Macromedia推出了Flex。二是順應(yīng)標(biāo)準(zhǔn):用非常簡單的.mxml來描述界面給jsp/asp/php程序人員使用.(x/d)html非常相似,而且mxml更加規(guī)范化、標(biāo)準(zhǔn)化。Flex——RIARIA(RichInternetApplications)富互聯(lián)網(wǎng)應(yīng)用,具有高度互動性、豐富用戶體驗(yàn)以及功能強(qiáng)大的客戶端

RIA具有的桌面應(yīng)用程序的特點(diǎn)包括:在消息確認(rèn)和格式編排方面提供互動用戶界面;在無刷新頁面之下提供快捷的界面響應(yīng)時(shí)間;提供通用的用戶界面特性如拖放式(draganddrop)以及在線和離線操作能力。RIA具有的Web應(yīng)用程序的特點(diǎn)包括如:立即部署、跨平臺、采用逐步下載來檢索內(nèi)容和數(shù)據(jù)以及可以充分利用被廣泛采納的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。RIA具有通信的特點(diǎn)則包括實(shí)時(shí)互動的聲音和圖像。

同時(shí)融合網(wǎng)絡(luò)和桌面應(yīng)用程序的特點(diǎn)Flex的技術(shù)框架Flex技術(shù)包括以下幾個(gè)主要技術(shù)框架:1.描述應(yīng)用程序界面的XML語言(MXML);2.符合ECMA規(guī)范的腳本語言(ActionScript),處理用戶和系統(tǒng)的事件,構(gòu)建復(fù)雜的數(shù)據(jù)模型;3.一個(gè)基礎(chǔ)類庫;4.運(yùn)行時(shí)的即時(shí)服務(wù);5.由MXML與ActionScript文件生成swf文件的編譯器。Flash與Flex1.盡管公用ActionScript,但是使用的庫并不完全相同,更合適的說法是兩者使用著兩套具有極大“功能重疊”范圍的庫。2.面向?qū)ο螅篎lash偏向的是美術(shù)動畫設(shè)計(jì)師人員,所以更容易發(fā)揮特效處理的優(yōu)勢,F(xiàn)lex偏向開發(fā)人員,所以容易做出具有豐富交互功能的應(yīng)用程序。3.Flash只能以ActionScript腳本的形式開發(fā);而Flex還可以使用稱作mxml的標(biāo)記語言來描述應(yīng)用的外觀和行為,mxml中可以直接嵌入ActionScript腳本。4.由于第三點(diǎn)而造成的兩者市場定位不同,F(xiàn)lex是面向企業(yè)級的網(wǎng)絡(luò)應(yīng)用程序,F(xiàn)lash則面向諸如平面動畫、廣告設(shè)計(jì)等多媒體展示程序。5.借助FlashLite這一移動設(shè)備上的Flashplayer,F(xiàn)lash可以開發(fā)移動應(yīng)用,F(xiàn)lex則不行。6.Flash的編程模型是基于時(shí)間軸的,F(xiàn)lex的則是基于窗體,雖然它運(yùn)行在網(wǎng)頁里。

ArcGISAPIforFlexArcGISAPIforFlexVRML

VRML是VirtualRealityModelingLanguage的縮寫形式,意思是虛擬現(xiàn)實(shí)造型語言。VRML被稱為繼HTML之后的第二代Web語言,它本身是一種建模語言,也就是說,它是用來描述三維物體及其行為的,可以構(gòu)建虛擬境界(VirturalWorld),可以集成文本、圖像、音響、MPEG影像等多種媒體類型,還可以內(nèi)嵌用Java、ECMAScript等語言編寫的程序代碼。VRML的基本目標(biāo)是建立因特網(wǎng)上的交互式三維多媒體,基本特征包括分布式、三維、交互性、多媒體集成、境界逼真性等。VRML——實(shí)例VRML工具GeoVRMLx3DX3D對地學(xué)建模的支持Geospatial組件中的重要概念,提供地理學(xué)支持的地理學(xué)應(yīng)用的討論。地理學(xué)支持包括如何在某一X3D節(jié)點(diǎn)中鑲?cè)氲乩碜鴺?biāo),支持高精度的地理模型,處理大面積多分辨率地形數(shù)據(jù)集。這些概念將在以下描述。Geospatial組件遵循SpatialReferenceModel(空間建模參考標(biāo)準(zhǔn))2.[I18026]

中定義的約定。Geospatial組件中共包含9個(gè)節(jié)點(diǎn)。以下是定義的節(jié)點(diǎn)。GeoCoordinate

GeoElevationGrid

GeoLocation

GeoLOD

GeoMetadata

GeoOrigin

GeoPositionInterpolator

GeoTouchSensor

GeoViewpoint

Java3DJava3D是Java語言在三維圖形領(lǐng)域的擴(kuò)展,是一組應(yīng)用編程接口(API)。利用Java3D提供的API,可以編寫出基于網(wǎng)頁的三維動畫、各種計(jì)算機(jī)輔助教學(xué)軟件和三維游戲等等。利用Java3D編寫的程序,只需要編程人員調(diào)用這些API進(jìn)行編程,而客戶端只需要使用標(biāo)準(zhǔn)的Java虛擬機(jī)就可以瀏覽,因此具有不需要安裝插件的優(yōu)點(diǎn)。

JAVA3D從高層次為開發(fā)者提供對三維實(shí)體的創(chuàng)建、操縱和著色,使開發(fā)工作變得極為簡單。同時(shí),JAVA3D的低級API是依賴于現(xiàn)有的三維圖形系統(tǒng)的,如Direct3D、OpenGL、QuickDraw3D和XGL等,

JAVA3D的這種體系結(jié)構(gòu)既可以使其開發(fā)的程序“到處運(yùn)行”,又使其能充分利用系統(tǒng)的三維特性。就因?yàn)镴AVA3D擁有如此的強(qiáng)大的三維能力,使得它在網(wǎng)絡(luò)世界,特別是在游戲中能大展姿彩。

Java3D作為一名3D圖形開發(fā)者,無論是游戲開發(fā)、科學(xué)計(jì)算,還是MCAD、生物技術(shù),還是虛擬現(xiàn)實(shí)(VirtualReality)、仿真技術(shù),Java3D都是很優(yōu)秀的選擇。理由如下:

1)基于Java技術(shù),秉承了Java的一切優(yōu)點(diǎn),具有優(yōu)秀的、豐富的UI(Swing、AWT)和Web發(fā)布能力(通過JavaPlug-In)。

2)作為第四代3D圖形API,Java3D簡單易用,不需要多深厚的計(jì)算機(jī)圖形學(xué)功底和學(xué)習(xí)曲線,開發(fā)者便能開發(fā)出很專業(yè)的動畫、仿真和交互。因?yàn)樗梃b了VRML的思想,所以學(xué)起來很輕松(熟悉VRML的開發(fā)者,如對Java還熟悉的,則會發(fā)現(xiàn)Java3D的思想和VRML很相近)。

Java3D3)功能強(qiáng)大,高層次開發(fā)。因?yàn)镴ava3D在底層借助于Open/GL、DirectX的強(qiáng)有力支持;在高層,開發(fā)者不再需要負(fù)責(zé)對象渲染、碰撞檢查的編程任務(wù),所以很不錯(cuò)。最新版本為1.3.1Beta。(/products/java-media/3D/)

4)基于場景圖結(jié)構(gòu)(SceneGraphStructure)。這種層次結(jié)構(gòu),無論是描述現(xiàn)實(shí)中的對象,還是計(jì)算機(jī)實(shí)現(xiàn)都栩栩如生。她(Java3D)在這兩者之間幾乎達(dá)到了極致。Java思想的簡單也正體現(xiàn)在此。善于將復(fù)雜問題簡單化,人性化。

5)學(xué)習(xí)資源豐富。

Java3D1.3有7個(gè)不同的可下載版本:Java3DforWindows(DirectXversion)SDKforJDK(includeRuntime);Java3DforWindows(OpenGLversion)SDKforJDK(includeRuntime);Java3DforSolaris/SPARCRuntimeforJDK(includeRuntime);Java3DforWindows(DirectXversion)RuntimeforJRE;Java3DforWindows(OpenGLversion)RuntimeforJRE;Java3DforSolaris/SPARCSDKforJRE;Java3DforSolarisRuntime64bitsupport;

環(huán)境配置(與基本圖形庫相關(guān)):Java3DforWindows(OpenGLversion)SDKforJDK(includeRuntime);

Java2(RuntimeorSDK)version1.3.1或更后的版本OpenGL1.1或更后的版本,并且是Microsoft支持的顯卡廠商WindowsNT4.0only:ServicePack3或更后的版本(Window2000、WindowXP)

Java3D與其它三維技術(shù)的比較圖,可以從中直觀的看出他們相互間的區(qū)別

Direct3D(簡稱:D3D)Direct3D(簡稱:D3D)是微軟公司在MicrosoftWindows作業(yè)系統(tǒng)上所開發(fā)的一套3D繪圖編程介面,是DirectX的一部份,目前廣為各家顯示卡所支援。與OpenGL同為電腦繪圖軟體和電腦游戲最常使用的兩套繪圖編程介面之一。1995年2月,微軟收購了英國的Rendermorphics公司,將RealityLab2.0技術(shù)發(fā)展成Direct3D標(biāo)準(zhǔn),并整合到MicrosoftWindows中,Direct3D在DirectX3.0開始出現(xiàn)。后來在DirectX8.0發(fā)表時(shí)與DirectDraw編程介面合并并改名為DirectXGraphics。2007年8月微軟釋出Direct3D10.1以及ShaderModel4.1的測試版本,目前已Direct3D11

Direct3D——pipelineDirect3D10API定義了vertices,textures,buffers,以及state群組轉(zhuǎn)換到螢?zāi)簧系牧鞒?。這樣的流程被描述成renderingpipeline有著許多不同的stages.ThedifferentstagesoftheDirect3D10pipelineare:(1)InputAssembler:從程式里讀取vertexdata并將程式提供的vertexbuffer倒進(jìn)pipeline.(2)頂點(diǎn)著色引擎(VertexShader):Performsoperationsonasinglevertexatatime,像是transformations,skinning,或lighting.(3)幾何著色器(GeometryShader):ShaderModel4.0引進(jìn)了幾何著色器,使用Shader資源來處理點(diǎn)、線、面的幾何坐標(biāo)變換,一次最多處理六個(gè)點(diǎn),快速地將模型類似的頂點(diǎn)結(jié)合起來進(jìn)行運(yùn)算。此一過程無需CPU參與。

Direct3D——pipeline(4)StreamOutput:將VertexShader和PixelShader處理完成的數(shù)據(jù)輸出給使用者。(5)Rasterizer:Convertsprimitivesintopixels,再將像素(pixels)輸出給pixelshader.TheRasterizer亦可執(zhí)行其他工作,像是切割非視覺性的像素,orinterpolatingvertexdataintoper-pixeldata.(6)像素著色引擎(PixelShader):決定最后的像素顏色(pixelcolour)tobewrittentotherendertargetandcanalsocalculateadepthvaluetobewrittentothedepthbuffer.(7)OutputMerger:接收來自于pixelshader的slice,進(jìn)行傳統(tǒng)的Stencil測試和Depth測試,整并各種不同的輸出資料,用以建立最后之結(jié)果。

OpenGL(OpenGraphicsLibrary)OpenGL發(fā)展歷程1992年7月,SGI公司發(fā)布了OpenGL1.0版本,隨后又與微軟公司共同開發(fā)了WindowsNT版本的OpenGL,從而使一些原來必須在高檔圖形工作站上運(yùn)行的大型3D圖形處理軟件也可以在微機(jī)上運(yùn)用。1995年OpenGL1.1版本面市,性能有許多提高。2004年8月,OpenGL2.0標(biāo)準(zhǔn)的主要制訂者并非原來的SGI,而是逐漸在ARB(OpenGLArchitectureReviewBoard)中占據(jù)主動地位的3DLabs。OpenGL發(fā)展歷程2008年8月,在SIGGRAPH2008,OpenGL3.0。OpenGL3.0于微軟DirectX10有不少相近之處,不僅能運(yùn)行在WindowsVista系統(tǒng)上沒,還能運(yùn)行在WindowsXP甚至是Linux平臺上

DirectX10只能在WindowsVista2009年又公布了升級版新規(guī)范OpenGL3.1、3.22010年,OpenGL3.3;ThelatestversionOpenGL4.0目前推出了網(wǎng)絡(luò)版WebGL。OpenGL發(fā)展歷程WebGLisaDOMAPIforcreating3DgraphicsinaWebbrowser.BasedonOpenGLES2.0,WebGLusestheOpenGLshadinglanguage,GLSL,andoffersthefamiliarityofthestandardOpenGLAPI.Inaddition,becauseitisfullyintegratedintothebrowser,aWebGLapplicationcantakeadvantageoftheJavaScriptinfrastructureandDocumentObjectModel(DOM)fundamentaltoanyHTMLdocument.WebGLisessentiallyanotherrenderingcontextonthe<canvas>element,soitcanbecleanlycombinedwithHTMLandotherwebcontentthatislayeredontoporunderneaththe3Dcontent.OpenGL(OpenGraphicsLibrary)OpenInventor:該軟件是基于OpenGL面向?qū)ο蟮墓ぞ甙?,提供?chuàng)建交互式3D圖形應(yīng)用程序的對象和方法,提供了預(yù)定義的對象和用于交互的事件處理模塊,創(chuàng)建和編輯3D場景的高級應(yīng)用程序單元,有打印對象和用其它圖形格式交換數(shù)據(jù)的能力。OpenInventorCosmo3DOptimizerOpenGLOpenGL主要功能11.建模:OpenGL圖形庫除了提供基本的點(diǎn)、線、多邊形的繪制函數(shù)外,還提供了復(fù)雜的三維物體(球、錐、多面體、茶壺等)以及復(fù)雜曲線和曲面繪制函數(shù)。

2.變換:OpenGL圖形庫的變換包括基本變換和投影變換?;咀儞Q有平移、旋轉(zhuǎn)、變比鏡像四種變換,投影變換有平行投影(又稱正射投影)和透視投影兩種變換。其變換方法有利于減少算法的運(yùn)行時(shí)間,提高三維圖形的顯示速度。

3.顏色模式設(shè)置:OpenGL顏色模式有兩種,即RGBA模式和顏色索引(ColorIndex)。

4.光照和材質(zhì)設(shè)置:OpenGL光有輻射光(EmittedLight)、環(huán)境光(AmbientLight)、漫反射光(DiffuseLight)和鏡面光(SpecularLight)。材質(zhì)是用光反射率來表示。場景(Scene)中物體最終反映到人眼的顏色是光的紅綠藍(lán)分量與材質(zhì)紅綠藍(lán)分量的反射率相乘后形成的顏色。

OpenGL主要功能25:紋理映射(TextureMapping)。利用OpenGL紋理映射功能可以十分逼真地表達(dá)物體表面細(xì)節(jié)。

6:位圖顯示和圖象增強(qiáng)圖象功能除了基本的拷貝和像素讀寫外,還提供融合(Blending)、反走樣(Antialiasing)和霧(fog)的特殊圖象效果處理。以上三條可使被仿真物更具真實(shí)感,增強(qiáng)圖形顯示的效果。

7:雙緩存動畫(DoubleBuffering)雙緩存即前臺緩存和后臺緩存,簡言之,后臺緩存計(jì)算場景、生成畫面,前臺緩存顯示后臺緩存已畫好的畫面。

此外,利用OpenGL還能實(shí)現(xiàn)深度暗示(DepthCue)、運(yùn)動模糊(MotionBlur)等特殊效果。從而實(shí)現(xiàn)了消隱算法。OpenGL庫結(jié)構(gòu)組成OpenGL庫函數(shù)結(jié)構(gòu)OpenGLapplicationsusethewindowsystem’swindow,input,andeventmechanismGLUsupportsquadrics,NURBS,complexpolygons,matrixutilities,andmoreThisdiagramdemonstratestherelationshipbetweenOpenGLGLUandwindowingAPIs.OpenGL圖形生成原理模型變換視圖變換投影變換視域剪裁視區(qū)變換繪制到屏幕3D世界坐標(biāo)2D屏幕坐標(biāo)(X,Y,Z)(x,y)OpenGL圖形操作步驟OpenGL關(guān)鍵技術(shù)OpenGL關(guān)鍵技術(shù)OpenGL編程實(shí)踐現(xiàn)有圖形庫的選擇與編程環(huán)境VC+OpenGL最佳組合VB+OpenGL也可以O(shè)penGL的.net版本:第一個(gè)是:csgl,當(dāng)前版本是:,包括兩個(gè)dll,csgl.dll和csgl.native.dll第二個(gè)是:CsGL.Basecode.dll,為csgl應(yīng)用程序的快速開發(fā)提供的一個(gè)模板,并寫成了.NET程序集,名稱為CsGL.Basecode.dll,當(dāng)前版本為。開發(fā)時(shí)開發(fā)者只要關(guān)注場景繪制,輸入輸出控制等工作,不用關(guān)心渲染窗體創(chuàng)建,消息傳遞等工作,而且關(guān)于渲染的流程都封裝好了,開發(fā)者只需要繼承Model類并重寫幾個(gè)方法,相當(dāng)簡單,第三個(gè)版本是Tao.OpenGl,當(dāng)前版本是,它提供了三個(gè)dll,Tao.OpenGl.dll,Tao.Platform.Windows.dll,和Tao.FreeGlut.dll。選擇建議:第三個(gè)最好OpenGL編程實(shí)踐OpenGL編程實(shí)踐Windows環(huán)境下安裝GLUT的步驟:

1、將下載的壓縮包解開,將得到5個(gè)文件

2、以根據(jù)vc安裝路徑設(shè)置:

(1)“d:\Program

Files\Microsoft

Visual

Studio\VC98\include\GL文件夾”。把解壓得到的glut.h放到這個(gè)GL文件夾里。沒有GL文件夾可以自己建一個(gè),一般都有的。

(2)“d:\Program

Files\Microsoft

Visual

Studio\VC98\lib文件夾”)。把解壓得到的glut.lib和glut32.lib放到靜態(tài)函數(shù)庫所在文件夾,即lib文件夾。

(3)把解壓得到的glut.dll和glut32.dll放到操作系統(tǒng)目錄下面的system32文件夾內(nèi)。(典型的位置為:C:\Windows\System32)OpenGL編程實(shí)踐

第三步,創(chuàng)建工程,其步驟如下:

(1)創(chuàng)建一個(gè)Win32

Console

Application。(2)鏈接OpenGL

libraries:在Visual

C++中先單擊Project,再單擊Settings,再找到Link單擊,最后在Object/library

modules

的最前面加上opengl32.lib

Glut32.lib

Glaux.lib

glu32.lib

。

(3)單擊Project

Settings中的C/C++標(biāo)簽,將Preprocessor

definitions

中的_CONSOLE改為__WINDOWS。最后單擊OK。

現(xiàn)在,準(zhǔn)備工作基本上完成了,可不要輕視這一步,如果你沒有設(shè)置好在編譯及運(yùn)行過程中總會出錯(cuò)的。OpenGL編程實(shí)踐第四步,創(chuàng)建一個(gè)最簡單的opengl程序

#include

<windows.h>

//

Windows的頭文件

#include

<gl\gl.h>

//

OpenGL32庫的頭文件(核心庫函數(shù))

核心庫函數(shù)個(gè)數(shù)最多,均以“gl”為前綴,它們提供了最基本的功能,如時(shí)下三維建模、建立光照模型、反走樣及紋理映射等功能。

#include

<gl\glu.h>

//

GLu32庫的頭文件(實(shí)用庫函數(shù))

均以“glu”為前綴,他們在核心函數(shù)的上層。其實(shí)質(zhì)是對核心函數(shù)進(jìn)行組織和封裝,提供比較簡單的函數(shù)接口和用法,可減輕開發(fā)者的編程負(fù)擔(dān)。

#include

<gl\glaux.h>

//

GLaux庫的頭文件(輔助庫函數(shù))

均以“aux”為前綴。應(yīng)用程序只能在Win32環(huán)境中使用這些函數(shù),可移植性較差,在Windows應(yīng)用程序中一般用于窗口管理、輸入輸出處理及繪制一些簡單的三維形體

#include

<gl/glut.h>

//OpenGL實(shí)用工具包

display()intwindow_width=600;intwindow_height=600;voiddisplay(){ //setbackground glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT); //examplefordrawaline; glBegin(GL_LINES); glColor3f(1.0,1.0,1.0); glVertex2f(0.0,0.0); glVertex2f(600.0,600.0); glEnd(); //examplefordrawapixel glBegin(GL_POINTS); glColor3f(1.0,0.0,0.0); glVertex2f(300.0,100); glEnd(); glutSwapBuffers();//drawcommandfordoublebuffer}OpenGL編程實(shí)踐一般來說產(chǎn)生3D圖象的步驟:

1建模

2將幾何模型經(jīng)變換投影到2D透視圖

3確定場景所有可見面,進(jìn)行消隱

4計(jì)算場景顏色

消隱是OPENGL的工作,我們不必關(guān)心。所以就是高級3D圖形編程的重點(diǎn)。包括紋理、光照、明暗、霧化等等。OpenGL與DirectXOpenGL只是圖形函數(shù)庫。DirectX包含圖形,聲音,輸入,網(wǎng)絡(luò)等模塊。單就圖形而論,DirectX的圖形庫性能不如OpenGLOpenGL穩(wěn)定,可跨平臺使用。但OpenGL多需要顯卡支持.DirectX僅能用于Windows系列平臺,包括WindowsMobile/CE系列以及XBOX/XBOX360。OpenGL與DirectX做windows平臺上的游戲,當(dāng)然是DX,想跨平臺,想做科學(xué)計(jì)算程序,想做CAD,想做分布計(jì)算,想做工業(yè)級應(yīng)用,最好用OpenGL。當(dāng)然你要是對COM不感冒,或是想活得輕松一點(diǎn),還是OpenGL吧。其實(shí)DX之所以是游戲首選平臺是因?yàn)樗俣瓤?,在過去支持OpenGL加速的家用卡或游戲卡很少,而軟件計(jì)算很慢。但從TNT2/Voodoo3開始,OpenGL已經(jīng)是非常理想的游戲平臺了,而在geforce256,savarage2000+為代表的四代卡上OpenGL已經(jīng)是極為理想的游戲平臺了:夠快,夠眩!另一方面到DX7這套東西質(zhì)量已經(jīng)相當(dāng)不錯(cuò)了,與OpenGL差距已經(jīng)很小了,而且是M$的東西……就看你怎么想了,如果想學(xué)得快,用得爽,調(diào)試方便,就選OpenGL,如果已經(jīng)適應(yīng)COM體系的思想那當(dāng)然是DX自然。OpenGL相關(guān)網(wǎng)站OpenGL的官方網(wǎng)站

NeHe的OpenGL教程

FlipC

DevM

OpenGL空間

OpenGL擴(kuò)展數(shù)據(jù)庫

OpenGLExtensionWranglerLibrary

GLEasyExtensionlibrary

OpenGL中文教學(xué)(使用c++)

OSG:openscenegraphpenSceneGraph是一個(gè)開放源碼,跨平臺的圖形開發(fā)包,它為諸如飛行器仿真,游戲,虛擬現(xiàn)實(shí),科學(xué)計(jì)算可視化這樣的高性能圖形應(yīng)用程序開發(fā)而設(shè)計(jì)。它基于場景圖的概念,它提供一個(gè)在OpenGL之上的面向?qū)ο蟮目蚣?,從而能把開發(fā)者從實(shí)現(xiàn)和優(yōu)化底層圖形的調(diào)用中解脫出來,并且它為圖形應(yīng)用程序的快速開發(fā)提供很多附加的實(shí)用工具。OSG:openscenegraph有了OpenSceneGraph,我們的目標(biāo)是讓所有的人在場景圖技術(shù)中受益,無論是商業(yè)還是非商業(yè)的用戶。它完全是由標(biāo)準(zhǔn)C++程序和OpenGL寫的,充分利用STL和設(shè)計(jì)模式,發(fā)揮開源開發(fā)模型的優(yōu)勢來提供一個(gè)免費(fèi)的開發(fā)庫,并且重點(diǎn)集中在用戶的需求上。隨著使用一個(gè)全特性的場景圖OpenSceneGraph的關(guān)鍵優(yōu)勢在于它的性能、可擴(kuò)展性、可移植性和快速開發(fā)(productivity),更具體的來說:

OSG:openscenegraph數(shù)據(jù)裝載為了讀入和寫出數(shù)據(jù)庫,有一個(gè)數(shù)據(jù)庫的支持庫(osgDB)增加了通過后綴名動態(tài)插件機(jī)制,從而支持大量數(shù)據(jù)格式,目前的發(fā)布版本有55種單獨(dú)的插件支持3D數(shù)據(jù)和圖像格式的裝載。支持的3D數(shù)據(jù)格式包括COLLADA,LightWave(.lwo),AliasWavefront(.obj),OpenFlight(.flt),多線程頁面調(diào)度支持的TerraPage(.txp),CarbonGraphicsGEO(.geo),3DStudioMAX(.3ds),Peformer(.pfb),AutoCAd(.dxf),QuakeCharacterModels(.md2).DirectX(.x),andInventorAscii2.0(.iv)/VRML1.0(.wrl),DesignerWorkshop(.dw),AC3D(.ac)和自帶的.osgASCII文本格式。支持的圖像格式包括.rgb,.gif,.jpg,.png,.tiff,.pic,.bmp,.dds(包含壓縮的一系列Mip貼圖影像),.tgaandquicktime(在OSX環(huán)境下),全范圍的高質(zhì)量、抗鋸齒字體也能通過freetype插件支持,基于字體的圖像也可以通過.txf插件支持。用戶也可以通過與我們同行的一個(gè)項(xiàng)目(VirtualPlanetBuilder)生成大規(guī)模地形空間數(shù)據(jù)(multiGB),使用OpenSceneGraph的自帶數(shù)據(jù)分頁調(diào)度支持來查看這些數(shù)據(jù)。OSG:openscenegraph1998OpenSceneGraph誕生該項(xiàng)目是由Don在1998的一個(gè)業(yè)余愛好發(fā)展而來的,做為一種滑翔機(jī)的場景模擬器運(yùn)行在Linux下。

1999初出熔爐在1999年Robert開始著手完善該項(xiàng)目并把它移植到Windows下。在1999年9月,OSG的源碼宣布開源并且OpenSceneGraph應(yīng)運(yùn)而生,當(dāng)時(shí)Robert接管了場景圖的項(xiàng)目,而Don則著眼于滑翔機(jī)的模擬。幾易寒暑,Robert以一直致力于加強(qiáng)對C++標(biāo)準(zhǔn)以及設(shè)計(jì)模式的理解以求場景圖可以適應(yīng)新的標(biāo)準(zhǔn)和methodoligy。

2000以專業(yè)精神對待業(yè)余愛

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論