alpha融合

来源:互联网 发布:淘宝买家积分 编辑:程序博客网 时间:2024/04/19 20:08

首先讲下融合要用到的主要函数 glBlendFunc()

它有2个参数:具体见MSDN

混色过程需按照以下步骤进行:(在初始化中启用融合技术)

1、绘制全部的场景

2、绘制透明的图形,并且要按照和深度混存相反的次序来绘制(先画最远的物体)

考虑对两个多边形(1和2)进行alpha混合,不同的绘制次序会得到不同的结果。(这里假定多边形1离观察者最近,那么正确的过程应该先画多边形2,再画多边形1。正如您再现实中所见到的那样,从这两个“透明的”多边形背后照射来的光线总是先穿过多边形2,再穿过多边形1,最后才到达观察者的眼睛)。 在深度缓存启用时,您应该将透明图形按照深度进行排序,并在全部场景绘制完毕之后再绘制这些透明物体。否则您将得到不正确的结果。我知道某些时候这样做是很令人痛苦的,但这是正确的方法。

注意:在绘制透明物体的时候应关闭深度测试