openGL初学函数解释汇总

openGL初学函数解释汇总

1.GLUT工具包提供的函数

//GLUT工具包所提供的函数
    glutInit(&argc, argv);//对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);//初始化显示模式,(颜色使用RGB,单缓冲GLUT_SINGLE\GLUT_DOUBLE双缓冲)
    glutInitWindowPosition(100, 100);//初始化窗口位置
    glutInitWindowSize(400, 400);//初始化窗口大小
    glutCreateWindow("OpenGL程序窗口");//创建窗口
    glutDisplayFunc(&myDisplay);//作图时一定要调用的函数
    glutIdleFunc(&myIdle);//空闲时调用
    glutMainLoop();//进行一个消息循环,显示图像,窗口关闭则返回

2.OpenGL的标准函数

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清空颜色缓存以及深度缓存
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);//画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标
glFlush();//保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)。其作用跟fflush(stdout)类似


//顶点的使用glVertex3f(1.0f, 3.0f, 0.0f);//其中前缀glVertex不变,后面的3代表点的维度,f是浮点型(也可为i,d等等)glBegin(GL_POINTS);//指定顶点的命令必须包含在glBegin函数之后,glEnd函数之前(否则指定的顶点将被忽略),括号中的参数指的是利用顶点需要的绘制的图像的类型,下面会有几种参数的介绍......//输入顶点,要按一定顺序输入(程序会按顺序处理输入的顶点,glbegin()中的参数会告诉我们如何处理顶点)glEnd();//glBegin()当中的几种参数类型的介绍GL_POINTS:按顺序在图中画出顶点GL_LINES:将输入的顶点两两组合,绘制成线段GL_TRIANGLE_FAN:输入的第一个点作为中心点,其余的点,按输入顺序,每两个点就可以和中心点组合成为一个三角形GL_POLYGON,GL_LINE_LOOP:输入顶点绘制成凸多边形

//顶点,直线,多边形的修整函数//关于定点glPointSize(5.0f);//定义顶点的大小//关于直线glLineWidth(5.0f);//定义直线的宽度glEnable(GL_LINE_STIPPLE);//启用虚线模式,glDisable(GL_LINE_STIPPLE)可以关闭之glLineStipple(1, 0x5555);//前一个参数是连续线段最大长度,后一个参数的二进制是16位,每一位如果是1那么画出点,否则不画//关于多边形//(1)多边形两面的绘制方式glPolygonMode(GL_FRONT,GL_FILL);//凸多边形模式(正面or反面,填充方式[绘制边界或填充图案等等])glPolygonMode(GL_BACK, GL_LINE);//同上介绍glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); // 同上介绍,设置两面均为顶点绘制方式//(2)多边形正反面的概念glFrontFace(GL_CCW);//定义凸包点列逆时针分布的面为正面,其中参数GL_CCW即为逆时针旋转,改为GL_CW则效果相反//(3)剔除多边形表面glEnable(GL_CULL_FACE);//来启动剔除功能(使用glDisable(GL_CULL_FACE)可以关闭之)glCullFace(GL_BACK);//剔除多边形的反面,参数还可以是:GL_FRONT,GL_FRONT_AND_BACK//(4)镂空的多边形,类似虚直线,多边形也可以镂空glEnable(GL_POLYGON_STIPPLE);//来启动镂空模式(使用glDisable(GL_POLYGON_STIPPLE)可以关闭之)glPolygonStipple(Mask);//其中Mask数组定义为static GLubyte Mask[128];自定义一幅图画,如何调取出图画的Mask数组?以下为调用方法/////////////////////////////////////////////static GLubyte Mask[128];FILE *fp;fp = fopen("mask.bmp", "rb");//打开保存的bmp文件if( !fp )exit(0);if( fseek(fp, -(int)sizeof(Mask), SEEK_END) )//移动文件指针,使得再读sizeof(Mask)个字节就会到达文件末尾exit(0);if( !fread(Mask, sizeof(Mask), 1, fp) )//读取文件sizeof(Mask)个字节到Mask数组中exit(0);fclose(fp);glEnable(GL_POLYGON_STIPPLE);glPolygonStipple(Mask);glRectf(-0.5f, -0.5f, 0.0f, 0.0f);   // 在左下方绘制一个有镂空效果的正方形/////////////////////////////////////////////

//颜色的使用glColor3f(0.0f, 1.0f, 1.0f);//前缀glColor不变,后缀3f代表有3个浮点型参数作为点的三维坐标glClearColor(1.0f, 0.0f, 0.0f, 0.0f);//定义“空”的颜色类型(也可以认为是最初的背景色)glShadeModel(GL_SMOOTH);    // 平滑方式,这也是默认方式glShadeModel(GL_FLAT);      // 单色方式

//模型变换和视图变换glMatrixMode(GL_MODELVIEW);//设置当前操作的矩阵为“模型视图矩阵”,及可以利用矩阵进行旋转等变换glLoadIdentity();//将当前矩阵设置为单位矩阵(还未进行任何旋转操作)glRotatef(30.0, 0.0f, 0.0f, -1.0f);//glRotate前缀不变,后缀f代表参数是浮点型,第一个参数是旋转角度,后三个参数代表按照向量n=(0,0,-1)为轴进行旋转glTranslatef(1.0f, 2.0f, 3.0f);//函数形式和旋转函数类似,3个参数的含义分别是沿着X,Y,Z轴正方向平移的距离glScalef(1.0f,2.0f,3.0f);//函数形式同上,3个参数的含义:调用该函数以后,所有函数点的X,Y,Z坐标会乘上3个参数当中相应位置的参数数值,譬如参数为(1,2,3),则(x,y,z)变换后为(x,2y,3z)gluLookAt(0, -20, 20, 0, 0, 0, 0, 0, 1);//(前三个参数为观察点位置坐标,中间三个参数为观察目标的位置坐标,后三个参数为观察者认为的上方的方向向量)

原文地址:https://www.cnblogs.com/ZefengYao/p/9261005.html

时间: 2024-11-08 23:53:04

openGL初学函数解释汇总的相关文章

OpenGL glMatrixMode() 函数解释与例子

概述 glMatrixMode() 用以指定当前要操作的矩阵,可选值有 GL_MODELVIEW(模型视图,默认值),GL_PROJECTION(投影),GL_TEXTURE(纹理),GL_COLOR(颜色) 当我们使用 glMatrixMode(GL_MODELVIEW) 时,即表示我们接下来要对模型视图矩阵堆栈进行一些操作(Applies subsequent matrix operations to the modelview matrix stack),例如位移,旋转,缩放,亦或是是要添

VB中DateDiff 函数解释

VB中DateDiff 函数使用方法 DateDiff (interval, Date1 , Date2[,firstweekofyear[,firstweekofyear]]) 返回一个Variant(long) 的值,表示两个指定日期间的时间间隔数目 interval:设定两个日期之间的期间计算之单位.譬如 >interval="m" 表示计算的单位为月. >interval 的设定值如: yyyy > Year 年 q Quarter 季 m Month 月 d

OpenGL位图函数

[OpenGL位图函数] 1.OpenGL中glBitmap用于绘制一个二值阵列. When drawn, the bitmap is positioned relative to the current raster position, and framebuffer pixels corresponding to 1s in the bitmap are written using the current raster color or index. Frame-buffer pixels

一些缩写的解释汇总(RMI,JBI,RPC等等)

RMI: Remote Method Invocation 是java编程语言里,一种用于实现远程过程调用的应用程序编程接口.它使客户机上运行的程序可以调用远程服务器上的对象. 参考:http://zh.wikipedia.org/wiki/Java_RMI JBI: Java Business Integration 是一种企业服务总线(Enterprise Service Bus,ESB),使我们能够用Java实现面向服务的架构.目前流行的服务容器有Servlet容器.EJB容器.JMS容器

opengl常用函数

glAccum 操作累加缓冲区   glAddSwapHintRectWIN 定义一组被 SwapBuffers拷贝的三角形   glAlphaFunc允许设置alpha检测功能   glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中   glArrayElement 定义一个被用于顶点渲染的数组成分   glBegin,glEnd 定义一个或一组原始的顶点   glBindTexture 允许建立一个绑定到目标纹理的有名称的纹理  glBitmap 绘制一个位图

【计算机图形学】openGL常用函数

OpenGL常用函数   glAccum 操作累加缓冲区   glAddSwapHintRectWIN 定义一组被 SwapBuffers拷贝的三角形   glAlphaFunc允许设置alpha检测功能   glAreTexturesResident 决定特定的纹理对象是否常驻在纹理内存中   glArrayElement 定义一个被用于顶点渲染的数组成分   glBegin,glEnd 定义一个或一组原始的顶点   glBindTexture 允许建立一个绑定到目标纹理的有名称的纹理  gl

# OpenGL常用函数详解(持续更新)

OpenGL常用函数详解(持续更新) 初始化 void glutInit(int* argc,char** argv)初始化GULT库,对应main函数的两个参数 void gultInitWindowSize(int witth,int height)指定GULT窗口产生的窗口的大小 void gultInitWindowsPosition(int x,int y)指定窗口产生的位置,以像素为单位,默认在左上角 void gultInitDisplayMode(unsigned int mod

【OpenGL】OpenGL初学

转载自:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色来做吗?显然是不行的. 本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物. OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性

OpenGL一些函数详解(二)

OpenGL ES顶点数据绘制技巧 在OpenGL中,绘制一个长方体,需要将每个顶点的坐标放在一个数组中.保存坐标时有一些技巧(由于字母下标不好表示,因此将下标表示为单引号,如A1将在后文中表示为A' ): (1)将对立面坐标保存在相邻的位置,如坐标的保存顺序为:前面(A'ABB'),后面(D'DCC'),上面(D'A'B'C'),下面(DABC),左面(D'A'AD),右面(C'B'BC).因为对立面的坐标除了其垂直的那根轴的坐标相反以外,其他坐标值一样:如前面和后面(垂直于z轴),x和y的坐