(4)glClearDepth()

原创 2016年08月30日 16:18:05
opengl里面的深度缓存 
在现实生活中,一个实心物体挡在另外一个实心物体的前面, 后面的那个物体有部分会被遮盖掉
那么opengl里面如何模拟这个情况呢? 每个物体的每个像素都有一个深度缓存的值(在0到1之间,可以想象成是z轴的距离)
如果glDepthFunc启用了GL_LESS(现实生活中的前景), 那么当前个物体挡住后个物体时, 由于前个物体深度值小(越靠近人的), 所以它就被画了出来, 后面的物体被挡住的像素就被忽略掉了。(当然你如果启用了GL_GREATER, 那么情况就反过来了)

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


glClearDepth(1.0);            // 1.0是最大深度([0.0,1.0])
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);    // 最好在display()中调用

 glColor3f(1.0, 0.0, 0.0);
    glBegin(GL_TRIANGLES);
    for(int i=0; i<3; i++) {
        int offset = i*3;
        glVertex3f(vertexArr1[offset], vertexArr1[offset+1], vertexArr1[offset+2]);
    }
    glEnd();

    glColor3f(0.0, 1.0, 0.0);
    glBegin(GL_TRIANGLES);
    for(int i=3; i<6; i++) {
        int offset = i*3;
        glVertex3f(vertexArr1[offset], vertexArr1[offset+1], vertexArr1[offset+2]);
    }
    glEnd();

     如果不使用glEnable(GL_DEPTH_TEST),则绘制的结果是绿色三角形在红色三角形之上;

这同时说明了openGL的绘制顺序与代码中的出现顺序相反。


版权声明:本文为博主原创文章,未经博主允许不得转载。

OpenGL ES 学习教程(十二) DEPTH_TEST(深度缓冲测试)

在OpenGL中,默认是没有开启深度检测的,也就是说,后绘制的物体覆盖先绘制的物体(颜色缓冲区中,先绘制的物体 被 后绘制的物体 覆盖)。...
  • cp790621656
  • cp790621656
  • 2016年11月03日 00:46
  • 1944

什么是4:4:4、4:2:2、4:2:0?了解图像压缩取样的方式

什么是4:4:4、4:2:2、4:2:0?了解图像压缩取样的方式 我们经常会看到4:4:4、4:2:2、4:2:0这样的字眼,比如你的5D拍摄的视频是4:2:0取样压缩的,又比如QuickTime...
  • euyy1029
  • euyy1029
  • 2017年05月18日 10:33
  • 1480

单片机读入4*4矩阵键盘

一、什么是矩阵键盘 矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组,由于电路设计时需要更多的外部输入,单独的控制一个按键需要浪费很多的IO资源,所以就有了矩阵键盘,常用的矩阵键盘有4*4和...
  • snyanglq
  • snyanglq
  • 2015年12月03日 11:55
  • 5443

glShadeModel,glClearDepth,glHint

http://blog.chinaunix.net/space.php?uid=11353969&do=blog&id=1741407 glShadeModel,glClearDepth (2011...
  • abcdef8c
  • abcdef8c
  • 2011年10月15日 11:42
  • 1134

glClearColor、glClear、glColor、glShadeModel、glClearDepth、glDepthFunc

简述:OpenGL 支持两种颜色模式:一种是RGBA,一种是颜色索引模式。无论哪种颜色模式,计算机都必须为每一个像素保存一些数据。不同的是,RGBA模式中,数据直接代表了颜色;而颜色索引模式中,数据代...
  • hebbely
  • hebbely
  • 2017年04月10日 17:01
  • 1326

WinCC flexible 2008 sp4 安装说明

  • 2018年01月15日 13:59
  • 827KB
  • 下载

汉字转换成中文拼音pinyin4j-2.5.0.jar

  • 2018年01月11日 17:29
  • 173KB
  • 下载

ffmpge 多图转视频mp4 dll模块(含使用事例及用法说明)

  • 2018年01月11日 13:47
  • 40.62MB
  • 下载

吴恩达最新deep learing课后作业(1-4周全)

  • 2018年01月16日 17:38
  • 7.41MB
  • 下载

T4生成实体类

  • 2018年01月14日 23:20
  • 22KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:(4)glClearDepth()
举报原因:
原因补充:

(最多只允许输入30个字)