一些函数

来源:互联网 发布:mac怎么关闭访客 编辑:程序博客网 时间:2024/05/19 18:37

1、移动

static void glTranslatef(float x, float y, float z)
static void glTranslatex(int x, int y, int z)

      这个函数所接受的参数分别表示沿x、y、z方向移动的数量。然后,它创建一个适当的矩阵,并执行矩阵操作。

2、旋转

static void glRotatef(float angle, float x, float y, float z)
static void glRotatex(int angle, int x, int y, int z)

绕x、y、z参数所指定的那个向量执行旋转操作。旋转的角度就是angle参数所指定的角度(以角度为单位,逆时针方向)。

3、缩放

static void glScalef(float x, float y, float z)
static void glScalex(int x, int y, int z)

缩放转换根据一个指定的因子沿3个轴对物体的所有顶点进行扩张或收缩,从而改变物体的大小。上面的函数把x、y、z的值与指定的缩放因子相乘。


4、static void glHint(int target, int mode)

GL行为的某些方面可以由提示所控制。有效的提示包括GL_NICEST、GL_FASTEST和GL_DONT_CARE。提示允许程序指定它们更为关心的是什么,如渲染质量(GL_NICEST)、性能(GL_FASTEST),或者使用当前实现的缺省方式(GL_DONT_CARE)。

GL_PERSPECTIVE_CORRECTION_HINT:由参数确定的所希望达到的质量。

GL_POINT_SMOOTH_HINT:希望达到的点采样质量。

GL_LINE_SMOOTH_HINT:希望达到的直线采样质量。

GL_POLYGON_SMOOTH_HINT:希望达到的多边形采样质量。

GL_GOG_HINT:根据顶点(GL_FASTEST)或者根据每个像素(GL_NICEST)计算雾。

GL_GENERATE_MIPMAP_HINT:自动mipmap层次生成的质量和性能。

GL_TEXTURE_COMPRESSION_HINT:压缩纹理图像的质量和性能。


5、static void glDrawArrays(int mode, int first, int count)

mode:绘制模式。

GL_POINTS :单独的点
GL_LINES :绘制多条线段
GL_LINE_LOOP :封闭的线(首尾相连)
GL_LINE_STRIP :绘制一条线
GL_TRIANGLES :绘制多个三角形(首尾不相连)
GL_TRIANGLE_STRIP :绘制多个三角形(首尾相连)
GL_TRIANGLE_FAN :以一个点为顶点绘制多个相邻的三角形


6、static void glDrawElements(int mode, int count, int type, Buffer indices)

glDrawElements是一个OPENGL的图元绘制函数,从数组中获得数据渲染图元。

其中:   

mode指定绘制图元的类型,它应该是下列值之一,GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES。

count为绘制图元的数量乘上一个图元的顶点数。  

type为索引值的类型,只能是下列值之一:GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT。   

indices:指向索引存贮位置的指针。   

glDrawElements函数能够通过较少的函数调用绘制多个几何图元,而不是通过OPENGL函数调用来传递每一个顶点,法线,颜色信息。你可以事先准备一系列分离的顶点、法线、颜色数组,并且调用一次glDrawElements把这些数组定义成一个图元序列。当调用glDrawElements函数的时候,它将通过索引使用count个成序列的元素来创建一系列的几何图元。mode指定待创建的图元类型和数组元素如何如来创建这些图元。但是如果GL_VERTEX_ARRAY 没有被激活的话,不能生成任何图元。被glDrawElements修改的顶点属性在glDrawElements调用返回后的值具有不确定性,例如,GL_COLOR_ARRAY被激活后,当glDrawElements执行完成时,当前的颜色值是没有指定的。没有被修改的属性值保持不变。   

可以在显示列表中包含glDrawElements,当glDrawElements被包含进显示列表时,相应的顶点、法线、颜色数组数据也得进入显示列表的,因为那些数组指针是ClientSideState的变量,在显示列表创建的时候而不是在显示列表执行的时候,这些数组指针的值影响显示列表。glDrawElements只能用在OPENGL1.1或者更高的版本。


7、static void glBindTexture(int target, int texture)

函数说明:允许建立一个绑定到目标纹理的有名称的纹理。

例如,一幅具有真实感的图像或者照片作为纹理贴到一个矩形上,就可以在定义纹理对象生成纹理对象数组后,通过使用glBindTexture选择纹理对象,来完成该纹理对象的定义。   

函数参数的含义:   

target —— 纹理被绑定的目标,它只能取值GL_TEXTURE_1D或者GL_TEXTURE_2D;   

texture —— 纹理的名称,并且,该纹理的名称在当前的应用中不能被再次使用。


8、 static void glGenTextures(int n, IntBuffer textures)
static void glGenTextures(int n, int[] textures, int offset)

可以理解为生成纹理索引。

参数的含义:

n:生成纹理的数量

textures:用来存储纹理索引的数组。

offset:数组起始位置。