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();
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();
相关文章推荐
- OpenGL 学习笔记(4)顶点数组
- OpenGL学习笔记:bump mapping
- OpenGL学习笔记之摄像机跟随
- opengl学习小笔记(3)直线段的绘制之DDA 算法
- OpenGL学习笔记(8)显示列表
- OpenGL 学习笔记
- OpenGL学习笔记(二)
- OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)
- OpenGL学习笔记1:OpenGL概述
- 【OpenGL】nehe教程第二、三课学习笔记
- OpenGL 学习笔记(3)绘制几何物体
- OpenGL学习笔记(一):OpenGL环境搭建
- 《OpenGL游戏程序设计》学习笔记---第七章图像、位图与OpenGL
- OpenGL学习笔记:二次曲面--gluQuadric
- OpenGL 学习笔记一
- OPENGL学习笔记(六)
- OpenGL学习笔记(十)
- OpenGl学习笔记1——建立一个可以支持OpenGL的窗口
- 【转】opengl学习笔记之光照、材质
- 学习笔记:GLSL Core Tutorial – Pipeline (OpenGL 3.2 – OpenGL 4.2)