1. <rp id="zsypk"></rp>

      2. opengl總結(jié)報(bào)告

        時(shí)間:2020-12-04 10:51:43 報(bào)告 我要投稿

        opengl總結(jié)報(bào)告

          OpenGL總結(jié)

        opengl總結(jié)報(bào)告

          一.OpenGL是做什么的

          一種圖形硬件的接口。而不是像C和C++一樣的編程語(yǔ)言,更像是一個(gè)運(yùn)行庫(kù),提供一些預(yù)先封裝的函數(shù)。

          二.OpenGL的主要功能是什么

          建模,變換,顏色模式設(shè)置,光照和材質(zhì)設(shè)置,紋理映射,位圖顯示和圖像。

          三.OpenGL的體系結(jié)構(gòu)是什么

          最底層為圖形硬件,第二層為操作系統(tǒng),第三層為窗口系統(tǒng),第四層為OpenGL,第五層為應(yīng)用軟件。

          四.怎么樣利用OpenGL來(lái)實(shí)現(xiàn)我們想要做的事情

          首先要明白一點(diǎn),OpenGL是一個(gè)與平臺(tái)無(wú)關(guān)的三維圖形接口,操作系統(tǒng)必須提供像素格式管理和渲染環(huán)境管理。因此要使用OpenGL來(lái)做我們想做的事情的時(shí)候,一定要先為OpenGL搭建一個(gè)窗口環(huán)境。在這個(gè)窗口環(huán)境中,我們才能夠使用OpenGL來(lái)實(shí)現(xiàn)我們自己的目的。

          另外要注意的是OpenGL應(yīng)用的不是保留模式,而是直接模式。即我們?nèi)ゲ僮鞯牟⒎鞘且呀?jīng)封裝好的一些建好的圖形信息,而僅是相當(dāng)于操作一個(gè)圖形界面。也就是說(shuō)如果我們要畫(huà)一個(gè)復(fù)雜的形體,我們要把這個(gè)形體的幾何信息,包括點(diǎn)、線和面的一些信息包括進(jìn)去,然后使用一定的方法,把這些基本的信息合起來(lái),構(gòu)成我們要?jiǎng)?chuàng)建的那個(gè)物體。

          五.繪制圖元能干什么

          此處我們當(dāng)明白,OpenGL能夠繪制復(fù)雜和有趣的圖形,但這些圖形都是由幾個(gè)為數(shù)不多的基本圖形元素構(gòu)建而成的。所以,能夠繪制圖元是我們構(gòu)建一個(gè)復(fù)雜有趣圖形的一個(gè)基礎(chǔ)。這些基本的圖元,包括點(diǎn)、線和面。

          六.變換能干什么

          當(dāng)我們繪制出一個(gè)復(fù)雜或者簡(jiǎn)單圖形的時(shí)候,我們要把這個(gè)圖形顯示到我們的電腦屏幕上。這個(gè)時(shí)候我們可能會(huì)需要用到變換,變換的目的是讓我們能夠從一個(gè)合適的角度,觀察到我們對(duì)圖形中所關(guān)注的那部分。變換包括,視圖變換,模型變換,投影變換。經(jīng)過(guò)這幾個(gè)變換中的一個(gè)變換、幾個(gè)變換或者幾種變換的相互組合,我們可以得到我們想要達(dá)到的效果。

          七.光照能干什么

          我們繪制圖形的時(shí)候要深切地知道一個(gè)事情。那就是我們做出的圖形可能需要有3D效果,或者說(shuō)需要讓我們做出來(lái)的模型更加的有立體感,并和實(shí)際的物體盡量的接近。這個(gè)時(shí)候,我們可能要加上光照。光照讓我們做出的模型更加立體。

          光照模型、明暗處理、光源設(shè)置、材質(zhì)定義。

          真實(shí)感圖形繪制是計(jì)算機(jī)圖形學(xué)的一個(gè)重要組成部分,它綜合利用數(shù)學(xué)、物理學(xué)、計(jì)算機(jī)科學(xué)和其他科學(xué)知識(shí)在計(jì)算機(jī)圖形設(shè)備上生成象彩色照片那樣的具有真實(shí)感的圖形。在計(jì)算機(jī)圖形設(shè)備上生成真實(shí)感圖形須完成以下四個(gè)步驟:

          一是用建模,即用一定的數(shù)學(xué)方法建立所需三維場(chǎng)景的幾何描述,場(chǎng)景的幾何描述直接影響圖形的復(fù)雜性和圖形繪制的計(jì)算耗費(fèi);二是將三維幾何模型經(jīng)過(guò)一定變換轉(zhuǎn)為二維平面透視投影圖;三是確定場(chǎng)景中所有可見(jiàn)面,運(yùn)用隱藏面消隱算法將視域外或被遮擋住的不可見(jiàn)面去除;四是計(jì)算場(chǎng)景中可見(jiàn)面的顏色,即根據(jù)基于光學(xué)物理的光照模型計(jì)算可見(jiàn)面投射到觀察者眼中的光亮度大小和顏色分量,并將它轉(zhuǎn)換成適合圖形設(shè)備的顏色值,從而確定投影畫(huà)面上每一象素的顏色,最終生成圖形。

          簡(jiǎn)單光照模型:當(dāng)光照射到一個(gè)物體表面上時(shí),出現(xiàn)三種情形。

          只考慮被照明物體表面的反射光影響,假定物體表面光滑不透明其由理想材料構(gòu)成,環(huán)境假設(shè)為白光照明。

          環(huán)境反射,慢反射和鏡面反射。

          創(chuàng)建光源,啟動(dòng)光照,明暗處理(在計(jì)算機(jī)圖形學(xué)中,光滑的曲面表面常用多邊形予以逼近和表示,而每個(gè)小多邊形輪廓(或內(nèi)部)就用單一的顏色或許多不同的顏色來(lái)勾畫(huà)(或填充),這種處理方式就成為明暗處理。)

          材質(zhì):材質(zhì)顏色,材質(zhì)定義

          OpenGL用材料對(duì)光的紅、綠、藍(lán)三原色的反射率來(lái)近似定義材料的顏色。象光源一樣,材料顏色也分成環(huán)境、漫反射和鏡面反射成分,它們決定了材料對(duì)環(huán)境光、漫反射光和鏡面反射光的反射程度。

          八.顏色能干什么

          顏色生成原理,計(jì)算機(jī)屏幕上每一個(gè)點(diǎn)的顏色都是由監(jiān)視器內(nèi)部的電子槍激發(fā)的三束不同顏色的光混合而成。

          兩種顏色模式:RGB(RGBA)模式和顏色表模式。在RGB模式下,所有的顏色定義全用RGB三個(gè)值來(lái)表示,有時(shí)也加上alpha值。顏色表模式下,每一個(gè)象素的顏色是用顏色表中的某個(gè)顏色索引值表示,這個(gè)顏色索引值指向了相應(yīng)的R、G、B值。

          glcolor*();glIndex*();

          單調(diào)著色(flat)和平滑著色(smooth)

          顏色的作用之一是能讓我們做出的圖形的3D效果更好。

          用法:

          九.混合,抗鋸齒,霧,多邊形偏移,這些干什么

          當(dāng)我們想通過(guò)一個(gè)顏色的物體,看到另一個(gè)顏色物體的時(shí)候,這時(shí)候要使用混合的功能。OpenGL會(huì)把源顏色和目標(biāo)顏色各自取出,并乘以一個(gè)系數(shù)(源顏色乘以的系數(shù)稱(chēng)為“源因子”,目標(biāo)顏色乘以的系數(shù)稱(chēng)為“目標(biāo)因子”),然后相加,這樣就得到了新的顏色。原因子和目標(biāo)因子是可以通過(guò)glBlendFunc函數(shù)來(lái)進(jìn)行設(shè)置的。glBlendFunc有兩個(gè)參數(shù),前者表示源因子,后者表示目標(biāo)因子。

          圖形繪制到屏幕時(shí),光柵化圖像通過(guò)離散的像素點(diǎn)來(lái)表示,如此繪制出來(lái)的圖元會(huì)產(chǎn)生鋸齒。而抗鋸齒則是一種處理,通過(guò)這種處理可以在一定程度上消除鋸齒的影響,增強(qiáng)顯示效果。glHint()來(lái)對(duì)圖像質(zhì)量和繪制速度之間的權(quán)衡作一些控制。

          為了讓我們做出來(lái)的圖形和真實(shí)的景物,自然中的景物更加的逼近,要加上一個(gè)特效即霧。有了霧的效果,場(chǎng)景看起來(lái)才會(huì)更加真實(shí)。在OpenGL中,實(shí)現(xiàn)霧的.效果。其工作模式有兩種:線型模式和指數(shù)模式。兩種模式是根據(jù)霧的濃度變化來(lái)區(qū)分的。線型模式中,提供一個(gè)距離視點(diǎn)的開(kāi)始位置和結(jié)束位置。從開(kāi)始到結(jié)束,霧的濃度越來(lái)越高。濃度變化和距離成正比。指數(shù)模式下,霧的濃度隨著距離增長(zhǎng)呈指數(shù)增長(zhǎng)。這種模式常用來(lái)用于煙霧。煙幕效果。開(kāi)啟glEnable(GL_FOG),取消霧的效果glDisable(GL_FOG)。

          線框和填充物體重合時(shí),看起來(lái)可能很丑陋;使多邊形偏移,改變其深度值,可以使帶輪廓的物體更美觀。著重顯示實(shí)心物體邊緣時(shí),可以用GL_FILL繪制這個(gè)物體,再用GL_LINE重新繪制這個(gè)物體。

          十.為什么使用顯示列表

          顯示列表是一組存儲(chǔ)在一起的OpenGL函數(shù),是由一組預(yù)先存儲(chǔ)起來(lái)的留待以后調(diào)用OpenGL函數(shù)語(yǔ)句組成,當(dāng)調(diào)用這張顯示列表時(shí)就依次執(zhí)行表中所列出的函數(shù)語(yǔ)句。

          其優(yōu)勢(shì)是OpenGL顯示列表的設(shè)計(jì)能優(yōu)化程序運(yùn)行性能,尤其是網(wǎng)絡(luò)性能。它被設(shè)計(jì)成命令高速緩存,而不是動(dòng)態(tài)數(shù)據(jù)庫(kù)緩存。即一旦建立了顯示列表,就不能修改它。因?yàn)槿麸@示列表可以被修改,則顯示列表的搜索,內(nèi)存管理的執(zhí)行等開(kāi)銷(xiāo)會(huì)降低性能。如此,也就失去了其最大的優(yōu)勢(shì)。顯示列表方式繪圖比瞬時(shí)方式快,尤其是顯示列表方式可以大量地提高網(wǎng)絡(luò)

          性能,當(dāng)通過(guò)網(wǎng)絡(luò)發(fā)出繪圖命令時(shí),由于顯示列表駐留在服務(wù)器中,因而使網(wǎng)絡(luò)的負(fù)擔(dān)減輕到最小。在單用戶(hù)的機(jī)器上,顯示列表同樣可以提高效率。一旦顯示列表被處理成適合于圖形硬件的格式,則不同的OpenGL實(shí)現(xiàn)對(duì)命令的優(yōu)化程度也不同。

          顯示列表的適用場(chǎng)合。需要注意的是并不是只要調(diào)用顯示列表就能優(yōu)化程序性能。因?yàn)檎{(diào)用顯示列表本身時(shí)程序也有一些開(kāi)銷(xiāo),若一個(gè)顯示列表太小,這個(gè)開(kāi)銷(xiāo)將超過(guò)顯示列表的優(yōu)越性。

          矩陣操作,光柵位圖和圖像,光、材質(zhì)和光照模型、紋理、多邊形的填充模式。

          void glNewList(GLuint list,GLenum mode);

          void glEndList(void);

          void glCallList(GLuint list);

          十一. 紋理,和繪制像素,位圖,字體,圖像

          當(dāng)我們想要使繪制出的模型顯得更加得真實(shí),此時(shí)我們可能需要給圖形加上紋理,尤其是真實(shí)感的物體。紋理映射的方式,讓我們?cè)诶L制真實(shí)感圖形的時(shí)候,變得簡(jiǎn)單。紋理映射能夠保證在變換多邊形時(shí),多邊形上的紋理圖案也隨之變化。

          紋理映射的基本步驟:定義紋理,控制濾波,說(shuō)明映射方式,繪制場(chǎng)景——給出頂點(diǎn)和紋理坐標(biāo)和幾何坐標(biāo)。

          紋理映射只能在RGBA方式下執(zhí)行,不能運(yùn)用于顏色表方式。

          計(jì)算機(jī)保存圖象的方法有兩種:矢量圖和像素圖。矢量圖保存了圖象中每一個(gè)幾何物體的位置、形狀、大小等信息。像素圖是將完整的圖像縱橫分為若干行、列,這些行列使得圖象被分割為很細(xì)小的分塊,每一分塊稱(chēng)為像素,保存每一像素的顏色也就保存了整個(gè)圖像。

          glReadPixels:讀取一些像素,把已經(jīng)繪制好的像素(可能已經(jīng)被保存到顯卡的顯存中)讀到內(nèi)存。

          glDrawPixels:繪制一些像素,把內(nèi)存中一些數(shù)據(jù)作為像素?cái)?shù)據(jù),進(jìn)行繪制。

          glCopyPixels:復(fù)制一些像素,把已經(jīng)繪制好的像素從一個(gè)位置復(fù)制到另一個(gè)位置。

          OpenGL除去點(diǎn),線,多邊形,的另外兩種重要的數(shù)據(jù)類(lèi)型:位圖和圖像。這兩種數(shù)據(jù)都是以象素矩陣形式存儲(chǔ),即用一個(gè)矩形數(shù)組來(lái)表示某一位圖或圖像。二者不同之處是位圖包含每個(gè)象素的一位信息,而圖像數(shù)據(jù)一般包含每個(gè)象素的多位信息;位圖類(lèi)似于掩碼,

          可用于遮掩別的圖像,而圖像數(shù)據(jù)則簡(jiǎn)單地覆蓋先前已經(jīng)存在的數(shù)據(jù)或與之混合。

          十二. 幀緩存

          顏色緩存color buffer其中內(nèi)容可以是顏色索引或者RGBA數(shù)據(jù),如果用OPENGL系統(tǒng)支持立體圖,則有左右兩個(gè)緩存。

          深度緩存depth buffer就是Z-BUffER,用于保存像素Z方向的數(shù)值,深度大的被深度小的代替,用以實(shí)現(xiàn)消隱。

          模板緩存Stencil Buffer用以保持屏幕上某些位置圖形不變,而其他部分重繪。

          累計(jì)緩存Accumulation buffer只保存RGBA數(shù)據(jù),用于合成圖象。

          glGetIntegerv()查詢(xún)每個(gè)像素占據(jù)的緩存空間的參數(shù)。

          顏色緩存存儲(chǔ)了顏色索引或RGB顏色數(shù)據(jù),還可能存儲(chǔ)了alpha值

          支持立體觀察stereoscopic viewing的OpenGL實(shí)現(xiàn)有左顏色緩存和右顏色緩存,它們分別用于左立體圖象和右立體圖象。

          深度緩存,存儲(chǔ)了每個(gè)像素的深度值,通常是離視點(diǎn)的距離,因此深度值大的像素會(huì)被深度值小的像素覆蓋。

          累積緩存也存儲(chǔ)RGBA顏色數(shù)據(jù),將一系列的圖像合成一幅圖像。可以對(duì)圖像進(jìn)行超量采樣,然后對(duì)樣本進(jìn)行平均,并將結(jié)果寫(xiě)入顏色緩存中,從而實(shí)現(xiàn)場(chǎng)景反走樣,不能將數(shù)據(jù)直接寫(xiě)入累積緩存,累加操作總是針對(duì)一個(gè)矩形塊的,通常是將數(shù)據(jù)移入或移出顏色緩存。

          清空緩存

          指定要讀寫(xiě)的顏色緩存

          寫(xiě)入glDrawBuffer();

          讀取glReadBuffer();

          屏蔽緩存:設(shè)置掩碼,用于控制寫(xiě)入到指定緩存中的數(shù)據(jù)。

          禁用深度緩存:如果背景很復(fù)雜,則在背景繪制之后,禁用深度緩存,繪制新增物體,只要不相互重疊。下一幀時(shí),只需要恢復(fù)數(shù)據(jù)圖像,無(wú)需恢復(fù)深度緩存中的值。

        【opengl總結(jié)報(bào)告】相關(guān)文章:

        季度個(gè)人總結(jié)報(bào)告01-19

        會(huì)議總結(jié)報(bào)告范文01-12

        月度會(huì)議總結(jié)報(bào)告08-18

        員工述職總結(jié)報(bào)告10-11

        會(huì)議的總結(jié)報(bào)告范文01-09

        會(huì)議組織總結(jié)報(bào)告結(jié)尾01-28

        務(wù)虛會(huì)會(huì)議總結(jié)報(bào)告09-06

        店長(zhǎng)月度會(huì)議總結(jié)報(bào)告08-27

        會(huì)議總結(jié)報(bào)告范文通用08-16

        銷(xiāo)售會(huì)議總結(jié)報(bào)告范文08-05

        99热这里只有精品国产7_欧美色欲色综合色欲久久_中文字幕无码精品亚洲资源网久久_91热久久免费频精品无码
          1. <rp id="zsypk"></rp>