Opengl中glEnable的介绍
来源:互联网 发布:三大范式知乎 编辑:程序博客网 时间:2024/06/07 15:49
在Opengl中glEnable函数的功能是:用于启用各种功能,其功能由参数决定。所以该函数
在实现各种功能中是十分重要的。
其函数原型为:void glEnable(GLenum cap);其cap就是一个参数值,每个参数值有着不一样的功能。
与其相对应的是glDisable(GLenum cap);函数,就是关闭各种功能。
glDepthFunc
功能:指定用于深度缓冲比较值。
参数说明:func指定深度比较函数,GL_NEVER,GL_LESS,GL_EQUAL,GL_LEQUAL,GL_GREATER,
GL_NOTE_QUAL,GL_GEQUAL,GL_ALWAYS,缺省值GL_LESS,
GL_NEVER,不通过(输入的深度值不取代参考值)
GL_LESS,如果输入的深度值小于参考值,则通过
GL_EQUAL,如果输入的深度值等于参考值,则通过
GL_LEQUAL,如果输入的深度值小于或等于参考值,则通过
GL_GREATER,如果输入的深度值大于参考值,则通过
GL_NOTE_QUAL,如果输入的深度值不等于参考值,则通过
GL_GEQUAL,如果输入的深度值大于或等于参考值,则通过
GL_ALWAYS,总是通过(输入的深度值取代参考值)
opengl里面的深度缓存
在现实生活中,一个实心物体挡在另外一个实心物体的前面, 后面的那个物体有部分会被遮盖掉
那么opengl里面如何模拟这个情况呢? 每个物体的每个像素都有一个深度缓存的值(在0到1之间,
可以想象成是z轴的距离)glDepthFunc启用了GL_LESS(现实生活中的前景), 那么当前个物体
挡住后个物体时, 由于前个物体深度值小(越靠近人的), 所以它就被画了出来, 后面的物体
被挡住的像素就被忽略掉了。(当然你如果启用了GL_GREATER, 那么情况就反过来了)这个时
候再来说glClearDepth, 它给深度缓冲指定了一个初始值,缓冲中的每个像素的深度值都是这个,
比如1,这个时候你往里面画一个物体, 由于物体的每个像素的深度值都小于等于1, 所以整个
物体都被显示了出来。 如果初始值指定为0, 物体的每个像素的深度值都大于等于0, 所以整个
物体都不可见。 如果初始值指定为0.5, 那么物体就只有深度小于0.5的那部分才是可见的
glEnable函数的用法:
void myInit(void)
{
/*设置背景色*/
glClearColor(1.0,1.0,1.0,1.0);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
。。。
}
但是不能放在glBegin和glEnd两个函数的中间。
参数cap的取值为:
- Opengl中glEnable的介绍
- OpenGL函数_ gl.glenable()详细介绍
- OpenGl: glenable()函数理解
- OPenGL glEnable函数
- OpenGL关于glEnable(GL_LINE_STIPPLE) glLineStipple() glLineWidth() glDisable()的实例
- gl.glenable()介绍
- OpenGL编程函数glEnable参数
- glEnable
- glEnable
- OpenGL ES之glEnable和glDisable函数
- OpenGL ES之glEnable和glDisable函数
- 小流涓涓成江海,拙技点点构平台——OpenGL的glEnable和矩阵处理
- 《高效学习OpenGL》之 基本状态管理 glEnable(),glDisable(),glIsable()
- 《高效学习OpenGL》 之 选择光照类型 glLightModel(), glEnable()
- opengl es glEnable 方法设置图形显示能力
- Opengl es2.0 glEnable(GL_TEXTURE_2D)报错 GL_INVALID_ENUM
- 【OpenGL】OpenGL的函数库介绍
- OPENGL 的版本介绍
- POJ 一 2388 Who's in the Middle
- 【libcurl使用简介】
- 初始化基类
- 企业级web负载均衡完美架构
- oracle table-lock的5种模式
- Opengl中glEnable的介绍
- 消除不确定输入的电路设计
- 编程语言收入榜 Java排第三
- 浮夸 - 陈奕迅
- Apache与Tomcat整合,Apache执行php代码Tomcat执行jsp代码(方法一)
- MR_ Android view client source code(3)---获取当前view id的名称
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- poj 1789 Truck History 最小生成树
- eclipse不显示referenced libraries