歡迎光(guāng)臨,新啓科(kē)技(jì)
帶著(zhe)這(zhè)個(gè)疑問(wèn),小(xiǎo)編αΩδ查閱到(dào)OpenGL相(xiàng)關介紹,希望對(≈ ÷©duì)大(dà)家(jiā)有(yǒu)幫助
Op₽•enGL是(shì)個(gè)開(kāi)放(fàng)性↑''的(de)庫,支持Windows、類Unix、Linux、Macε$✔OS等平台。
OpenGL₹≥:行(xíng)業(yè)領域中最為(wèi)廣∑πε¶泛接納的(de)2D/3D圖形API,OpenGL?幫助程序員(yuán)←±實現(xiàn)在PC、工(gōng)作(zuò)站(zhàn)、∑超級計(jì)算(suàn)機(jī)等硬件(jiàn)設備上(shàn€>✘→g)的(de)高(gāo)性能(néng)、極πα¶具沖擊力的(de)高(gāo)視(shì)覺表♣✘現(xiàn)力圖形處理(lǐ)軟件(jiàn)的(de₽Ω☆)開(kāi)發。
Op≈↑<∞enGL是(shì)一(yī)個(gè)開(↑₽kāi)放(fàng)的(de)三維圖形軟件(jiàn)包,它獨 ≈立于窗(chuāng)口系統和(hé)操作∞•δ¥(zuò)系統,以它為(wèi)基礎開(kāi)發的(de)應用(yòΩ↓ng)程序可(kě)以十分(fēn)方便地(dì)在各種平台間(♠¥jiān)移植;OpenGL可(kě)以與Vi §sual C++緊密接口,便于實現(xiàn)機(j±♥σ₩ī)械手的(de)有(yǒu)關計(jì)算(suàn)和(hé)圖形算('₽suàn)法,可(kě)保證算(suàn)法的∞☆(de)正确性和(hé)可(kě)靠性;OpenGL使用(yòng)簡便,λ↓φ效率高(gāo)。它具有(yǒu)七大(dà)功∑"能(néng):
1.建模:OpenGL圖形<♥→δ庫除了(le)提供基本的(de)點、線、多(duō)邊形的(de)繪制(•÷★zhì)函數(shù)外(wài),還(hái)提供了(l®♠e)複雜(zá)的(de)三維物(wù)體(↕tǐ)(球、錐、多(duō)面體(tǐ)、茶壺等)以及∑©↕¶複雜(zá)曲線和(hé)曲面繪制(zhì)函數(shù)≥ &。
2.變換:OpenG§>♣L圖形庫的(de)變換包括基本變換和(hé)投影(yǐ×€∏∑ng)變換。基本變換有(yǒu)平移、旋轉、&₩縮放(fàng)、鏡像四種變換,投影(yǐng)變換有αα☆₽(yǒu)平行(xíng)投影(yǐng)(又(yò$£δ€u)稱正射投影(yǐng))和(hé)透視(shì)投 影(yǐng)兩 種變換。其變換方法有(yǒu)利于減少(shǎo)算(₽§suàn)法的(de)運行(xíng)時(shí)間(jiān),提高('♦δ±gāo)三維圖形的(de)顯示速度。
3.顔色模式設置:Open₩×<↕GL顔色模式有(yǒu)兩種,即RGBA模式和(hé)顔色索引(Col✔φor Index)。
&n÷♦φbsp;4.光(guāng)照(zhào)和(hé)材質設置:Op>©enGL光(guāng)有(yǒu)自(zì)發光(•guāng)(Emitted Light)、環境光(guāng)(Ambien✔∑≠t Light)、漫反射光(guāng)(Diffuse Lig♠≠¶¥ht)和(hé)高(gāo)光(guāng)(Specular Light☆γ↓<)。材質是(shì)用(yòng)光(gu×✘āng)反射率來(lái)表示。場(chǎ↔φ'₩ng)景(Scene)中物(wù)體(tǐ)最終反映到(dào)人(r€♠σ≤én)眼的(de)顔色是(shì)光(guāng£σ )的(de)紅(hóng)綠(lǜ)藍(lán)分(fēn)量™∑與材質紅(hóng)綠(lǜ)藍(lán)分(fēn)量的(d®™♠e)反射率相(xiàng)乘後形成的(de)顔色。
5.紋理" λ(lǐ)映射(Texture Mapping):利用(yòng)Open✔✘GL紋理(lǐ)映射功能(néng)可(kě)以₩ ☆ 十分(fēn)逼真地(dì)表達物(wù)體(≥¥tǐ)表面細節。
6.位φσ÷圖顯示和(hé)圖象增強圖象功能(néng$≠$): 除了(le)基本的(de)拷貝和(hé)像素讀(dú)™↑€€寫外(wài),還(hái)提供融合(Blendi<↕☆→ng)、抗鋸齒(反走樣)(Antialiasing)和(h≠ "é)霧(fog)的(de)特殊圖象效果處理(l± ∏ǐ)。以上(shàng)三條可(kě)使被仿真物(wù)更具真實感,增€'強圖形顯示的(de)效果。
 γ≈♥₩;7.雙緩存動畫(huà)(Double Buffering)♦∑:雙緩存即前台緩存和(hé)後台緩存,簡言之,後台緩存計(jì✔≥≈↔)算(suàn)場(chǎng)景、生(shēng)成畫(huà)面,✘ ¥前台緩存顯示後台緩存已畫(huà)好(hǎo)的(de)畫(huà)面。此外(♦>wài),利用(yòng)OpenGL還(♣✔$ hái)能(néng)實現(xiàn)深度暗(àn)示(Depth C♠ue)、運動模糊(Motion Blur)等特 ★♣≠殊效果。從(cóng)而實現(xiàn)了(le)消隐算(suàn)法。Op→±∞enGL設備運用(yòng),目前瑞芯微(wēi)2918芯片和(h©≈é)英偉達芯片Tegra2就(jiù)是(shì)采用(yò¥✘ng)OpenGL 2.0技(jì)術(shù)進行(xí¥♦¥≤ng)圖形處理(lǐ),而基于瑞芯微(wēi)2918芯片方案代表₩是(shì)台電(diàn)T760和(hé)微(wφ∏ēi)蜂X7平闆電(diàn)腦(nǎo)所采用σ∏♦(yòng)到(dào)。
8.高(gāo)級功能(≈≤∞néng):OpenGL被設計(jì)為(wèi)隻有(y✔Ω₹ǒu)輸出的(de),所以它隻提供渲染功能(néng)。核心API沒有₽¶(yǒu) 窗(chuāng)口系統、音(yīn)頻(píφ♠✔n)、打印、鍵盤/鼠标或其它輸入設備的(de)概念。雖±≥然這(zhè)一(yī)開(kāi)始看(kànβ)起來(lái)像是(shì)一(yī)種限↑↔☆ 制(zhì),但(dàn)它允許進行(xí™ ng)渲染的(de)代碼完全獨立于他(tā)運行(xíng)的(de)操Ω¶σ作(zuò)系統,允許跨平 台開(kāi)發。÷然而,有(yǒu)些(xiē)整合于原生(shēng)窗(chuān™↓↑✔g)口系統的(de)東(dōng)西(xī)需要(yào)允許和(h♥±πé)宿主系統交互。這(zhè)通(tōng)過下( εxià)列附加API實現(xiàn):
* GLX - X11(包括α✔透明(míng)的(de)網絡)
*€$ WGL - Microsoft Win< ×dows
* AGL♦∏>♦ - Apple MacOS
& ←®∏nbsp;另外(wài),GLUT庫能(néng)夠∏ ©☆以可(kě)移植的(de)方式提供基本的(de)窗(chuāng)口功能←₽₹(néng)。
當獨立廠(chǎng)→£α商創建一(yī)種新技(jì)術(shù)時(shí)•≤,OpenGL标準允許它們通(tōng)過“擴展β δ”的(de)方法提供所擴展的(de)功能(nén↓ ∑g)。然後一(yī)個(gè)擴展就(j±$☆iù)分(fēn)成兩部分(fēn)發布:包含擴展函$ ¶數(shù)原型的(de)頭文(wén)件(jiàn)和(hé≈ )作(zuò)為(wèi)廠(chǎng)商的(de)設備驅動。每個(gè±≤ )廠(chǎng)商有(yǒu)一(yī)個(gè)用(yòn<×€g)于命名它們的(de)新函數(shù)和(hé)常量的(d↔©βe)字母縮寫。例如(rú),NVIDIA的(de)縮寫¶•♥π(“NV”)用(yòng)于定義它們的("εde)專有(yǒu)函數(shù)“glΩ'£↔CombinerPara-meterfvNV()”和(hé"Ω)它們的(de)常量 “GL_NORMAL_MAP_NV”。如(rú)果§&→多(duō)于一(yī)個(gè)廠(chǎ✘©λ∞ng)商同意實現(xiàn)相(xiàng)同的(de)擴展功能∏σ (néng),那(nà)麽就(jiù)用(yòng)縮寫≥₹“EXT”。進一(yī)步,架構評審委員(yuán)會(huì)可(kě)£γ能(néng)“祝福”這(zhè)個(gè)擴 ∞♣©↔展,那(nà)麽這(zhè)就(jiù)被→ 稱為(wèi)一(yī)個(gè)“标準擴展”,使用(yòng)縮寫“ARπ¶∑σB”。第一(yī)個(gè)ARB擴展是(shì)GL_ARB_mult©itexture。根據官方擴展提升路(lù)徑,₹ 多(duō)紋理(lǐ)不(bù) 再是(sh×↕ì)可(kě)選實現(xiàn)的(de)ARB擴展,它已經是(s↓™₩πhì)OpenGL 1.4以後的(de)核心API的(de)一(yī)部分(&λ±fēn)。幾個(gè)庫創建在OpenGL之上(shàng),提供了<$β(le)OpenGL本身(shēn)沒有(yǒu)的(de)功能(néng) ÷α:
1)GLU
&nb≤πsp;2)GLUT
♠₩→≠3)GLUI
 λ₩;4)GLEW
5)GLEE[σ$2]
6)FREE₹'∞€GLUT(GLUT已經于1998年(nián)不(bù)再更新了(l♦♥e)。于是(shì)就(jiù)有(yǒu)≥>了(le)freeglut)
&$$Ωnbsp;特别是(shì),OpenGL☆" Performer庫——由SGI開(kā§&✘i)發并可(kě)以在IRIX、Linux和(hé)Microsoft γ÷×Windows的(de)一(yī)些(xiē)版本上(shà₽ γ₹ng)使用(yòng),構建于OpenGL,可→≈φ(kě)以創建實時(shí)可(kě)視γ≤¥&(shì)化(huà)仿真程序。當開(kāi)發者需要(yào)使用(yòn÷↑×g)最新的(de)OpenGL擴展時(shí),他(tā)們往往需要(yào&")使用(yòng)GLEW或者是(shì)GL™¶≈₹EE庫提供的(de)功能(néng),可(kě)以在程序的(de)運≥ 行(xíng)期判斷當前硬件(jiàn)是(shì)否支持相(∏☆↓xiàng)關的(de)擴展,防止程序崩潰甚至造成硬件(jiàn₽ &)損壞。