opengl總結報告

時間:2020-12-04 10:51:43 報告 我要投稿

opengl總結報告

  OpenGL總結

opengl總結報告

  一.OpenGL是做什么的

  一種圖形硬件的接口。而不是像C和C++一樣的編程語言,更像是一個運行庫,提供一些預先封裝的函數。

  二.OpenGL的主要功能是什么

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

  三.OpenGL的體系結構是什么

  最底層為圖形硬件,第二層為操作系統,第三層為窗口系統,第四層為OpenGL,第五層為應用軟件。

  四.怎么樣利用OpenGL來實現我們想要做的事情

  首先要明白一點,OpenGL是一個與平臺無關的三維圖形接口,操作系統必須提供像素格式管理和渲染環境管理。因此要使用OpenGL來做我們想做的事情的時候,一定要先為OpenGL搭建一個窗口環境。在這個窗口環境中,我們才能夠使用OpenGL來實現我們自己的目的。

  另外要注意的是OpenGL應用的不是保留模式,而是直接模式。即我們去操作的并非是已經封裝好的一些建好的圖形信息,而僅是相當于操作一個圖形界面。也就是說如果我們要畫一個復雜的形體,我們要把這個形體的幾何信息,包括點、線和面的一些信息包括進去,然后使用一定的方法,把這些基本的信息合起來,構成我們要創建的那個物體。

  五.繪制圖元能干什么

  此處我們當明白,OpenGL能夠繪制復雜和有趣的圖形,但這些圖形都是由幾個為數不多的基本圖形元素構建而成的。所以,能夠繪制圖元是我們構建一個復雜有趣圖形的一個基礎。這些基本的圖元,包括點、線和面。

  六.變換能干什么

  當我們繪制出一個復雜或者簡單圖形的時候,我們要把這個圖形顯示到我們的電腦屏幕上。這個時候我們可能會需要用到變換,變換的目的是讓我們能夠從一個合適的角度,觀察到我們對圖形中所關注的那部分。變換包括,視圖變換,模型變換,投影變換。經過這幾個變換中的一個變換、幾個變換或者幾種變換的相互組合,我們可以得到我們想要達到的效果。

  七.光照能干什么

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

  光照模型、明暗處理、光源設置、材質定義。

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

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

  簡單光照模型:當光照射到一個物體表面上時,出現三種情形。

  只考慮被照明物體表面的反射光影響,假定物體表面光滑不透明其由理想材料構成,環境假設為白光照明。

  環境反射,慢反射和鏡面反射。

  創建光源,啟動光照,明暗處理(在計算機圖形學中,光滑的曲面表面常用多邊形予以逼近和表示,而每個小多邊形輪廓(或內部)就用單一的顏色或許多不同的顏色來勾畫(或填充),這種處理方式就成為明暗處理。)

  材質:材質顏色,材質定義

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

  八.顏色能干什么

  顏色生成原理,計算機屏幕上每一個點的顏色都是由監視器內部的電子槍激發的三束不同顏色的光混合而成。

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

  glcolor*();glIndex*();

  單調著色(flat)和平滑著色(smooth)

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

  用法:

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

  當我們想通過一個顏色的物體,看到另一個顏色物體的時候,這時候要使用混合的功能。OpenGL會把源顏色和目標顏色各自取出,并乘以一個系數(源顏色乘以的系數稱為“源因子”,目標顏色乘以的系數稱為“目標因子”),然后相加,這樣就得到了新的顏色。原因子和目標因子是可以通過glBlendFunc函數來進行設置的。glBlendFunc有兩個參數,前者表示源因子,后者表示目標因子。

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

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

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

  十.為什么使用顯示列表

  顯示列表是一組存儲在一起的OpenGL函數,是由一組預先存儲起來的留待以后調用OpenGL函數語句組成,當調用這張顯示列表時就依次執行表中所列出的函數語句。

  其優勢是OpenGL顯示列表的設計能優化程序運行性能,尤其是網絡性能。它被設計成命令高速緩存,而不是動態數據庫緩存。即一旦建立了顯示列表,就不能修改它。因為若顯示列表可以被修改,則顯示列表的搜索,內存管理的執行等開銷會降低性能。如此,也就失去了其最大的優勢。顯示列表方式繪圖比瞬時方式快,尤其是顯示列表方式可以大量地提高網絡

  性能,當通過網絡發出繪圖命令時,由于顯示列表駐留在服務器中,因而使網絡的負擔減輕到最小。在單用戶的機器上,顯示列表同樣可以提高效率。一旦顯示列表被處理成適合于圖形硬件的格式,則不同的OpenGL實現對命令的優化程度也不同。

  顯示列表的適用場合。需要注意的是并不是只要調用顯示列表就能優化程序性能。因為調用顯示列表本身時程序也有一些開銷,若一個顯示列表太小,這個開銷將超過顯示列表的優越性。

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

  void glNewList(GLuint list,GLenum mode);

  void glEndList(void);

  void glCallList(GLuint list);

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

  當我們想要使繪制出的模型顯得更加得真實,此時我們可能需要給圖形加上紋理,尤其是真實感的物體。紋理映射的方式,讓我們在繪制真實感圖形的時候,變得簡單。紋理映射能夠保證在變換多邊形時,多邊形上的紋理圖案也隨之變化。

  紋理映射的基本步驟:定義紋理,控制濾波,說明映射方式,繪制場景——給出頂點和紋理坐標和幾何坐標。

  紋理映射只能在RGBA方式下執行,不能運用于顏色表方式。

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

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

  glDrawPixels:繪制一些像素,把內存中一些數據作為像素數據,進行繪制。

  glCopyPixels:復制一些像素,把已經繪制好的像素從一個位置復制到另一個位置。

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

  可用于遮掩別的圖像,而圖像數據則簡單地覆蓋先前已經存在的數據或與之混合。

  十二. 幀緩存

  顏色緩存color buffer其中內容可以是顏色索引或者RGBA數據,如果用OPENGL系統支持立體圖,則有左右兩個緩存。

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

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

  累計緩存Accumulation buffer只保存RGBA數據,用于合成圖象。

  glGetIntegerv()查詢每個像素占據的緩存空間的參數。

  顏色緩存存儲了顏色索引或RGB顏色數據,還可能存儲了alpha值

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

  深度緩存,存儲了每個像素的深度值,通常是離視點的距離,因此深度值大的像素會被深度值小的像素覆蓋。

  累積緩存也存儲RGBA顏色數據,將一系列的圖像合成一幅圖像。可以對圖像進行超量采樣,然后對樣本進行平均,并將結果寫入顏色緩存中,從而實現場景反走樣,不能將數據直接寫入累積緩存,累加操作總是針對一個矩形塊的,通常是將數據移入或移出顏色緩存。

  清空緩存

  指定要讀寫的顏色緩存

  寫入glDrawBuffer();

  讀取glReadBuffer();

  屏蔽緩存:設置掩碼,用于控制寫入到指定緩存中的數據。

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

【opengl總結報告】相關文章:

季度個人總結報告01-19

會議總結報告范文01-12

月度會議總結報告08-18

員工述職總結報告10-11

會議的總結報告范文01-09

會議組織總結報告結尾01-28

務虛會會議總結報告09-06

店長月度會議總結報告08-27

會議總結報告范文通用08-16

銷售會議總結報告范文08-05

人人狠狠综合99综合久久,欧美日韩国产精品中文,极品精品国产超清自在线,人人澡欧美一区
亚洲产在线精品亚洲第一站1 | 日韩在线观看免费一二三区 | 色综合伊人丁香五月婷婷综合缴情 | 最新国产AV网址 | 一线天粉嫩在线视频 | 亚洲日本在线在线看片4k超清 |