0
我正在使用C++的OpenGL項目,我想學習如何使用GLSL着色器。問題在於,儘管我可以在不使用自己的着色器的情況下完成我的程序,但我想自己寫(我目前沒有着色器加載自己 - 不確定OpenGL是否默認)。爲了在圖像上繪製一堆線(其頂點存儲在一個向量中,並且顏色值存儲在另一個向量中),我使用下面的代碼遍歷並在幀更新時渲染它們 - 我使用GLUT顯示功能。現在如何使用OpenGL和GLSL改變顏色(C++)?
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
vector<point2>::iterator it;
int c_index = 0;
for(it=points.begin(); it<points.end(); it++){
if(c_index % 2 == 0) //set color for every pair of points (each line)
glColor3f(colors[c_index/2][0], colors[c_index/2][1], colors[c_index/2][2]);
c_index++;
glVertex2f(it->x, it->y); //set vertex
}
glEnd();
glFlush();
,問題是,當我嘗試使用我在另一個例子程序發現着色,顏色全紅(即使着色器沒有明確定義任何顏色)。這也使得glColor3f無所作爲。
我的問題是,假設我可以使用着色器來做到這一點,着色器有什麼樣子,我將如何加載它們?
您使用的是什麼版本的GLSL? (如果你的着色器代碼中沒有使用#version,則可能是GLSL 1.10)。 –
這個特殊的代碼片段對於着色器來說毫無意義。我們需要看到的代碼是着色器本身,着色器對象創建代碼以及統一和屬性綁定。 – datenwolf