繼續(xù)
上一節(jié)中我教給您三角形和四邊形的繪制方法。這一節(jié)將教您給三角形和四邊形添加2種不同類型的著色方法。使用Flat coloring(單調(diào)著色)給四邊形涂上固定的一種顏色。使用Smooth coloring(平滑著色)將三角形的三個(gè)頂點(diǎn)的不同顏色混合在一起,創(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)。括號(hào)中的三個(gè)參數(shù)依次是紅、綠、藍(lán)三色分量。
//取值范圍可以從0,0到1.0。類似于以前所講的清除屏幕背景命令。
//我們將顏色設(shè)為紅色(純紅色,無(wú)綠色,無(wú)藍(lán)色)。
//接下來(lái)的一行代碼設(shè)置三角形的第一個(gè)頂點(diǎn)(三角形的上頂點(diǎn)),
//并使用當(dāng)前顏色(紅色)來(lái)繪制。從現(xiàn)在開(kāi)始所有的繪制的對(duì)象的顏色都是紅色,
//直到我們將紅色改變成別的什么顏色。
glColor3f(1.0, 0.0, 0.0); //設(shè)置當(dāng)前色為紅色
glVertex3f(0.0, 1.0, 0.0); // 上頂點(diǎn)
//第一個(gè)紅色頂點(diǎn)已經(jīng)設(shè)置完畢。
//接下來(lái)我們?cè)O(shè)置第二個(gè)綠色頂點(diǎn)。三角形的左下頂點(diǎn)被設(shè)為綠色。
glColor3f(0.0, 1.0, 0.0); //設(shè)置當(dāng)前色為綠色
glVertex3f(-1.0, -1.0, 0.0); // 左下
//三角形的右下頂點(diǎn)。將顏色設(shè)為藍(lán)色
//glEnd()出現(xiàn)后,三角形將被填充。
//但是因?yàn)槊總€(gè)頂點(diǎn)有不同的顏色,因此看起來(lái)顏色從每個(gè)角噴出,
//并剛好在三角形的中心匯合,三種顏色相互混合。這就是平滑著色。
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)在我們繪制一個(gè)單調(diào)著色-紫色的正方形。
//最重要的是要記住,設(shè)置當(dāng)前色之后繪制的所有東東都是當(dāng)前色的。
//以后您所創(chuàng)建的每個(gè)工程都要使用顏色。
//即便是在完全采用紋理貼圖的時(shí)候,
//glColor3f仍舊可以用來(lái)調(diào)節(jié)紋理的色調(diào)。
//等等....,以后再說(shuō)吧。
//(呵呵,原書(shū)是藍(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;
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注