您的位置:首页 > 运维架构

OpenGL中将深度缓存设为只读

2009-08-22 18:16 357 查看
在红包书里头有这么一说,大概是说有时候要渲染一个透明的物体,这样的话如果场景简单,我们可以通过决定绘制顺序来保证绘制结果正确,但是如果加入了场景变化等其他一系列变换,可能就不是那么容易了。更好的办法就是在绘制透明物体的时候将深度缓存设置成只读的,也就是可以进行深度检测,但是不写入深度结果
具体做法是:
glDepthMask(flase);
////绘制透明物体
glDepthMask(true);
最后一行讲深度缓存改成可写可读的。
这个技巧可以和模板缓存结合使用,可以创建出类似镜子的效果。
一个小的Demo结果如下:



源代码下载/Files/gin_dl/set_depth_reader_only.rar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: