读书人

glClearColor的用法,该如何处理

发布时间: 2012-05-20 16:03:12 作者: rapoo

glClearColor的用法
各位大虾,我是菜鸟,最近学习OpenGl遇到了问题以下是我的代码,代码没错,我就是想知道怎么把glClearColor
函数加进去,怎么设定RGBA?还有注释掉glRectf函数后,glutSolidSphere和glutwireSphere这两个函数又怎么运用在下面这个代码中?
#include <glut.h>
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f( 0.0, 1.0, 0.0 );
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
int main(int argc,char *argv[])
{

glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);

glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}



[解决办法]

探讨
在display之前调用glClearColor(r,g,b,a),传入的是rgba值,范围0~1
至于glutSolidSphere和glutWireSphere函数可已在display的任何地方调用,第一个是半径,后两个是分别控制水平切面和竖直方向的精度,值越大,就越趋近于圆球

[解决办法]
#include <glut.h>
void myDisplay(void)
{
glClearColor(0.5f,0.5f,1.0f,0.0f);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f( 0.0, 1.0, 0.0 );
glRectf(-0.5f,-0.5f,0.5f,0.5f);
glFlush();
}
int main(int argc,char *argv[])
{

glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);

glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return 0;
}
大概就是这样用的吧,我也刚学的。
一起努力吧。

读书人网 >C++

热点推荐