我尝试使用opengl渲染一些3d对象。要求是我需要隐藏在另一个透明对象后面的所有透明对象。所有三角形都在单个三角形缓冲区中,并将立即绘制。请稍微说清楚。
答案 0 :(得分:5)
尝试使用glDepthMask():
//Render all opaque objects
glDepthMask(false); //disable z-testing
//Render all transparent objects*
glDepthMask(true); //enable z-testing (for the next frame)
*从技术上讲,应从后向前渲染透明对象,但如果不这样做,则很少注意到。
答案 1 :(得分:3)
您可以通过对场景进行排序来实现此目的,这是您必须要做的事情才能使透明度正常工作。
以下是您需要做的事情: