OpenGL 程式設計/基礎/顏色
外觀

在計算機圖形學中,有很多方法可以指定顏色,但最簡單和最廣泛使用的方法之一是 RGB 顏色模型。RGB 代表紅色、綠色和藍色:加色三原色。每種顏色都被賦予一個值,在 OpenGL 中通常是 0 到 1 之間的值。1 表示儘可能多的該顏色,0 表示沒有該顏色。我們可以將這三種顏色混合在一起,以獲得完整的顏色範圍,如左側所示。
例如,純紅色表示為 (1, 0, 0),純藍色表示為 (0, 0, 1)。白色是三種顏色的混合,表示為 (1, 1, 1),而黑色是三種顏色的缺失,表示為 (0, 0, 0)。黃色是紅色和綠色的混合,如 (1, 1, 0)。橙色是黃色中帶有一些綠色,表示為 (1, 0.5, 0)。
有關 RGB 的更多資訊,請參閱 維基百科條目.
glColor3f() 接受 3 個引數:你想要的顏色的紅色、綠色和藍色分量。在使用 glColor3f 之後,你繪製的所有內容都將以該顏色顯示。例如,考慮以下顯示函式
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.5f, 0.0f, 1.0f); // (0.5, 0, 1) is half red and full blue, giving dark purple.
glBegin(GL_QUADS);
glVertex2f(-0.75, 0.75);
glVertex2f(-0.75, -0.75);
glVertex2f(0.75, -0.75);
glVertex2f(0.75, 0.75);
glEnd();
glutSwapBuffers();
}
這將輸出一個令人愉快的紫色矩形/四邊形。
嘗試使用 glColor3f(),傳入不同的引數。看看你能否建立深綠色、淺灰色或青色。

glColor3f 可以呼叫在 glBegin 和 glEnd 之間。當以這種方式使用時,它可以用於為每個頂點設定自己的顏色。生成的矩形將被以令人愉快的顏色漸變著色,如右側所示。
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_QUADS);
glColor3f(0.5f, 0.0f, 1.0f); // make this vertex purple
glVertex2f(-0.75, 0.75);
glColor3f(1.0f, 0.0f, 0.0f); // make this vertex red
glVertex2f(-0.75, -0.75);
glColor3f(0.0f, 1.0f, 0.0f); // make this vertex green
glVertex2f(0.75, -0.75);
glColor3f(1.0f, 1.0f, 0.0f); // make this vertex yellow
glVertex2f(0.75, 0.75);
glEnd();
glutSwapBuffers();
}