一步一步接触更深的知识,由于本人也是初学,错误难免会有,还望指出。
现在学习一下在OpenGL学习之安装配置(2)中,测试例子用到的几个函数,
根据《OpenGL编程指南》了解:
1. glutInit(int *argc, char **argv) :
对GLUT进行初始化,并处里所有的命令行参数,特别注意(要在调用其他glut函数之前调用它)。
2.glutInitDisplayMode(unsigned int mode):
指定使用RGBA还是颜色索引模式,单缓冲还是双缓冲窗口,是否需要相关联的深度、模板、
多重采样或累积缓冲区,比如:glutDisplayMode(GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH)..
3.glutInitWindowPosition 和 glutInitWindowSize
看英文就知道是确定窗口位置和窗口大小,各是两个参数:前者(int x, int y),后者:(int width, int height)
4.glutInitCreateWindow(char *string)
创建一个支持OpenGL渲染环境的窗口,参数窗口标题。注意:调用glutMainLoop()函数之前,窗口并未显示。
5.glutDisplayFunc(void (*func)(void))
显示回调函数,可见参数是个无参,无返回类型的函数,每次重新显示窗口内容,
注册函数就会被调用,应把重绘场景的代码放在这个回显函数里。
6 glutMianLoop()
简单的说就是窗口主循环(消息循环)(自己理解)。
到这里窗口初始化就算完了。
下面就是如何编写函数:display()(名字可以随便起)。
void display()
{
glClear(GL_COLOR_BUFFER_BIT); // 背景色
glColor3f(1.0f, 0.5f, 0.5f); // 绘制颜色(这里)
glRectf(-0.5f, -0.5f, 0.5f, 0.5f); // 矩形
glFlush(); // 显示
}
1.glClear(GLbitfield mask):清除所需要清除的缓冲区,
GL_COLOR_BUFFER_BIT 颜色缓冲
GL_DEPTH_BUFFER_BIT 深度缓冲
GL_ACCUM_BUFFER_BIT 累积缓冲
GL_STENCIL_BUFFER_BIT 模板缓冲
在test.c中将背景色变为默认窗口,如需显示其他颜色,就要在glClear之前调用
glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) RGBA格式。
2.glColor3*():指定绘制颜色,函数样式较多,其实参数类型不同,具体参见百度
3.glRect*():指定绘制实心矩形的位置和尺寸,原点为窗口中心,函数样式同上,百度
除了绘制矩形还有绘制点,直线,多边形等很多基本图元的函数。
4.glFlush():强制完成绘图操作,刷新缓冲,显示绘制效果。
为了熟练使用绘制函数可以传递不同的数值来观察效果。