glDepthMask

深度绘制和混合同时存在的场景绘制顺序:

1、打开 深度蒙版glDepthMask( GL_TRUE )
2、以任何顺序绘制所有不透明的对象
3、关闭深度遮罩glDepthMask( GL_FALSE )
4、打开BLEND_MODE
5、绘制从最远到最近排序的半透明对象

void Draw {
   /**开启深度测试*/ 
   glEnable( GL_DEPTH_TEST );
  /**开启深度遮罩*/ 
  glDepthMask( GL_TRUE );
 /**绘制不透明对象*/
  DrawA();
  DrawB();  
 /**关闭深度遮罩*/
  glDepthMask( GL_FALSE );
 
 /**开启混合*/  
  glEnable( GL_BLEND );
/**混合方程*/
  glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
  
/**绘制从最远到最近排序的半透明对象*/
  DrawC(); 
  DrawD();
  /**关闭混合*/ 
   glDisable( GL_BLEND );  
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混...
    coldestheaven阅读 4,655评论 0 2
  • 知识点: 数据时如何被传递到片段着色器中,如果控制传递的方式,以及在片段着色器中如来处理数据。 如何创建帧缓存并控...
    RichardJieChen阅读 5,912评论 0 2
  • 颜色混合定义 颜色混合顾名思义就是讲两种颜色混合在一起以展现不同的效果,通过混合的方式展现出最新得到的颜色,以此来...
    离歌欢笑_4c54阅读 5,169评论 0 0
  • 在绘制3D场景的时候,我们需要决定哪些部分是对观察者可见,或者哪些部分是对观察者不可见的。对于不可见的部分,就不应...
    瀚_阅读 3,064评论 0 0
  • 混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混...
    落寒z阅读 12,815评论 0 7