Opengl函数(4)

来源:互联网 发布:怎么做一个淘宝客 编辑:程序博客网 时间:2024/05/21 06:12

1.vmath::mat4 vmath::translate(float x,float y,float z)
返回一个平移矩阵,平移距离为(x,y,z)。

2.vmath::mat4 vmath::scale(float s)
返回一个缩放倍数为s的变换矩阵。

3.vmath::mat4 vmath::rotate(float x,float y,float z)
返回一个变化矩阵,它可以绕x轴转动x度,绕y轴转动y度,以及绕z轴转动z度。我们可以直接将这个矩阵(左乘)级联到当前矩阵之上。

4.vmath::mat4 vmath::frustum(float left,float right,float bottom,float top,float near,float far)
根据给定的视锥体设置返回一个透视投影矩阵。近平面的矩形通过left,right,bottom和top定义。近平面和远平面的距离通过near和far定义。

5.vmath::mat4 vmath::lookAt(vmath::vec3 eye,vmath::vec3 center,vmath::vec3 up)
根据eye朝向center的视线,以及up定义的上方向,返回一个透视投影矩阵。

6.vmath::mat4 vmath::ortho(vmath::vec3 eye,vmath::vec3 center,vmath::vec3 up)
返回一个正交投影变换矩阵,它从观察点eye出发朝向center,并使用up定义了正方向。

7.void glDepthRange(GLclampd near,GLclampd far)
void glDepthRangef(GLclampf near,GLclampf far)
设置z轴上的近平面位于near,而远平面位于far。这个函数定义了视口变换过程中z坐标的变化范围。近平面和远平面的值也就是深度缓存中所保存的最小值和最大值。默认情况下它们分别是0.0和1.0,这对于大部分应用程序都是适用的。这个函数的参数设置范围必须是[0,1]之间的数值。

8.void glViewport(GLint x,GLint y,GLint width,GLint height)
在程序窗口中定义一个矩形的像素区域,并且将最终渲染的图像映射到其中。这里的x和y设置了视口(viewport)的左下角坐标,而width和height设置了视口矩形的像素大小。默认情况下视口初始值设置为(0,0,winWidth,winHeight),其中winWidth和winHeight为窗口的像素尺寸。

9.void glGenTransformFeedbacks(GLsizei n,GLuint* ids)
为transform feedback对象生成n个名称,并且将生成的名称记录到数组ids中。

10.void glBindTransformFeedback(GLenum target,GLuint id)
将一个名称为id的transform feedback对象绑定到目标target上,目标的值必须是GL_TRANSFORM_FEEDBACK

11.GLboolean glIsTransformFeedback(GLenum id)
如果id是一个已有的transform feedback对象的名称,那么返回GL_TRUE,否则返回GL_FALSE.

12.void glDeleteTransformFeedbacks(GLsizei n,const GLuint* ids)
删除n个transform feedback对象,其名称保存在数组ids中。如果ids的某个元素不是transform feedback对象的名称,或者设置为0,那么都会被直接忽略,不会给出提示。

13.void glBindBufferBase(GLenum target,GLuint index,GLuint buffer)
将名称为buffer的缓存对象绑定到目标target的某个绑定点上,其索引通过index设置,同时绑定到target所设置的一般缓存绑定点上。

14.void glBindBufferRange(GLenum target,GLuint index,GLuint buffer,GLintptr offset,GLsizeiptr size)
将缓存对象buffer的一部分绑定到目标target的绑定点索引index上。offset和size的单位均为字节,它们设置要绑定的缓存对象的范围。glBindBufferRange()也将缓存buffer绑定到target所指定的一般缓存绑定点上。

15.void glTransformFeedbackVaryings(GLuint program,GLsizei count,const GLchar** varyings,GLenum bufferMode)
设置使用varyings来记录transform feedback的信息,所用的程序通过program来指定。count设置varyings数组中所包含的字符串的数量,它们存储的也是所有要捕获的变量的名称。bufferMode设置的是捕获变量的模式–可以是分离模式(GL_SEPARATE_ATTRIBS)或者交叉模式(GL_INTERLEAVED_ATTRIBS);

16.void glBeginTransformFeedback(GLenum primitiveMode)
设置transform feedback准备记录的图元类型。primitiveMode必须是GL_POINTS,GL_LINES或者GL_TRIANGLES.再这之后的绘制命令中的图元类型必须与这里的primitiveMode相符,或者几何着色器(如果存在的话)的输出类型必须与primitiveMode相符。
transform feedback的primitiveMode 允许绘制的类型
GL_POINTS GL_POINTS
GL_LINES GL_LINES,GL_LINE_STRIP,GL_LINE_LOOP,GL_LINES_ADJACENCY,
GL_LINE_STRIP_ADJACENCY
GL_TRIANGLES GL_TRIANGLES,GL_TRIANGLE_STRIP,GL_TRIANGLE_FAN,
GL_TRIANGLES_ADJACENCY,GL_TRIANGLE_STRIP_ADJACENCY
17.void glPauseTransformFeedback(void)
暂停transform feedback对变量的记录。我们可以通过glResumeTransformFeedback()重新启动transform feedback.

18.void glResumeTransformFeedback(void)
重新启用一个之前通过glPauseTransformFeedBack()暂停的transform feedback过程。

19.void glEndTransformFeedback(void)
完成transform feedback模式下的变量记录过程

0 0
原创粉丝点击