繼續(xù)
上一節(jié)中我教給您三角形和四邊形的繪制方法。這一節(jié)將教您給三角形和四邊形添加2種不同類型的著色方法。使用Flat coloring(單調(diào)著色)給四邊形涂上固定的一種顏色。使用Smooth coloring(平滑著色)將三角形的三個頂點的不同顏色混合在一起,創(chuàng)建漂亮的色彩混合。
繼續(xù)在上節(jié)的glDraw上修改。
PRocedure glDraw();
Begin
glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度緩存
glLoadIdentity(); // 重置當(dāng)前的模型觀察矩陣
glTranslatef(-1.5, 0.0, -6.0); // 左移 1.5 單位,并移入屏幕 6.0
glBegin(GL_TRIANGLES); // 繪制三角形
//glColor3f(r,g,b)。括號中的三個參數(shù)依次是紅、綠、藍(lán)三色分量。
//取值范圍可以從0,0到1.0。類似于以前所講的清除屏幕背景命令。
//我們將顏色設(shè)為紅色(純紅色,無綠色,無藍(lán)色)。
//接下來的一行代碼設(shè)置三角形的第一個頂點(三角形的上頂點),
//并使用當(dāng)前顏色(紅色)來繪制。從現(xiàn)在開始所有的繪制的對象的顏色都是紅色,
//直到我們將紅色改變成別的什么顏色。
glColor3f(1.0, 0.0, 0.0); //設(shè)置當(dāng)前色為紅色
glVertex3f(0.0, 1.0, 0.0); // 上頂點
//第一個紅色頂點已經(jīng)設(shè)置完畢。
//接下來我們設(shè)置第二個綠色頂點。三角形的左下頂點被設(shè)為綠色。
glColor3f(0.0, 1.0, 0.0); //設(shè)置當(dāng)前色為綠色
glVertex3f(-1.0, -1.0, 0.0); // 左下
//三角形的右下頂點。將顏色設(shè)為藍(lán)色
//glEnd()出現(xiàn)后,三角形將被填充。
//但是因為每個頂點有不同的顏色,因此看起來顏色從每個角噴出,
//并剛好在三角形的中心匯合,三種顏色相互混合。這就是平滑著色。
glColor3f(0.0, 0.0, 1.0); //設(shè)置當(dāng)前色為藍(lán)色
glVertex3f(1.0, -1.0, 0.0); // 右下
glEnd(); // 三角形繪制結(jié)束
glTranslatef(3.0, 0.0, 0.0); // 右移3單位
//現(xiàn)在我們繪制一個單調(diào)著色-紫色的正方形。
//最重要的是要記住,設(shè)置當(dāng)前色之后繪制的所有東東都是當(dāng)前色的。
//以后您所創(chuàng)建的每個工程都要使用顏色。
//即便是在完全采用紋理貼圖的時候,
//glColor3f仍舊可以用來調(diào)節(jié)紋理的色調(diào)。
//等等....,以后再說吧。
//(呵呵,原書是藍(lán)色,但是我喜歡紫色)
glBegin(GL_QUADS); // 繪制正方形
glColor3f(0.6, 0.2, 2.0); //設(shè)置當(dāng)前色為紫色
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(); // 正方形繪制結(jié)束
End;
新聞熱點
疑難解答
圖片精選