zoukankan      html  css  js  c++  java
  • opengl 函数

     

     

    7

    )光栅化、象素操作函数。

     

     

     

     

    像素位置

    glRasterPos*()

    、线型宽度

    glLineWidth()

    、多边形绘制模式

    glPolygonMode()

    ,读取象素

    glReadPixel()

    、复制象素

    glCopyPixel()

    等。

      

     

     

     

    8

    )选择与反馈函数。

     

     

     

     

    主要有渲染模式

    glRenderMode()

    、选择缓冲区

    glSelectBuffer()

    和反馈缓

    冲区

    glFeedbackBuffer()

    等。

     

     

     

     

    9

    )曲线与曲面的绘制函数。

     

     

     

     

    生成曲线或曲面的函数

    glMap*()

    glMapGrid*()

    ,求值器的函数

    glEvalCoord*() glEvalMesh*()

     

     

     

     

    10

    状态设置与查询函数。

    主要有

    glGet*()

    glEnable()

    glGetError()

    等。

     

     

     

     

    2

    、实用库(

    OpenGL utility library

    GLU

    ),包含的函数功能更高一些,

    如绘制复杂的曲线曲面、

    高级坐标变换、

    多边形分割等,

    共有

    43

    个,

    前缀为

    glu

    Glu

    函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为

    复杂的操作。此类函数由

    glu.dll

    来负责解释执行。主要包括了以下几种:

     

     

     

     

    1

    )辅助纹理贴图函数。

     

     

     

     

    gluScaleImage() 

    gluBuild1Dmipmaps()

    gluBuild2Dmipmaps()

    等。

     

     

     

     

    2

    )坐标转换和投影变换函数。

     

     

     

     

    定义投影方式函数

    gluPerspective()

    gluOrtho2D() 

    gluLookAt()

    ,拾

    取投影视景体函数

    gluPickMatrix()

    ,投影矩阵计算

    gluProject()

     

    gluUnProject()

    等。

     

     

     

     

    3

    )多边形镶嵌工具。

     

     

     

     

    gluNewTess()

     gluDeleteTess()

    gluTessCallback()

    gluBeginPolygon() gluTessVertex()

    gluNextContour()

    gluEndPolygon()

    等。

     

     

     

     

    4

    )二次曲面绘制工具。

     

     

     

     

    主要有绘制球面、锥面、柱面、圆环面

    gluNewQuadric()

    gluSphere()

    gluCylinder()

    gluDisk()

    gluPartialDisk()

    gluDeleteQuadric()

    等等。

     

     

     

     

    5

    )非均匀有理

    B

    样条绘制工具。

     

     

     

     

    主要用来定义和绘制

    Nurbs

    曲线和曲面,包括

    gluNewNurbsRenderer()

    gluNurbsCurve()

    gluBeginSurface()

    gluEndSurface()

    gluBeginCurve()

    gluNurbsProperty()

    等函数。

     

     

     

     

    6

    )错误反馈工具。

     

     

     

     

    获取出错信息的字符串

    gluErrorString()

    等。

     

     

     

     

    3

    OpenGL

    辅助库(

    OpenGL 

    auxiliarylibrary

    GLAUX

    ),包括简单的窗口

    管理、输入事件处理、某些复杂三维物体绘制等函数,共有

    31

    个,前缀为

    aux

    此类函数由

    glaux.dll

    来负责解释执行。辅助库函数主要包括以下几类。

     

     

     

     

    1

    )窗口初始化和退出函数。

     

     

     

     

    auxInitDisplayMode()

    auxInitPosition()

     

     

     

     

    2

    )窗口处理和时间输入函数。

     

     

     

     

    auxReshapeFunc()

    auxKeyFunc()

    auxMouseFunc()

     

     

     

     

    3

    )颜色索引装入函数。

     

     

     

     

    auxSetOneColor()

     

     

     

     

    4

    )三维物体绘制函数。

     

     

     

     

    包括了两种形式网状体和实心体,如绘制立方体

    auxWireCube()

     

    auxSolidCube()

    。这里以网状体为例,长方体

    auxWireBox()

    、环形圆纹面

    auxWireTorus()

    、圆柱

    auxWireCylinder()

    、二十面体

    auxWireIcosahedron()

    八面体

    auxWireOctahedron()

    、四面体

    auxWireTetrahedron()

    、十二面体

    auxWireDodecahedron()

    圆锥体

    auxWireCone()

    和茶壶

    auxWireTeapot()

    绘制

    实心体只要将上述函数中的确

    "Wire"

    更换成

    "Solid"

    就可以了。

     

     

     

     

    5

    )其他。

     

     

     

     

    背景过程管理函数

    auxIdleFunc()

    ;程序运行函数

    auxMainLoop()

     

     

     

     

    4

    OpenGL

    工具库(

    penGL Utility Toolkit

     

     

     

     

    包含大约

    30

    多个函数,函数名前缀为

    glut

    ,此函数由

    glut.dll

    来负责解

    释执行。这部分函数主要包括:

     

     

     

     

    1

    )窗口操作函数

     

     

     

     

    窗口初始化、窗口大小、窗口位置等函数

    glutInit() 

    glutInitDisplayMode()

    glutInitWindowSize() glutInitWindowPosition()

    等。

     

     

     

     

    2

    )回调函数。

     

     

     

     

    响应刷新消息、键盘消息、鼠标消息、定时器函数等,

    GlutDisplayFunc()

    glutPostRedisplay()

     glutReshapeFunc()

    glutTimerFunc()

    glutKeyboardFunc()

     glutMouseFunc()

     

     

     

     

    3

    )创建复杂的三维物体。这些和

    aux

    库的函数功能相同。创建网状体和

    实心体。如

    glutSolidSphere()

    glutWireSphere()

    等。

     

     

     

     

    4

    )菜单函数

     

     

     

     

    创建添加菜单的函数

    GlutCreateMenu()

    glutSetMenu()

    glutAddMenuEntry()

    glutAddSubMenu() 

    glutAttachMenu()

     

     

     

     

    5

    )程序运行函数。

     

     

     

     

    glutMainLoop()

     

     

     

     

    5

    16

    WGL

    函数,专门用于

    OpenGL

    Windows

    窗口系统的联接,其前缀

    wgl

    ,主要用于创建和选择图形操作描述表(

    renderingcontexts

    )以及在窗

    口内任一位置显示字符位图。这类函数主要包括以下几类

     

     

     

     

    1

    )绘图上下文相关函数。

     

     

     

     

    wglCreateContext()

    wglDeleteContext()

    wglGetCurrentContent()

    wglGetCurrentDC() wglDeleteContent()

    等。

     

     

     

     

    2

    )文字和文本处理函数。

     

     

     

     

    wglUseFontBitmaps()

    wglUseFontOutlines()

     

     

     

     

    3

    )覆盖层、地层和主平面层处理函数。

     

     

     

     

    wglCopyContext()

    wglCreateLayerPlane()

     wglDescribeLayerPlane()

    wglReakizeLayerPlatte()

    等。

     

     

     

     

    4

    )其他函数。

     

     

     

     

    wglShareLists()

    wglGetProcAddress()

    等。

     

     

     

     

    6

    、另外,还有五个

    Win32

    函数用来处理像素格式(

    pixel 

    formats

    )和双缓

    存。由于它们是对

    Win32

    系统的扩展,因此不能应用在其它

    OpenGL

    平台上。

     

     

     

     

    (二)

    OpenGL

    数据类型

     

     

     

     

    C

    语言相对应,

    OpenGL

    中也有整数、字节、浮点数等数据类型,为了说

    明两者的对应关系,下表将

    OpenGL

    的数据类型与相应的

    C

    类型进行了对比:

     

     

     

    数据类型

     

    相应

    C

    语言类

     

    OpenGL

    类型

     

    b

     

    8-bit integer

     

    signed char

     

    GLbyte

     

    s

     

    16-bit integer

     

    short

     

    GLshort

     

    i

     

    32-bit integer

     

    long

     

    GLint,GLsizei

     

    f

     

    32-bit 

    floating-point

     

    float

     

    GLfloat,GLclampf

     

    d

     

    64-bit 

    floating-point

     

    double

     

    GLdouble,GLclampd

     

    ub

     

    8-bit unsigned 

    integer

     

    unsigned 

    char

     

    GLubyte,GLboolean

     

    us

     

    16-bit unsigned 

    integer

     

    unsigned 

    short

     

    GLushort

     

    ui

     

    32-bit unsigned 

    integer

     

    unsigned 

    long

     

    GLuint,GLenum,GLbitfield

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    表一、

    OpenGL

    数据类型表

     

     

     

     

    此外,

    OpenGL

    也定义

    GLvoid

    类型,

    如果用

    C

    语言编写,

    可以用它替代

    void

    类型。

     

     

     

     

    (三)

    OpenGL

    库函数的命名规律

     

     

     

     

    了解了

    OpenGL

    的数据类型,

    让我们再回过头来看看

    OpenGL

    库函数的命名规

    律。所有

    OpenGL

    函数采用了以下格式:

     

     

    <

    库前缀

    ><

    根命令

    ><

    可选的参数个数

    ><

    可选的参数类型

     

     

     

    库前缀有

    gl

    glu

    aux

    glut

    wgl

    glx

    等等,

    分别表示该函数属于

    OpenGL

    某开发库等,从函数名后面中还可以看出需要多少个参数以及参数的类型。

    I

    int

    型,

    f

    代表

    float

    型,

    d

    代表

    double

    型,

    u

    代表无符号整型。注意,有的

    函数参数类型后缀前带有数字

    2

    3

    4

    2

    代表二维,

    3

    代表三维,

    4

    代表

    alpha

    值(以后介绍)。有些

    OpenGL

    函数最后带一个字母

    v

    ,表示函数参数可用一个

    指针指向一个向量

    (或数组)

    来替代一系列单个参数值。

    下面两种格式都表示设

    置当前颜色为红色,二者等价。

     

     

     

     

    glColor3f(1.0,0.0,0.0);

    等价于:

     

     

     

     

    float color_array[]={1.0,0.0,0.0}; 

     

     

    glColor3fv(color_array); 

     

     

     

    除了以上基本命名方式外,还有一种带

    "*"

    星号的表示方法,例如

    glColor*()

    它表示可以用函数的各种方式来设置当前颜色。

    同理,

    glVertex*v()

    表示用一个指针指向所有类型的向量来定义一系列顶点坐标值。

  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4776416.html
Copyright © 2011-2022 走看看