您的位置:首页 > 运维架构

OpenGL学习笔记1

2013-06-08 15:03 183 查看
程序示例:
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;
}
1、glutInit:在其他GLUT使用之前调用,照抄;
2、glutInitDisplayMode:GLUT_RGB、GLUT_INDEX、GLUT_SINGLE、GLUT_DOUBLE。
3、glutInitWindowPosition:设置窗口的位置;
4、glutInitWindowSize:设置窗口的大小;
5、glutCreateWindow:参数将被作为窗口的标题;
6、glutDisplayFunc:当需要进行画图时,这个函数就会被调用;
7、glutMainLoop:这个函数可以显示窗口,并且等待窗口关闭后才会返回;
8、glClear:GL_COLOR_BUFFER_BIT;
9、glRectf:四个参数表示两个对角线坐标;
10、glFlush:保证前面的GL命令立即被执行。
一、指定一个点
OpenGL提供了一系列函数。它们都以glVertex开头,后面跟一个数字和1~2个字母。例如:glVertex2d、glVertex2f,数字表示参数的个数,2表示有两个参数;字母表示参数的类型:
s表示16位整数(OpenGL中将这个类型定义为GLshort),

i表示32位整数(OpenGL中将这个类型定义为GLint和GLsizei),

f表示32位浮点数(OpenGL中将这个类型定义为GLfloat和GLclampf),

d表示64位浮点数(OpenGL中将这个类型定义为GLdouble和GLclampd),

v表示传递的几个参数将使用指针的方式。
注意:OpenGL的很多函数都是采用这样的形式,一个相同的前缀再加上参数说明标记,这一点会随着学习的深入而有更多的体会。
二、绘制
OpenGL要求:指定顶点的命令必须包含在glBegin函数之后,glEnd函数之前,并由glBegin来指明如何使用这些点。

glBegin(GL_POINTS);

glVertex2f(0.0f, 0.0f);

glVertex2f(0.5f, 0.0f);

glEnd();
如果将GL_POINTS替换成GL_LINES,则两个点将被认为是直线的两个端点,OpenGL将会画出一条直线。
glBegin支持的方式除了GL_POINTS和GL_LINES,还有GL_LINE_STRIP,GL_LINE_LOOP,GL_TRIANGLES,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN等



三、设置点、线的大小和粗细
glPointSize(GLfloat size);
glLineWidth(GLfloat width);
四、画虚线
glEnable(GL_LINE_STIPPLE);
glLineStipple(2, 0x0F0F);
glLineWidth(10.0f);
glBegin(GL_LINES);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.5f);
glEnd();
glFlush();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: