我在做课程设计,遇到关于openGL消隐的问题。
我做的是给书店建模的
就一个房子里面摆满了书架可是走到房子外面还是能够看到书架子
Init中有
glClearColor(0,0,0,1.0);
glShadeModel(GL_FLAT);
// 深度操作控制
// glEnable(GL_DEPTH_TEST);
glClearDepth(1.0);
glDepthFunc(GL_LESS); 
display中有
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
这些我都用上了,可就是不能消隐;
当我做到外面还是能看到里面的书架;
程序我放在附加里面了,望大侠帮我看看,谢谢了!

解决方案 »

  1.   

    // glEnable(GL_DEPTH_TEST);
    这一句不应该注释掉吧
      

  2.   

    因为注释的时候能够有一半能够消隐,一半不能够消隐。所以也一直在启用和禁用之间切换。我已近知道为什么有一半不能消隐,因为先画的图形后显示,后画的图形先显示的原因所以会有的能消隐有的不能。但是启动深度测试的时候画面就不能看了,只有ALWAYS的时候能够看,但也不是消隐的效果,和没有用一样的。我是给一个图使馆建立一个3D模型,所有模型都是用OPENGL里面的函数生成的,加上图形变换。让后用键盘控制视景体移动,模拟人物在里面游走的效果。可是就是消隐的问题让人头疼。深度测试到底是相对于某个方向 消隐的,还是相对于视景体进行消隐的?