opengl允許為同一多邊形的不同頂點指定不同的顏色。例如:
#include
const gldouble pi = 3.1415926536;
void mydisplay(void)
glend();
glflush();
}在預設情況下,opengl會計算兩點頂點之間的其它點,並為它們填上「合適」的顏色,使相鄰的點的顏色值都比較接近。如果使用的是rgb模式,看起來就具有漸變的效果。如果是使用顏色索引模式,則其相鄰點的索引值是接近的,如果將顏色表中接近的項設定成接近的顏色,則看起來也是漸變的效果。但如果顏色表中接近的項顏色卻差距很大,則看起來可能是很奇怪的效果。
使用glshademodel函式可以關閉這種計算,如果頂點的顏色不同,則將頂點之間的其它點全部設定為與某乙個點相同。(直線以後指定的點的顏色為準,而多邊形將以任意頂點的顏色為準,由實現決定。)為了避免這個不確定性,盡量在多邊形中使用同一種顏色。
glshademodel的使用方法:
glshademodel(gl_smooth); // 平滑方式,這也是預設方式
glshademodel(gl_flat); // 單色方式
opengl著色步驟
在opengl整個程式的初始化階段 一般是init 函式 做以下工作。1 頂點著色程式的源 和片段作色程式的源 要分別儲存到乙個字元陣列裡面 2 使用glcreateshader 分別建立乙個頂點著色器物件和乙個片段著色器物件 3 使用glshadersource 分別將頂點著色程式的源 字元陣列繫...
OpenGL教程之著色
jeff molofee nehe 的opengl 教程 著色 原 文 lesson 3 colors 譯 者 cker 上一課中我教給您三角形和四邊形的繪製方法。這一課我將教您給三角形和四邊形新增2種不同型別的著色方法。使用單調著色 flat coloring 給四邊形塗上固定的一種顏色。使用平滑...
Opengl(四) 著色器
1.opengl確保至少有16個包含4個元素的頂點屬性可用。2.不同著色器之間的資料傳輸,在傳送方中宣告乙個輸出,在接收方中宣告乙個同名輸入。3.uniform是全域性的,uniform會一直保留他的資料,直到他被重置或更新。4.設定uniform的方式 glint x glgetuniformlo...