OpenGL学习笔记1
来源:互联网 发布:java专业培训机构 编辑:程序博客网 时间:2024/04/29 16:44
程序示例:
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学习笔记1
- OpenGL 学习笔记(1)
- Opengl学习笔记1
- opengl 学习笔记1
- opengl学习笔记(1)
- OpenGL学习笔记1
- OpenGL学习笔记1
- opengl学习笔记【1】
- opengl 学习笔记1
- openGL学习笔记 1
- OpenGL学习笔记1:OpenGL概述
- OpenGL 学习笔记(1)
- OpenGL ES2学习笔记(1)-- OpenGL Console
- OpenGL学习笔记(1):VS2012+OpenGL 环境搭建
- opengl 学习笔记(1)setting up opengl
- openGL之光照1---openGL学习笔记(九)
- OpenGL学习笔记: (1)mac下OpenGL环境搭建
- openGL学习笔记1——openGL程序框架
- 析取范式
- android service生命周期
- nginx+uwsgi+django报错:[Errno 13] Permission denied: ‘/root/.python-eggs’
- 关于android SDK安装失败
- 异常:android.os.NetworkOnMainThreadException
- OpenGL学习笔记1
- spring surf 简单介绍
- ./configure make make install分别是什么意思呀
- Hibernate框架下调用Mysql存储过程
- UML 类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
- oracle 重定义表
- 浅析VB.NET方法创建
- hdu4556-Stern-Brocot Tree
- session_start()的配置 php.ini 中 session.auto_start