【转】OpenGL反走样
反走樣:
?????? 在光柵圖形顯示器上繪制非水平且非垂直的直線或多邊形邊界時,或多或少會呈現鋸齒狀或臺階狀外觀。這是因為直線、多邊形、色彩邊界等是連續的,而光柵則是由離散的點組成,在光柵顯示設備上表現直線、多邊形等,必須在離散位置采樣。由于采樣不充分重建后造成的信息失真,就叫走樣(aliasing)。而用于減少或消除這種效果的技術,就稱為反走樣(antialiasing)。
???????? 計算機生成圖像時通常存在三種走樣現象中的兩種:鋸齒形邊以及圖形細節或紋理繪制失真。第三種現象出現在顯示非常微小對象的場合。
???????? 基本上反走樣方法可分為兩類。第一類是提高分辨率 即增加采樣點(提高采樣頻率)。然而,CRT光柵掃描設備顯示非常精細光柵的能力是有限的,因此人們通常是在較高分辨率上對光柵進行計算,然后采用某種平均算法(濾除高頻分量)得到較低分辨率的象素的屬性,并顯示在分辨率較低的顯示器上 。這種方法稱為超采樣或后置濾波。另一類反走樣是把像素作為一個有限區域,對區域采樣來調整像素的亮度,以光順邊界來減小鋸齒現象 J。這種方法等價于圖像的前置濾波。OpenGL的反走樣函數:
????????? void glHint(GLenum target,GLenum hint);
???????? 其中hint可以是:
????????? GL_FASTEST 給出最有效的選擇
????????? GL_NICEST 給出最高質量的選擇
????????? GL_DONT_CARE 沒有選擇
????????? target 意義
????????? GL_POINT_SMOOTH_HINT 指定點、
????????? GL_LINE_SMOOTH_HINT 線、
?????????? GL_POLYGON_SMOOTH_HINT 多邊形的采樣質量
?????????? GL_FOG_HINT 指出霧化計算是按每個象素進行(GL_NICEST),還是按每個頂點進行(GL_FASTEST)
????????? GL_PERSPECTIVE_CORRECTION_HINT 指定顏色紋理插值的質量
????????? 其中GL_PERSPECTIVE_CORRECTION_HINT用以糾正單純線性插值帶來的觀察錯誤。
OpenGL實現反走樣需要滿足兩個條件,一是啟用混合,二是啟用針對幾何圖元的反走樣處理。
轉載于:https://www.cnblogs.com/lzhitian/archive/2012/12/07/2806473.html
總結
以上是生活随笔為你收集整理的【转】OpenGL反走样的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Silverlight 导入数据时读取t
- 下一篇: 苹果部分机器将转向美国国内生产