关于opengl中glColor3f的应用

时间:2022-08-11 19:07:36

做毕设时发现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:红