计算机图形学 第二 OpenGL环境下图形系统设计.ppt
文本预览下载声明
void Myinit(void) { glClearColor (0, 0,0, 0.0); // 设置RGBA模式 glMatrixMode(GL_PROJECTION); glLoadIdentity();//把投影矩阵置为单位阵 gluOrtho2D (0.0,1024,0.0,768);//定义世界坐标的裁剪窗口,也就是通常说的视口 //也就是在这个范围内的物体都将正投影到X0Y平面 } void Display(void) { glClear(GL_COLOR_BUFFER_BIT); //1@ 清除颜色缓冲区。 glBegin (GL_LINES); glColor3f(1,1, 1.0); glVertex2f(0, 0); glVertex2f(600, 400); glEnd(); glFlush();//所有未被执行的命令被执行单缓冲区需要强制执行一次glFlush(),进行一次刷新操作。 } 需要把glut32.dll 拷贝到c:\windows\system32, 把 glut32.lib 拷贝到 c:\msdev\lib, 把glut.h 拷贝到 c:\msdev\include\gl 。 计算机图形学 计算机图形学 * 计算机图形学 * OpenGL简介 * 计算机图形学 * 1 概 述 OpenGL是一个功能强大的图形库,用户可以方便地利用它开发出有多种特殊视觉效果(如光照、纹理、透明、阴影)的二维、三维图形。 其前身是SGI公司为其图形工作站设计的一个图形开发软件库IRIS GL(graphics library图形库),由于其性能优越,受到了用户的一致推崇。 OpenGL经过对GL的进一步发展,实现二维和三维的高级图形技术,在性能上表现得异常优越。它的功能包括建模、变换、光线处理、色彩处理、动画以及更先进的能力,如纹理影射、物体运动模糊等。OpenGL的这些能力为实现逼真的三维渲染效果、建立交互的三维景观等提供了条件。 * 计算机图形学 * 2 OpenGL应用程序的工作过程 作为图形硬件的软件接口,OpenGL最主要的工作就是将二维及三维物体描绘至帧缓存中。这些物体由一系列的描述物体几何性质的顶点(Vertex)或描述图像的像素(Pixel)组成。OpenGL执行一系列的操作后把这些数据最终转化成像素数据,并在帧缓存中形成最后的结果。下面对OpenGL的工作做概要性介绍。 * 计算机图形学 * 在屏幕上显示图像的步骤是以下3步: 1、构造几何要素(点、线、多边形、位图),创建对象的数学描述;在三维空间上放置对象,选择合适的场景观察点。 2、计算对象的颜色,这些颜色可能直接定义或由光照条件及纹理间接给出。 3、光栅化,把对象的数学描述和颜色信息转换到屏幕的像素。 * 计算机图形学 * 3 OpenGL的简单例程 #include GL/glut.h int main(int argc, char** argv) { glutInit(argc, argv); //初始化GLUT glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); //设置显示模式位单缓存,RGB模式 glutInitWindowSize (800, 600); //设置窗口大小 glutInitWindowPosition(0,100); glutCreateWindow(Line DDA algorithm !); //创建一个渲染窗口,并吧标题栏设置为相应字符串 Myinit(); //窗口初始化 glutDisplayFunc (Display); //调用显示函数 glutMainLoop(); // 必须添加的函数,用来维持显示图像显示过程的交互,而且必须作为最后调用的一个函数 return 0; } * 计算机图形学 * 4 OpenGL程序的基本结构 1、初始化部分 2、设置观察坐标系下的取景模式和取景框位置及大小。 3、OpenGL的主要部分 使用OpenGL的库函数构造几何物体对象的数学描述,包括点划线的位置和拓扑关系,几何变换,光照处理等等。 * 计算机图形学 * 5、 OpenGL的基本语法规则 OpenGL的数据类型 表9-1列出了OpenGL数据类型在32位Windows环境下相应的C数据类型以及字面值所用的前缀。 前缀 数据类型 相应C语言类型 OpenGL类型 b 8位整数 sign
显示全部