OpenGL学习- Triangle
2013-01-12 14:17
176 查看
本博客纯属个人学习记录笔记,请勿做评论,如果有错,可以指出,非常感谢.
OpenGL 数据类型
GLenum: 用于GL枚举的无符号 整型
GLboolean: 布尔类型
GLbitfield 将多个布尔值(最多 32个)打包到单个使用位操作变量的 四位字节整形
GLbyte 有符号字节整型
GLshort 有符号双字节整形
GLint 有符号四个字节整型
GLsizei 有符号四字节整型
GLubyte 无符号单字节整型
GLushort 无符号双字节整型
GLuint 无符号四字节整型
GLfloat 四字节浮点数
GLclampf 四字节精度浮点数
GLvoid void表示没有返回值或者参数
GLfixed 定点数,使用整型进行存储
GLclampx 另一种定点数
本节用到的OpenGL的函数
void glutInit(int argc,char ** args);
void glutInitDisplayMode(unsigned int mode);//设置初始显示模式
glutInitWindowSize//设置窗口大小
glutInitWindowPosition//设置窗口位置
glutCreateWindow//创建一个窗口
glClearColor//用指定的颜色清除窗口颜色
glClear
glBegin
glShadeMode
glColor3f
glVertex2f
glEnd
glFlush
glViewport
glMatrixMode
glLoadIdentity
gluOrtho2D
glutReshapeFunc
glutDisplayFunc
glutMainLoop
绘画出一个三角形
OpenGL 数据类型
GLenum: 用于GL枚举的无符号 整型
GLboolean: 布尔类型
GLbitfield 将多个布尔值(最多 32个)打包到单个使用位操作变量的 四位字节整形
GLbyte 有符号字节整型
GLshort 有符号双字节整形
GLint 有符号四个字节整型
GLsizei 有符号四字节整型
GLubyte 无符号单字节整型
GLushort 无符号双字节整型
GLuint 无符号四字节整型
GLfloat 四字节浮点数
GLclampf 四字节精度浮点数
GLvoid void表示没有返回值或者参数
GLfixed 定点数,使用整型进行存储
GLclampx 另一种定点数
本节用到的OpenGL的函数
void glutInit(int argc,char ** args);
void glutInitDisplayMode(unsigned int mode);//设置初始显示模式
glutInitWindowSize//设置窗口大小
glutInitWindowPosition//设置窗口位置
glutCreateWindow//创建一个窗口
glClearColor//用指定的颜色清除窗口颜色
glClear
glBegin
glShadeMode
glColor3f
glVertex2f
glEnd
glFlush
glViewport
glMatrixMode
glLoadIdentity
gluOrtho2D
glutReshapeFunc
glutDisplayFunc
glutMainLoop
绘画出一个三角形
void BackGround(){ //用制定的颜色来清除当前窗口颜色 //rgba 0 0 0 0 代表为黑色,透明 glClearColor(0.0,0.0,0.0,0.0); } void myDisplay(){ //清除缓存使用写操作的颜色缓存 glClear(GL_COLOR_BUFFER_BIT); //开始绘制图形 /** GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, GL_POLYGON **/ glBegin(GL_TRIANGLES); //在使用光滑着色时(即GL_SMOOTH), //独立的处理图元中各个顶点的颜色。 //对于线段图元,线段上各点的颜色将根据两个顶点的颜色通过插值得到。 //对于多边形图元,多边形内部区域的颜色将根据所有顶点的颜色插值得到。 glShadeModel(GL_SMOOTH); //paint the first point glColor3f(1.0,0.0,0.0); glVertex2f(-1.0,-1.0); glColor3f(0.0,1.0,0.0); glVertex2f(0.0,-1.0); glColor3f(0.0,0.0,1.0); glVertex2f(-0.5,1.0); // glEnd(); //用于强制刷新缓冲,保证绘图命令将被执行, //而不是存储在缓冲区[2]中等待其他的OpenGL命令 glFlush(); } void myReshape(GLsizei w,GLsizei h){ /**计算机图形学中,在屏幕上打开窗口的任务是由窗口系统,而不是图1 图1 OpenGL负责的。 在默认情况下,视口被设置为占据打开窗口的整个像素矩形, 窗口大小和设置视口大小相同,所以为了选择一个更小的绘图区域, 就可以用glViewport函数来实现这一变换, 在窗口中定义一个像素矩形, 最终将图像映射到这个矩形中,**/ //这里设置opengl 绘制的区域为w,h,就整个打开窗口的大小 glViewport(0,0,w,h); //指定哪一个矩阵是当前矩阵, //GL_PROJECTION 表示对模型视景矩阵堆栈应用随后的矩阵操作 glMatrixMode(GL_PROJECTION); //重置当前指定的矩阵为单位矩阵 glLoadIdentity(); //正投影 if(w<=h){ //正投影 gluOrtho2D(-1.0,1.5,-1.5,1.5*(GLfloat)h/(GLfloat)w); }else{ gluOrtho2D(-1.0,1.5*(GLfloat)w/(GLfloat)h,-1.5,1.5); } } int main(int argc,char ** argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(400,400); glutInitWindowPosition(200,200); glutCreateWindow("Triangle"); BackGround(); //窗口形状发生变化的回调函数 。 glutReshapeFunc(myReshape); //glutDisplayFunc函数用于注册一个绘图函数, 这样操作系统在必要时刻就会对窗体进行重新绘制操作 glutDisplayFunc(myDisplay); glutMainLoop(); return 0; }
相关文章推荐
- 【学习OpenGL】Hello Triangle 绘制三角形
- 计算机图形学——OpenGL学习系列之绘制3D下的小桌子
- OpenGL入门学习[七] 光照的基本知识
- LearnOpenGL学习笔记1:创建窗口
- OpenGL学习脚印: 基本图形绘制方式比较(glBegin,glCallList,glVertexPointer,VBO)
- OpenGL入门学习
- openGl-ES学习与使用心得-入门级
- OpenGL学习之材质RGB值和光源RGB值关系
- OpenGL学习笔记(二)
- OpenMesh学习笔记5 OpenMesh+OpenGL的一个例子
- OPENGL入门学习
- OpenGL颜色学习
- OpenGL学习笔记2:绘制和混合
- 学习OpenGL(二)双缓冲绘图
- openGL学习笔记(1)——几个函数
- OpenGL step by step - tutorial_3 "hello triangle"
- OpenGL4.x学习之使用绘制三角形
- OpenGL学习记录(1)
- 小菜学Chromium之OpenGL学习之二
- OpenGL学习--03--矩阵