opengl支援兩種顏色模式:一種是rgba,一種是顏色索引模式。
無論哪種顏色模式,計算機都必須為每乙個畫素儲存一些資料。不同的是,rgba模式中,資料直接就代表了顏色;而顏色索引模式中,資料代表的是乙個索引,要得到真正的顏色,還必須去查索引表。
ex:
void mydisplay(void)
glcolor3f裡面的3個引數分別用來設定rgb三個分量的值,a採用預設值。上面的r=g=b=0.5f表示 各個分量的值相等,所以顯示為灰色:
glclear(gl_color_buffer_bit);意思是把螢幕上的顏色清空。
glclearcolor來指定「空」的顏色。比如,上述程式中,如果在glclear(gl_color_buffer_bit);
glclearcolor(1.0f, 0.0f, 0.0f, 0.0f);
那麼」空「就是紅色了。那麼,執行後,可以得到如下結果:
opengl允許為同一多邊形的不同頂點指定不同的顏色。例如
#include #include const gldouble pi = 3.1415926536;
void mydisplay(void)
glend();
glflush();
}int main(int argc, char *argv)
結果如下:
在預設情況下,opengl會計算兩點頂點之間的其它點,並為它們填上「合適」的顏色,使相鄰的點的顏色值都比較接近。如果使用的是rgb模式,看起來就具有漸變的效果。如果是使用顏色索引模式,則其相鄰點的索引值是接近的,如果將顏色表中接近的項設定成接近的顏色,則看起來也是漸變的效果。但如果顏色表中接近的項顏色卻差距很大,則看起來可能是很奇怪的效果。
使用glshademodel函式可以關閉這種計算,如果頂點的顏色不同,則將頂點之間的其它點全部設定為與某乙個點相同。(直線以後指定的點的顏色為準,而多邊形將以任意頂點的顏色為準,由實現決定。)為了避免這個不確定性,盡量在多邊形中使用同一種顏色。
glshademodel的使用方法:
glshademodel(gl_smooth); // 平滑方式,這也是預設方式
glshademodel(gl_flat); // 單色方式
採用單色方式結果如下:
OpenGL學習筆記 顏色
opengl支援兩種顏色模式 一種是rgba,一種是顏色索引模式。無論哪種顏色模式,計算機都必須為每乙個畫素儲存一些資料。不同的是,rgba模式中,資料直接就代表了顏色 而顏色索引模式中,資料代表的是乙個索引,要得到真正的顏色,還必須去查索引表。pc程式開發中,使用索引顏色已經不是主流。一些小型裝置...
openGL 學習筆記 2
藍寶書 第二章 1 windows平台使用標頭檔案 根據環境不同會有變化 include include include 2 opengl變數型別與c語言變數型別對應表 表2.1 第81頁 3 api函式命名規則 庫字首 根命令 引數數量 引數型別 glcolor3f 4 常見rgb復合顏色表 表2...
openGL學習筆記(2)
x,y,z 組合起來表示兩個重要的值,乙個是方向,乙個是向量 多邊形面積公式 float s 0.0 for i 0 i0 順時針給予點 a是背面的面積 a 0 ab bc ac ab ac cb 共同起點指向被減 已知兩個非零向量a,b 作 oa a ob b 則角aob稱為向量a和向量b的夾角 ...