版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
空間信息可視化工具山東科技大學(xué)地理系韓李濤工具類型Java3DDirect3DSVGXMLGraphicsfortheWeb
SVG是英語「ScalableVectorGraphics」的簡寫??梢苑g為「可縮放的矢量圖型」。它是基于XML標(biāo)記語言來描述二維矢量圖型的一種圖形格式。SVG由W3C制定,是一個開放標(biāo)準(zhǔn)。SVG是W3C在2000年發(fā)布的一種開放的標(biāo)準(zhǔn)文本式矢量圖形描述語言。使用SVG可以在網(wǎng)頁上顯示出各種各樣的高質(zhì)量的矢量圖形,包括許多圖像處理中常見的功能,如圖形、文字、動畫、顏色、濾鏡效果等。最關(guān)鍵的是SVG完全用普通文本來描述。也就是說,這是一種專門為網(wǎng)絡(luò)而設(shè)計的基于文本的圖像格式。并且SVG基于XML(ExtensibleMarkupLanguage),所以可擴展性很強,能夠描述任意復(fù)雜的圖像。Flexflex通常是指AdobeFlex,是最初由Macromedia公司在2004年3月發(fā)布的,基于其專有的MacromediaFlash平臺,它是涵蓋了支持RIA(RichInternetApplications)的開發(fā)和部署的一系列技術(shù)組合。原因:一是為了迎合更多的developers。Flash天生是為了designer(設(shè)計者)設(shè)計的,界面還有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)用,具有高度互動性、豐富用戶體驗以及功能強大的客戶端
RIA具有的桌面應(yīng)用程序的特點包括:在消息確認和格式編排方面提供互動用戶界面;在無刷新頁面之下提供快捷的界面響應(yīng)時間;提供通用的用戶界面特性如拖放式(draganddrop)以及在線和離線操作能力。RIA具有的Web應(yīng)用程序的特點包括如:立即部署、跨平臺、采用逐步下載來檢索內(nèi)容和數(shù)據(jù)以及可以充分利用被廣泛采納的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。RIA具有通信的特點則包括實時互動的聲音和圖像。
同時融合網(wǎng)絡(luò)和桌面應(yīng)用程序的特點Flex的技術(shù)框架Flex技術(shù)包括以下幾個主要技術(shù)框架:1.描述應(yīng)用程序界面的XML語言(MXML);2.符合ECMA規(guī)范的腳本語言(ActionScript),處理用戶和系統(tǒng)的事件,構(gòu)建復(fù)雜的數(shù)據(jù)模型;3.一個基礎(chǔ)類庫;4.運行時的即時服務(wù);5.由MXML與ActionScript文件生成swf文件的編譯器。Flash與Flex1.盡管公用ActionScript,但是使用的庫并不完全相同,更合適的說法是兩者使用著兩套具有極大“功能重疊”范圍的庫。2.面向?qū)ο螅篎lash偏向的是美術(shù)動畫設(shè)計師人員,所以更容易發(fā)揮特效處理的優(yōu)勢,F(xiàn)lex偏向開發(fā)人員,所以容易做出具有豐富交互功能的應(yīng)用程序。3.Flash只能以ActionScript腳本的形式開發(fā);而Flex還可以使用稱作mxml的標(biāo)記語言來描述應(yīng)用的外觀和行為,mxml中可以直接嵌入ActionScript腳本。4.由于第三點而造成的兩者市場定位不同,F(xiàn)lex是面向企業(yè)級的網(wǎng)絡(luò)應(yīng)用程序,F(xiàn)lash則面向諸如平面動畫、廣告設(shè)計等多媒體展示程序。5.借助FlashLite這一移動設(shè)備上的Flashplayer,F(xiàn)lash可以開發(fā)移動應(yīng)用,F(xiàn)lex則不行。6.Flash的編程模型是基于時間軸的,F(xiàn)lex的則是基于窗體,雖然它運行在網(wǎng)頁里。
ArcGISAPIforFlexArcGISAPIforFlexVRMLVRML是VirtualRealityModelingLanguage的縮縮寫寫形形式式,,意意思思是是虛虛擬擬現(xiàn)現(xiàn)實實造造型型語語言言。。VRML被稱稱為為繼繼HTML之后后的的第第二二代代Web語言言,,它它本本身身是是一一種種建建模模語語言言,,也也就就是是說說,,它它是是用用來來描描述述三三維維物物體體及及其其行行為為的的,,可可以以構(gòu)構(gòu)建建虛虛擬擬境境界界((VirturalWorld),可以以集集成成文文本本、、圖圖像像、、音音響響、、MPEG影像像等等多多種種媒媒體體類類型型,,還還可可以以內(nèi)內(nèi)嵌嵌用用Java、ECMAScript等語語言言編編寫寫的的程程序序代代碼碼。。VRML的基基本本目目標(biāo)標(biāo)是是建建立立因因特特網(wǎng)網(wǎng)上上的的交交互互式式三三維維多多媒媒體體,,基基本本特特征征包包括括分分布布式式、、三三維維、、交交互互性性、、多多媒媒體體集集成成、、境境界界逼逼真真性性等等。。VRML————實例例VRML工具具GeoVRMLx3DX3D對地地學(xué)學(xué)建建模模的的支支持持Geospatial組件件中中的的重重要要概概念念,,提提供供地地理理學(xué)學(xué)支支持持的的地地理理學(xué)學(xué)應(yīng)應(yīng)用用的的討討論論。。地地理理學(xué)學(xué)支支持持包包括括如如何何在在某某一一X3D節(jié)點點中中鑲鑲?cè)肴氲氐乩砝碜鴺?biāo)標(biāo),,支支持持高高精精度度的的地地理理模模型型,,處處理理大大面面積積多多分分辨辨率率地地形形數(shù)數(shù)據(jù)據(jù)集集。。這這些些概概念念將將在在以以下下描描述述。。Geospatial組件件遵遵循循SpatialReferenceModel(空空間間建建模模參參考考標(biāo)標(biāo)準(zhǔn)準(zhǔn)))2.[I18026]中定定義義的的約約定定。。Geospatial組件件中中共共包包含含9個節(jié)節(jié)點點。。以以下下是是定定義義的的節(jié)節(jié)點點。。GeoCoordinateGeoElevationGridGeoLocationGeoLODGeoMetadataGeoOriginGeoPositionInterpolatorGeoTouchSensorGeoViewpointJava3DJava3D是Java語言言在在三三維維圖圖形形領(lǐng)領(lǐng)域域的的擴擴展展,,是是一一組組應(yīng)應(yīng)用用編編程程接接口口((API)。。利利用用Java3D提供供的的API,可可以以編編寫寫出出基基于于網(wǎng)網(wǎng)頁頁的的三三維維動動畫畫、、各各種種計計算算機機輔輔助助教教學(xué)學(xué)軟軟件件和和三三維維游游戲戲等等等等。。利利用用Java3D編寫寫的的程程序序,,只只需需要要編編程程人人員員調(diào)調(diào)用用這這些些API進行行編編程程,,而而客客戶戶端端只只需需要要使使用用標(biāo)標(biāo)準(zhǔn)準(zhǔn)的的Java虛擬擬機機就就可可以以瀏瀏覽覽,,因因此此具具有不不需需要要安安裝裝插插件件的優(yōu)優(yōu)點點。。JAVA3D從高高層層次次為為開開發(fā)發(fā)者者提提供供對對三三維維實實體體的的創(chuàng)創(chuàng)建建、、操操縱縱和和著著色色,,使使開發(fā)發(fā)工工作作變變得得極極為為簡簡單單。同同時時,,JAVA3D的低低級級API是依依賴賴于于現(xiàn)現(xiàn)有有的的三三維維圖圖形形系系統(tǒng)統(tǒng)的的,,如如Direct3D、OpenGL、QuickDraw3D和XGL等,JAVA3D的這種體體系結(jié)構(gòu)構(gòu)既可以以使其開發(fā)的程程序“到到處運行行”,又又使其能能充分利利用系統(tǒng)統(tǒng)的三維維特性。就因為為JAVA3D擁有如此此的強大大的三維維能力,,使得它它在網(wǎng)絡(luò)絡(luò)世界,,特別是是在游戲戲中能大大展姿彩彩。Java3D作為一名名3D圖形開發(fā)發(fā)者,無無論是游游戲開發(fā)發(fā)、科學(xué)學(xué)計算,,還是MCAD、生物技技術(shù),還還是虛擬擬現(xiàn)實((VirtualReality)、仿真真技術(shù),,Java3D都是很優(yōu)優(yōu)秀的選選擇。理理由如下下:1)基于于Java技術(shù),秉秉承了Java的一切優(yōu)優(yōu)點,具具有優(yōu)秀秀的、豐豐富的UI(Swing、AWT)和Web發(fā)布能力力(通過JavaPlug-In)。2)作為為第四代代3D圖形API,Java3D簡單易用用,不需需要多深深厚的計計算機圖圖形學(xué)功功底和學(xué)學(xué)習(xí)曲線線,開開發(fā)者便便能開發(fā)發(fā)出很專專業(yè)的動動畫、仿仿真和交交互。因因為他借借鑒了VRML的思想,,所以學(xué)學(xué)起來很很輕松((熟悉VRML的開發(fā)者者,如對對Java還熟悉的的,則會會發(fā)現(xiàn)Java3D的思想和和VRML很相近))。Java3D3)功功能強強大,,高層層次開開發(fā)。。因為為Java3D在底層層借助助于Open/GL、DirectX的強有有力支支持;;在高高層,,開發(fā)發(fā)者不不再需需要負負責(zé)對對象渲渲染、、碰撞撞檢查查的編編程任任務(wù),,所以以很不不錯。。最新新版本本為1.3.1Beta。(/products/java-media/3D/)4)基基于場場景圖圖結(jié)構(gòu)構(gòu)(SceneGraphStructure)。這這種層層次結(jié)結(jié)構(gòu),,無論論是描描述現(xiàn)現(xiàn)實中中的對對象,,還是是計算算機實實現(xiàn)都都栩栩栩如生生。她她(Java3D)在這這兩者者之間間幾乎乎達到到了極極致。。Java思想的的簡單單也正正體現(xiàn)現(xiàn)在此此。善善于將將復(fù)雜雜問題題簡單單化,,人性性化。。5)學(xué)學(xué)習(xí)資資源豐豐富。。Java3D1.3有有7個個不同同的可可下載載版本本:Java3DforWindows((DirectXversion))SDKforJDK((includeRuntime));Java3DforWindows((OpenGLversion)SDKforJDK(includeRuntime);;Java3DforSolaris/SPARCRuntimeforJDK((includeRuntime));Java3DforWindows((DirectXversion))RuntimeforJRE;;Java3DforWindows((OpenGLversion)RuntimeforJRE;Java3DforSolaris/SPARCSDKforJRE;;Java3DforSolarisRuntime64bitsupport;環(huán)境配配置(與基基本圖圖形庫庫相關(guān)關(guān)):Java3DforWindows(OpenGLversion)SDKforJDK(includeRuntime);Java2(RuntimeorSDK)version1.3.1或更后后的版版本OpenGL1.1或更后后的版版本,,并且且是Microsoft支持的的顯卡卡廠商商WindowsNT4.0only:ServicePack3或更后后的版版本((Window2000、WindowXP)Java3D與與其它它三維維技術(shù)術(shù)的比比較圖圖,可可以從從中直直觀的的看出出他們們相互互間的的區(qū)別別Direct3D(簡簡稱稱::D3D)Direct3D(簡簡稱稱::D3D)是是微軟軟公司司在在MicrosoftWindows作業(yè)業(yè)系系統(tǒng)統(tǒng)上所所開開發(fā)發(fā)的的一一套套3D繪圖圖編程程介介面面,是是DirectX的一一部部份份,,目目前前廣廣為為各各家家顯示示卡卡所支支援援。。與與OpenGL同為為電電腦腦繪繪圖圖軟軟體體和和電電腦腦游戲戲最常常使使用用的的兩兩套套繪繪圖圖編編程程介介面面之之一一。。1995年2月,,微微軟軟收收購購了了英英國國的的Rendermorphics公司司,,將將RealityLab2.0技術(shù)術(shù)發(fā)發(fā)展展成成Direct3D標(biāo)準(zhǔn)準(zhǔn),,并并整整合合到到MicrosoftWindows中,,Direct3D在DirectX3.0開始始出出現(xiàn)現(xiàn)。。后后來來在在DirectX8.0發(fā)表表時時與與DirectDraw編程程介介面面合合并并并并改改名名為為DirectXGraphics。2007年8月微微軟軟釋釋出出Direct3D10.1以及ShaderModel4.1的測試版本,目前已Direct3D11Direct3D——pipelineDirect3D10API定義了vertices,textures,buffers,以及state群組轉(zhuǎn)換到螢螢?zāi)簧系牧鞒坛?。這樣的的流程被描述述成renderingpipeline有著許多不同同的stages.ThedifferentstagesoftheDirect3D10pipelineare:(1)InputAssembler:從程式里讀讀取vertexdata并將程式提供供的vertexbuffer倒進pipeline.(2)頂點著色引擎擎(VertexShader):Performsoperationsonasinglevertexatatime,像是transformations,skinning,或lighting.(3)幾何著色器(GeometryShader):ShaderModel4.0引進了幾何著色器,使用Shader資源來處理點點、線、面的的幾何坐標(biāo)變變換,一次最最多處理六個個點,快速地地將模型類似似的頂點結(jié)合合起來進行運運算。此一過過程無需CPU參與。Direct3D———pipeline(4)StreamOutput:將VertexShader和PixelShader處理完成的數(shù)數(shù)據(jù)輸出給使使用者。(5)Rasterizer:Convertsprimitivesintopixels,再將像素((pixels)輸出給pixelshader.TheRasterizer亦可執(zhí)行其他他工作,像是是切割非視覺覺性的像素,,orinterpolatingvertexdataintoper-pixeldata.(6)像素著色引擎擎(PixelShader):決定最后后的像素顏色色(pixelcolour)tobewrittentotherendertargetandcanalsocalculateadepthvaluetobewrittentothedepthbuffer.(7)OutputMerger:接收來自于于pixelshader的slice,進行傳統(tǒng)的的Stencil測試和Depth測試,整并各各種不同的輸輸出資料,用用以建立最后后之結(jié)果。OpenGL(OpenGraphicsLibrary)OpenGL發(fā)展歷程程1992年7月,SGI公司發(fā)布了OpenGL1.0版本,,隨后后又與與微軟軟公司司共同同開發(fā)發(fā)了WindowsNT版本的的OpenGL,從而而使一一些原原來必必須在在高檔檔圖形形工作作站上上運行行的大大型3D圖形處處理軟軟件也也可以以在微微機上上運用用。1995年OpenGL1.1版本面面市,,性能能有許許多提提高。。2004年年8月月,OpenGL2.0標(biāo)準(zhǔn)的主要要制訂訂者并并非原原來的的SGI,而是是逐漸漸在ARB(OpenGLArchitectureReviewBoard)中占占據(jù)主主動地地位的的3DLabs。OpenGL發(fā)發(fā)展展歷程程2008年8月,在在SIGGRAPH2008,OpenGL3.0。OpenGL3.0于微軟軟DirectX10有不少少相近近之處處,不不僅能能運行行在WindowsVista系統(tǒng)上上沒,,還能能運行行在WindowsXP甚至是是Linux平臺上上DirectX10只能在在WindowsVista2009年又公公布了了升級級版新新規(guī)范范OpenGL3.1、3.22010年,OpenGL3.3;ThelatestversionOpenGL4.0目前推推出了了網(wǎng)絡(luò)絡(luò)版WebGL。OpenGL發(fā)發(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īng)用程程序的的對象象和方方法,,提供供了預(yù)預(yù)定義義的對對象和和用于于交互互的事事件處處理模模塊,,創(chuàng)建建和編編輯3D場景的的高級級應(yīng)用用程序序單元元,有有打印印對象象和用用其它它圖形形格式式交換換數(shù)據(jù)據(jù)的能能力。。OpenInventorCosmo3DOptimizerOpenGLOpenGL主要要功功能能11.建模模::OpenGL圖形形庫庫除除了了提提供供基基本本的的點點、、線線、、多多邊邊形形的的繪繪制制函函數(shù)數(shù)外外,,還還提提供供了了復(fù)復(fù)雜雜的的三三維維物物體體((球球、、錐錐、、多多面面體體、、茶茶壺壺等等))以以及及復(fù)復(fù)雜雜曲曲線線和和曲曲面面繪繪制制函函數(shù)數(shù)。。2.變換換::OpenGL圖形形庫庫的的變變換換包包括括基基本本變變換換和和投投影影變變換換。?;颈咀冏儞Q換有有平平移移、、旋旋轉(zhuǎn)轉(zhuǎn)、、變變比比鏡鏡像像四四種種變變換換,,投投影影變變換換有有平平行行投投影影((又又稱稱正正射射投投影影))和和透透視視投投影影兩兩種種變變換換。。其其變變換換方方法法有有利利于于減減少少算算法法的的運運行行時時間間,,提提高高三三維維圖圖形形的的顯顯示示速速度度。。3.顏色模式式設(shè)置::OpenGL顏色模式式有兩種種,即RGBA模式和顏顏色索引引(ColorIndex)。4.光照和材材質(zhì)設(shè)置置:OpenGL光有輻射射光(EmittedLight)、環(huán)境境光(AmbientLight)、漫反反射光((DiffuseLight)和鏡面面光(SpecularLight)。材質(zhì)質(zhì)是用光光反射率率來表示示。場景景(Scene)中物體體最終反反映到人人眼的顏顏色是光光的紅綠綠藍分量量與材質(zhì)質(zhì)紅綠藍藍分量的的反射率率相乘后后形成的的顏色。。OpenGL主要功能能25:紋理映射射(TextureMapping)。利用用OpenGL紋理映射射功能可可以十分分逼真地地表達物物體表面面細節(jié)。。6:位圖顯示示和圖象象增強圖圖象功能能除了基基本的拷拷貝和像像素讀寫寫外,還還提供融融合(Blending)、反走走樣(Antialiasing)和霧((fog)的特殊殊圖象效效果處理理。以上上三條可可使被仿仿真物更更具真實實感,增增強圖形形顯示的的效果。。7:雙緩存存動畫((DoubleBuffering)雙緩存存即前臺臺緩存和和后臺緩緩存,簡簡言之,,后臺緩緩存計算算場景、、生成畫畫面,前前臺緩存存顯示后后臺緩存存已畫好好的畫面面。此外,利利用OpenGL還能實現(xiàn)現(xiàn)深度暗暗示(DepthCue)、運動動模糊((MotionBlur)等特殊殊效果。。從而實實現(xiàn)了消消隱算法法。OpenGL庫結(jié)構(gòu)組組成OpenGL庫函數(shù)結(jié)結(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)關(guān)鍵技技術(shù)OpenGL關(guān)鍵技術(shù)術(shù)OpenGL編程實踐踐現(xiàn)有圖形形庫的選選擇與編編程環(huán)境境VC+OpenGL最佳組合合VB+OpenGL也可以O(shè)penGL的.net版本:第一個是是:csgl,當(dāng)前版版本是::,包括兩兩個dll,csgl.dll和csgl.native.dll第二個是是:CsGL.Basecode.dll,為csgl應(yīng)用程序序的快速速開發(fā)提提供的一一個模板板,并寫寫成了.NET程序集,,名稱為為CsGL.Basecode.dll,當(dāng)前版版本為。開發(fā)時時開發(fā)者者只要關(guān)關(guān)注場景景繪制,,輸入輸輸出控制制等工作作,不用用關(guān)心渲渲染窗體體創(chuàng)建,,消息傳傳遞等工工作,而而且關(guān)于于渲染的的流程都都封裝好好了,開開發(fā)者只只需要繼繼承Model類并重寫寫幾個方方法,相相當(dāng)簡單單,第三個版版本是Tao.OpenGl,當(dāng)前版版本是,它提供供了三個個dll,Tao.OpenGl.dll,Tao.Platform.Windows.dll,和Tao.FreeGlut.dll。選擇建議議:第三三個最好好OpenGL編編程實踐踐OpenGL編編程實踐踐Windows環(huán)境下安裝裝GLUT的步驟:1、將下載的的壓縮包解解開,將得得到5個文件2、以根據(jù)vc安裝路徑設(shè)設(shè)置:((1)“d:\Program
Files\Microsoft
Visual
Studio\VC98\include\GL文件夾”。。把解壓得得到的glut.h放到這個GL文件夾里。。沒有GL文件夾可以以自己建一一個,一般般都有的。。((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編程實實踐第三步,創(chuàng)創(chuàng)建工程,,其步驟如如下:((1)創(chuàng)建一個個Win32
Console
Application。(2)鏈接OpenGL
libraries:在Visual
C++中先單擊Project,再單擊Settings,再找到Link單擊,最后后在Object/library
modules的最前面加加上opengl32.libGlut32.libGlaux.lib
glu32.lib。(3)單擊ProjectSettings中的C/C++標(biāo)簽,將Preprocessordefinitions中的_CONSOLE改為__WINDOWS。最后單擊擊OK。現(xiàn)現(xiàn)在,準(zhǔn)備備工作基本本上完成了了,可不要要輕視這一一步,如果果你沒有設(shè)設(shè)置好在編編譯及運行行過程中總總會出錯的的。OpenGL編程實實踐第四步,創(chuàng)創(chuàng)建一個最最簡單的opengl程序#include<windows.h>//
Windows的頭文件#include<gl\gl.h>//
OpenGL32庫的頭文件件(核心庫庫函數(shù))核核心心庫函數(shù)個個數(shù)最多,,均以“gl”為前綴,它它們提供了了最基本的的功能,如如時下三維維建模、建建立光照模模型、反走走樣及紋理理映射等功功能。#include<gl\glu.h>//
GLu32庫的頭文件件(實用庫庫函數(shù))均均以以“glu”為前綴,他他們在核心心函數(shù)的上上層。其實實質(zhì)是對核核心函數(shù)進進行組織和和封裝,提提供比較簡簡單的函數(shù)數(shù)接口和用用法,可減減輕開發(fā)者者的編程負負擔(dān)。#include<gl\glaux.h>//
GLaux庫的頭文件件(輔助庫庫函數(shù))均均以以“aux”為前綴。應(yīng)應(yīng)用程序只只能在Win32環(huán)境中使用用這些函數(shù)數(shù),可移植植性較差,,在Windows應(yīng)用程序中中一般用于于窗口管理理、輸入輸輸出處理及及繪制一些些簡單的三三維形體#include<gl/glut.h>//OpenGL實用工具包包display()intwindow_width=600;intwindow_height=600;voiddisplay(){//setbackgroundglClearColor(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();//examplefordrawapixelglBegin(GL_POINTS);glColor3f(1.0,0.0,0.0);glVertex2f(300.0,100);glEnd();glutSwapBuffers();//drawcommandfordoublebuffer}OpenGL編程實實踐一般來說產(chǎn)產(chǎn)生3D圖象的步驟驟:1建模2將幾何模型型經(jīng)變換投投影到2D透視圖3確定場景所所有可見面面,進行消消隱4計算場景顏顏色消隱是OPENGL的工作,我我們不必關(guān)關(guān)心。所以以就是高級級3D圖形編程的的重點。包包括紋理、、光照、明明暗、霧化化等等。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é)計算程程序,想做做CAD,想做分分布計算,,想做工業(yè)業(yè)級應(yīng)用,,最好用OpenGL。當(dāng)然你你要是對COM不感冒,或或是想活得得輕松一點點,還是OpenGL吧。其實DX之所以是游游戲首選平平臺是因為為它速度快快,在過去去支持OpenGL加速的家用用卡或游游戲卡很少少,而軟件件計算很慢慢。但從TNT2/Voodoo3開始,OpenGL已經(jīng)是非常常理想的的游戲平臺臺了,而在在geforce256,savarage2000+為代表的四四代卡上OpenGL已經(jīng)是極極為理想的的游戲平臺臺了:夠快快,夠眩?。×硪环矫婷娴紻X7這套東西質(zhì)質(zhì)量已經(jīng)相相當(dāng)不錯錯了,與OpenGL差距已經(jīng)很很小了,而而且是M$的東西……就看你怎么么想了,如如果想學(xué)學(xué)得快,用用得爽,調(diào)調(diào)試方便,,就選OpenGL,如果已經(jīng)經(jīng)適應(yīng)COM體系的思想想那當(dāng)然是是DX自然。OpenGL相關(guān)關(guān)網(wǎng)站OpenGL的官方網(wǎng)站站NeHe的OpenGL教程FlipCDevMOpenGL空間間OpenGL擴展展數(shù)數(shù)據(jù)據(jù)庫庫OpenGLExtensionWranglerLibraryGLEasyExtensionlibraryOpenGL中文文教教學(xué)學(xué)((使使用用c++)OSG:openscenegraphpenSceneGraph是一一個個開開放放源源碼碼,,跨跨平平臺臺的的圖圖形形開開發(fā)發(fā)包包,,它它為為諸諸如如飛飛行行器器仿仿真真,,游游戲戲,,虛虛擬擬現(xiàn)現(xiàn)實實,,科科學(xué)學(xué)計計算算可可視視化化這這樣樣的的高高性性能能圖圖形形應(yīng)應(yīng)用用程程序序開開發(fā)發(fā)而而設(shè)設(shè)計計。。它它基基于于場場景景圖圖的的概概念念,,它它提提供供一一個個在在OpenGL之上上的的面面向向?qū)ο笙蟮牡目蚩蚣芗?,,從從而而能能把把開開發(fā)發(fā)者者從從實實現(xiàn)現(xiàn)和和優(yōu)優(yōu)化化底底層層圖圖形形的的調(diào)調(diào)用用中中解解脫脫出出來來,,并并且且它它為為圖圖形形應(yīng)應(yīng)用用程程序序的的快快速速開開發(fā)發(fā)提提供供很很多多附附加加的的實實用用工工具具。。OSG:openscenegraph有了了OpenSceneGraph,我我們們的的目目標(biāo)標(biāo)是是讓讓所所有有的的人人在在場場景景圖圖技技術(shù)術(shù)中中受受益益,,無無論論是是商商業(yè)業(yè)還還是是非非商商業(yè)業(yè)的的用用戶戶。。它它完完全全是是由由標(biāo)標(biāo)準(zhǔn)準(zhǔn)C++程序序和和OpenGL寫的的,,充充分分利利用用STL和設(shè)設(shè)計計模模式式,,發(fā)發(fā)揮揮開開源源開開發(fā)發(fā)模模型型的的優(yōu)優(yōu)勢勢來來提提供供一一個個免免費費的的開開發(fā)發(fā)庫庫,,并并且且重重點點集集中中在在用用戶戶的的需需求求上上。。隨隨著著使使用用一一個個全全特特性性的的場場景景圖圖OpenSceneGraph的關(guān)關(guān)鍵鍵優(yōu)優(yōu)勢勢在在于于它它的的性性能能、、可可擴擴展展性性、、可可移移植植性性和和快快速速開開發(fā)發(fā)((productivity),,更更具具體體的的來來說說::OSG:openscenegraph數(shù)據(jù)據(jù)裝裝載載為了了讀讀入入和和寫寫出出數(shù)數(shù)據(jù)據(jù)庫庫,,有有一一個個數(shù)數(shù)據(jù)據(jù)庫庫的的支支持持庫庫((osgDB)增增加加了了通通過過后后綴綴名名動動態(tài)態(tài)插插件件機機制制,,從從而而支支持持大大量量數(shù)數(shù)據(jù)據(jù)格格式式,,目目前前的的發(fā)發(fā)布布版版本本有有55種單單獨獨的的插插件件支支持持3D數(shù)據(jù)據(jù)和和圖圖像像格格式式的的裝裝載載。。支支持持的的3D數(shù)據(jù)格式式包括COLLADA,LightWave(.lwo),AliasWavefront(.obj),OpenFlight(.flt),多線程程頁面調(diào)調(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插件支持。。用戶也可以以通過與我我們同行的的一個項目目(VirtualPlanetBuilder)生成大規(guī)規(guī)模地形空空間數(shù)據(jù)((multiGB),使用OpenSceneGraph的自帶數(shù)據(jù)據(jù)分頁調(diào)度度支持來查查看這些數(shù)數(shù)據(jù)。OSG:openscenegraph1998OpenSceneGraph誕生該項目是由由Don在1998的一個業(yè)余余愛好發(fā)展展而來的,做為一種滑滑翔機的場場景模擬器器運行在Linux下。1999初出熔爐在1999年Robert開始著手完完善該項目目并把它移移植到Windows下。在1999年9月,OSG的源碼宣宣布開源源并且OpenSceneGraph應(yīng)運而生生,當(dāng)時時Robert接管了場場景圖的的項目,,而Don則著眼于于滑翔機機的模擬擬。幾易寒暑暑,Robert以一直致致力于加加強對C++標(biāo)準(zhǔn)以及及設(shè)計模模式的理理解以求求場景圖圖可以適適應(yīng)新的的標(biāo)準(zhǔn)和和methodoligy。2000以專業(yè)精精神對待待業(yè)余愛愛好2001OSG專業(yè)化進進程在2001年4月,為把把此項目目在互聯(lián)聯(lián)網(wǎng)上推推廣到全全世界,,Rebert開始全職職開發(fā)此此項目,,建立了了OpenSceneGraph為其提供供商業(yè)支支持,咨詢以及及培訓(xùn)。。2002社區(qū)建立立2003Theyearofscalabilty2004.
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保密協(xié)議2026年模具租賃合同
- 中醫(yī)艾灸美容培訓(xùn)合同2026年
- 家庭護工雇傭合同(2025年老人夜間照護服務(wù))
- 發(fā)動機廠供應(yīng)鏈管理方案
- 化工設(shè)備反應(yīng)釜課件
- 2026年金融科技區(qū)塊鏈服務(wù)創(chuàng)新報告
- 2026年工程項目中的地質(zhì)災(zāi)害識別與評估技術(shù)
- 2026年工程地質(zhì)與水文地質(zhì)的多學(xué)科整合
- 2026年用心鐫刻每一個時刻黑金色的匯報之旅
- 2026年冬季施工安全隱患及案例研究
- 冷庫安全生產(chǎn)責(zé)任制制度
- 陜西省西安市高新一中、交大附中、師大附中2026屆高二生物第一學(xué)期期末調(diào)研模擬試題含解析
- 2025兒童心肺復(fù)蘇與急救指南詳解課件
- 湖北中煙2024年招聘考試真題(含答案解析)
- 運維檔案管理制度
- 2025年航空發(fā)動機涂層材料技術(shù)突破行業(yè)報告
- 2026年汽車美容店員工績效工資考核辦法細則
- 公路施工安全管理課件 模塊五 路基路面施工安全
- 2025智能化產(chǎn)業(yè)市場深度觀察及未來方向與投資潛力研究調(diào)研報告
- 藥企產(chǎn)品經(jīng)理工作全解析
- 護士夜班應(yīng)急預(yù)案
評論
0/150
提交評論