圖形繪制到屏幕時,光柵化圖象通過離散的像素點來表示,因此所繪制的圖元(比如直線)會產生鋸齒,這類鋸齒也稱作走樣。消除鋸齒的技術稱為反走樣,也叫做抗鋸齒,通過這類處理可在1定程度上消除鋸齒的影響,增強顯示效果。在OpenGL中,可通過函數glHint()來對圖象質量和繪制速度之間的權衡作1些控制,其函數情勢為:
void glHint(GLenum target,GLenum hint);
參數target說明控制甚么行動:GL_POINT_SMOOTH_HINT、GL_LINE_SMOOTH_HINT和GL_POLYGON_SMOOTH_HINT分別指定點、線和多邊形的采樣質量;GL_FOG_HINT指出霧是按像素進行(GL_NICEST)還是按頂點進行(GL_FASTEST);GL_PERSPECTIVE_CORRECTION_HINT指定了色彩紋理插值的質量并可糾正由單純線性插值所帶來的1些視覺毛病。參數hint可以是:GL_FASTEST(給出最有效的選擇)、GL_NICEST(給出最高質量的選擇)、GL_DONT_CARE(沒有選擇)。
雖然在OpenGL的色彩索引模式下也能夠實現反走樣,但仍建議在RGBA模式下進行。對圖元進行反走樣時也要先調用glEnable()函數啟動反走樣(其參數為GL_POINT、GL_LINE_SMOOTH或GL_POLYGON_SMOOTH)。如果是在RGBA模式下進行反走樣,還必須與融會配合使用,通常使用GL_SRC_ALPHA和GL_ONE_MINUS_SRC_ALPHA分別作為源和目的因子。
openGL中使用反走樣,需要在設置函數中進行設置,下面設置反走樣的代碼:
// Initialize OpenGL's rendering modes寫1個openGL程序畫1個點,如果沒有抗鋸齒,則為方形的。如果我們啟動抗鋸齒設置,則點是1個圓點。
未啟用
啟用
寫1個opengl 畫1個線,很明顯,啟用抗鋸齒后,粗線變成了矩形,而未啟動則是1個平行4邊形
未啟用
啟用
上一篇 在北京注冊公司的全過程