天天看點

OpenGL中的着色模式GL_SMOOTH與GL_FLAT

glShadeModel

void glShadeModel ( GLenum mode)是OpenGL1.0提供的接口。作用是設定着色模式。

參數mode可以是GL_SMOOTH(預設值)或GL_FLAT。采用恒定着色時(即GL_FLAT),使用圖元中某個頂點的顔色來渲染整個圖元。

在使用光滑着色時(即GL_SMOOTH),獨立的處理圖元中各個頂點的顔色。對于線段圖元,線段上各點的顔色将根據兩個頂點的顔色通過內插補點得到。對于多邊形圖元,多邊形内部區域的顔色将根據所有頂點的顔色內插補點得到。

來源(百度百科)

·····················································································

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。 本文連結: https://blog.csdn.net/aiwusheng/article/details/8873027

兩種着色模式:平滑着色與單調着色

(1)平滑着色

gl.glShadeModel(GL10.GL_SMOOTH)

平滑着色可以實作一種顔色到另一種顔色的平滑漸變。

一個使用平滑着色的例子,如圖1所示。

OpenGL中的着色模式GL_SMOOTH與GL_FLAT

圖1 平滑着色的例子

給定三個頂點的顔色值順序為紅、綠、藍色。

(2)、單調着色

gl.glShadeModel(GL10. GL_FLAT)

單調着色即GL_FLAT,單調着色表示圖元在内部不進行計算。一般而言,使用單調着色,圖元的内部顔色就是最後一個項點所指定的顔色。唯一例外的是GL_POLYGON( 多邊形 )圖元,它的内部顔色是第一個頂點的顔色。

一個使用單調着色的例子,如圖2所示。

OpenGL中的着色模式GL_SMOOTH與GL_FLAT

圖2 單調着色的例子

給定三個頂點的顔色值順序同樣為紅、綠、藍色。

繼續閱讀