Qt OpenGL基础知识

给大家介绍Qt中常用的关于OpenGL的几个函数
1 glClearColor():
void glClearColor(GLclampf red,GLclampf green,Glclampf blue,GLclampf alpha);功能是:为颜色缓存区指定确定的值
并不起到和它名字一样得 clear的作用。

2 glClearDepthf():
glClearDepthf — 指定深度缓冲区的清除值
glClearDepth, 它给深度缓冲指定了一个初始值,缓冲中的每个像素的深度值都是这个, 比如1,这个时候你往里面画一个物体, 由于物体的每个像素的深度值都小于等于1, 所以整个物体都被显示了出来。 如果初始值指定为0, 物体的每个像素的深度值都大于等于0, 所以整个物体都不可见。 如果初始值指定为0.5, 那么物体就只有深度小于0.5的那部分才是可见的

3 glDepthFunc(func)指定用于深度缓冲比较值;
func值

含义

GL_NEVER

不通过(输入的深度值不取代参考值)

GL_LESS

如果输入的深度值小于参考值,则通过

GL_EQUAL

如果输入的深度值等于参考值,则通过

GL_LEQUAL

如果输入的深度值小于或等于参考值,则通过

GL_GREATER

如果输入的深度值大于参考值,则通过

GL_NOTE_QUAL

如果输入的深度值不等于参考值,则通过

GL_GEQUAL

如果输入的深度值大于或等于参考值,则通过

GL_ALWAYS

总是通过(输入的深度值取代参考值)

4:glEnable- 启用或禁用服务器端GL功能
这个下面有很多功能
GL_BLEND
如果启用,则将计算的片段颜色值与颜色缓冲区中的值混合。
GL_CULL_FACE

   如果启用,则根据窗口的坐标来剔除多边形。 请参阅glCullFace。

GL_DEPTH_TEST

   如果启用,进行深度比较并更新深度缓冲区。 注意,即使存在深度缓冲区且深度掩码不为零,如果禁用深度测试,也将不会更新深度缓冲区。 请参阅glDepthFunc和glDepthRangef。

GL_DITHER

   如果启用,则在将颜色组件或索引写入颜色缓冲区之前对其进行抖动。

GL_POLYGON_OFFSET_FILL

   如果启用,则会将偏移添加到由光栅化生成的多边形片段的深度值。 请参阅glPolygonOffset。(常用于处理Z-fighting)

GL_SAMPLE_ALPHA_TO_COVERAGE

如果启用,则计算临时覆盖值,其中每个位由相应样本位置的alpha值确定。 然后,临时覆盖值与片段覆盖值进行AND运算。
还有一些功能,暂时不做介绍有兴趣可以去翻翻相关的文档。

5:glClear()

使用掩码的按位异或运算来表示要清除的缓冲区。 三个掩码是GL_COLOR_BUFFER_BIT,GL_DEPTH_BUFFER_BIT和GL_STENCIL_BUFFER_BIT。

6:glGenBuffers- 生成缓冲区对象名称

void glGenBuffers(GLsizei n,GLuint * buffers);
n

指定要生成的缓冲区对象名称的数量。

buffers

指定存储生成的缓冲区对象名称的数组。

glBindBuffer

void glBindBuffer(GLenum target,GLuint buffer);
target

指定缓冲区对象绑定的目标。 符号常量必须为GL_ARRAY_BUFFER或GL_ELEMENT_ARRAY_BUFFER。

buffer

指定缓冲区对象的名称(ID)。

glBufferData- 创建并初始化缓冲区对象的数据存储

void glBufferData(GLenum target,GLsizeiptr size,const GLvoid * data,GLenum usage);

glDrawArrays

从当前绑定的缓冲区中读取数据按照基本图元的形式绘制几何图形。void glDrawArrays( GLenum mode,
GLint first) 通过后没的first来决定画的图形

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值