OpenGL超級寶典筆記4


第六章 顏色和材料的更多細節

學習如何使用混合來創建透明和反射表面,使用OpenGL的混合和多重採樣特性實現點、直線和多邊形的抗鋸齒處理。還學習OpenGL如何支持其他的顏色操作,如何使用alpha測試丟棄部分片段。

a) 組合顏色 當混合功能被啓用時,源顏色和目標顏色的組合方式是由混合方程式控制的。在默認情況下,混合方程式如下:Cf = Cs x S+Cd x D),其中Cf是最終計算產生的顏色,Cs是源顏色,Cd是目標顏色。函數如下:glBlendFunc(GLenum s, GLenum D);

b) 抗鋸齒 這是混合的另外一個用途。爲了消除元圖之間的鋸齒狀邊緣,OpenGL使用混合功能來混合片段的顏色,也就是把像素的目標顏色與周圍的顏色進行混合。設置混合函數如下:glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);glBlendFunc()函數默認設置爲GL_ADD.多重採樣方法,更方便解決整個場景進行抗鋸齒處理,glEnable(GL_MULTISAMPLE);打開多重採樣,同樣用glDisable來關閉。

c) 應用霧 可以實現逐漸變模糊的效果。glEnable(GL_FOG);//打開霧效果glFogfv(GL_FOG_COLOR, flowLighr);//設置霧顏色,與背景匹配。

d) 累積緩衝區 允許在渲染到顏色緩衝區之後不是吧結果顯示到窗口上,而是把顏色緩衝區的內容複製到累積緩衝區。以下函數控制累積緩衝區的行爲:void glAccum(GLenum op, GLfloat value);第一個參數指定哪種累積操作,第二個參數是浮點值,用於對操作進行縮放。

e) 其他顏色操作 包括顏色掩碼,顏色邏輯操作,alpha測試,抖動。

 

 

第七章 OpenGL中的圖像

學習OpenGL對彩色圖像操作提供的方法,從顏色緩衝區直接讀取位圖圖像以及把位圖圖像寫入到顏色緩衝區、顏色處理操作以及顏色查找映射,還有圖像處理子集。

a)   設置光柵位置glRasterPos2(GLint x, GLint y);glBitmap函數把參數所提供的位圖複製到顏色緩衝區的當前光柵位置,並可以進行一個可選的操作,同時推進光柵位置。Void glBitmap(GLsize width, GLsize height, GLfloat xorig , GLfloat yorig, GLfloat xmove , GLfloat ymove , GLubye *bitmap);xorig,yorig這是位圖的原點,xmoveymove爲偏移量。 

b)   像素圖 每個像素可以由超過一個位的存儲空間來表示,每個像素多出來的這些位可以存儲這個像素的強度或者顏色成分值。Void glDrawPixels(GLsizei width, GLsizei height , GLenum format, GLenum type , const void *pixels);第三個參數指定了圖像數據的格式,接下來是圖像數據的數據類型,然後是一個指向數據本身的指針。

c) 圖像的更多樂趣 像素縮放:void glPixelZoom(GLfloat xfactor , GLfloat yfactor);參數爲縮放數量。像素轉移: void glPixelTransferi(GLenum pname, GLint param);void glPixelTransferf(GLenum pname, GLfloat param);偏轉值會加到顏色成分值中。像素映射:glPixelMapuiv(GLenum map, GLint mapsize , GLuint *values);(只列出其中一種)任一種顏色可以轉換成另外一種顏色值,可以用於彩色修正等。

d) 圖像“子集” 根據功能可以分爲3個主要領域:顏色矩陣和顏色表、卷積以及柱狀圖。顏色矩陣,可以把顏色值看成色彩空間中的座標,這樣RGB就近似於一個在顏色立方體中以這三種顏色爲軸的XYZ座標系統,alpha顏色成分看成是W成分,函數glMatrixMode(GL_COLOR);顏色表:void glColorTable (GLenum target, GLenum internalFormat, GLsizei width , GLenum format, GLenum type, const GLvoid *table);一個包含各個顏色值的表格,用於替換一個像素的當前顏色。卷積是圖像處理管線的一部分,可以與其他圖像處理操作進行組合,例如銳化卷積和浮雕卷積。

 

發佈了140 篇原創文章 · 獲贊 10 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章