繼續
上一節我教您三角形和四邊形的繪製方法。這一節將教您為三角形和四邊形添加2種不同類型的著色方法。使用Flat coloring(單調著色)為四邊形塗上固定的一種顏色。使用Smooth coloring(平滑著色)將三角形的三個頂點的不同顏色混合在一起,創造出漂亮的色彩混合。
繼續在上節的glDraw上修改。
PRocedure glDraw();
Begin
glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // 清除螢幕與深度緩存
glLoadIdentity(); // 重置目前的模型觀察矩陣
glTranslatef(-1.5, 0.0, -6.0); // 左移1.5 單位,並移入螢幕6.0
glBegin(GL_TRIANGLES); // 繪製三角形
//glColor3f(r,g,b)。括號中的三個參數依序是紅、綠、藍三色分量。
//取值範圍可以從0,0到1.0。類似於先前所講的清除螢幕背景指令。
//我們將顏色設為紅色(純紅色,無綠色,無藍色)。
//接下來的一行程式碼設定三角形的第一個頂點(三角形的上頂點),
//並使用目前顏色(紅色)來繪製。從現在開始所有的繪製的物件的顏色都是紅色,
//直到我們把紅色改變成別的什麼顏色。
glColor3f(1.0, 0.0, 0.0); //設定目前色為紅色
glVertex3f(0.0, 1.0, 0.0); // 上頂點
//第一個紅色頂點已經設定完畢。
//接下來我們設定第二個綠色頂點。三角形的左下頂點被設為綠色。
glColor3f(0.0, 1.0, 0.0); //設定目前色為綠色
glVertex3f(-1.0, -1.0, 0.0); // 左下
//三角形的右下頂點。將顏色設為藍色
//glEnd()出現後,三角形將會填滿。
//但是因為每個頂點有不同的顏色,因此看起來顏色從每個角噴出,
//並且剛好在三角形的中心匯合,三種顏色互相混合。這就是平滑著色。
glColor3f(0.0, 0.0, 1.0); //設定目前色為藍色
glVertex3f(1.0, -1.0, 0.0); // 右下
glEnd(); // 三角形繪製結束
glTranslatef(3.0, 0.0, 0.0); // 右移3單位
//現在我們繪製一個單調著色-紫色的正方形。
//最重要的是要記住,設定當前色之後繪製的所有東東都是當前色的。
//以後您所建立的每個工程都要使用顏色。
//即便是在完全採用紋理貼圖的時候,
//glColor3f仍舊可以用來調整紋理的色調。
//等等....,以後再說吧。
//(呵呵,原書是藍色,但我喜歡紫色)
glBegin(GL_QUADS); // 繪製正方形
glColor3f(0.6, 0.2, 2.0); //設定目前色為紫色
glVertex3f(-1.0, 1.0, 0.0); // 左上
glVertex3f(1.0, 1.0, 0.0); // 右上
glVertex3f(1.0, -1.0, 0.0); // 左下
glVertex3f(-1.0, -1.0, 0.0); // 右下
glEnd(); // 正方形繪製結束
End;