已经好久没有触碰OpenGL了,包括前些进行android开发的时候,写些简单的游戏也避免用OpenGL,因为C++上用的很痛苦。
但是最近又要用了,不过这次采用C#进行编程。
用到OpenGL,基本上都要处理遮挡关系,用两张图表明深度检测的作用。
这张图没有开启深度检测(不处理遮挡关系)。
这张图开启了深度检测。
代码只有几行,在draw函数的开头:
GL.glClear(GL.GL_COLOR_BUFFER_BIT |GL.GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
// 深度测试开启,实现遮挡关系
GL.glEnable(GL.GL_DEPTH_TEST);
GL.glDepthFunc(GL.GL_LEQUAL);
GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT,GL.GL_NICEST);