(4)glClearDepth()
来源:互联网 发布:典型的网络暴力事件 编辑:程序博客网 时间:2024/06/04 19:16
在现实生活中,一个实心物体挡在另外一个实心物体的前面, 后面的那个物体有部分会被遮盖掉
那么opengl里面如何模拟这个情况呢? 每个物体的每个像素都有一个深度缓存的值(在0到1之间,可以想象成是z轴的距离)
如果glDepthFunc启用了GL_LESS(现实生活中的前景), 那么当前个物体挡住后个物体时, 由于前个物体深度值小(越靠近人的), 所以它就被画了出来, 后面的物体被挡住的像素就被忽略掉了。(当然你如果启用了GL_GREATER, 那么情况就反过来了)
这个时候再来说glClearDepth, 它给深度缓冲指定了一个初始值,缓冲中的每个像素的深度值都是这个, 比如1,这个时候你往里面画一个物体, 由于物体的每个像素的深度值都小于等于1, 所以整个物体都被显示了出来。 如果初始值指定为0, 物体的每个像素的深度值都大于等于0, 所以整个物体都不可见。 如果初始值指定为0.5, 那么物体就只有深度小于0.5的那部分才是可见的
glClearDepth(1.0);
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glColor3f(1.0, 0.0, 0.0);
如果不使用glEnable(GL_DEPTH_TEST),则绘制的结果是绿色三角形在红色三角形之上;
这同时说明了openGL的绘制顺序与代码中的出现顺序相反。
- (4)glClearDepth()
- glClearDepth
- glClearDepth
- glClearDepth
- glShadeModel,glClearDepth,glHint
- OpenGL: 深度裁剪glClearDepth
- 帧缓存操作 glClearColor,glClear,glClearDepth
- glClearColor、glClear、glColor、glShadeModel、glClearDepth、glDepthFunc
- 关于帧缓存与OpenGL的帧缓存操作 glClearColor,glClear,glClearDepth
- 4
- 4
- (4)
- 4
- 4
- 4
- 4
- 4
- 4
- [数据库] 数据库的四大特性acid及事务的隔离级别
- python笔记 <记录一些比较杂的问题>
- 四种鼠标滑过标签过滤颜色
- ActiveMQ
- 状态模式(State Pattern)
- (4)glClearDepth()
- 深度学习之卷积神经网络
- codeforces711b
- Linux中ifreq 结构体分析和使用
- 深度探索C++对象模型(1)
- 二维数组
- Android 轻松实现后台搭建+APP版本更新
- 一次序列化与反序列化自有协议的经历(lua版本)
- Android源码剖析之Framwork层消息传递(Wms到View)