openGL學習筆記2(顏色)

2021-06-16 07:57:05 字數 1154 閱讀 7746

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的夾角 ...