做毕设时发现glColor3f会互相影响,想着说是否可以排除glColor3f的影响?
后来发现其实没必要,其就是opengl是状态机,也就是设置一个状态后它就保持那个状态进行渲染
因此如果要排除glColor3f的影响就要重新设置颜色状态
PS:各种颜色对应的参数(转别人的)
glColor3f(0.0, 0.0, 0.0); --> 黑色
glColor3f(1.0, 0.0, 0.0); --> 红色
glColor3f(0.0, 1.0, 0.0); --> 绿色
glColor3f(0.0, 0.0, 1.0); --> 蓝色
glColor3f(1.0, 1.0, 0.0); --> 黄色
glColor3f(0.0, 1.0, 1.0); --> 青色
glColor3f(1.0, 1.0, 1.0); --> 白色
如想要对图形A用红色,图形B用蓝色,图形C用绿色
则代码应该这么写
glColor3f(1,0,0);
draw_A();
glColor3f(0,0,1);
draw_B();
glColor3f(0,1,0);
draw_C();
如果按下面的写法则会产生不同的效果
glColor3f(1,0,0);
draw_A();
draw_B();
glColor3f(0,1,0);
draw_C();
glColor3f(1,0,0);
draw_B();
绘制出的图形及颜色分别为
A:红 B:红 C:绿 B:红