是否有方法指定{GL_SRC_COLOR, xxx}
和{xxx, GL_DST_COLOR}
,以便源和目标的颜色相乘,并且还确保如果GL_SRC_ALPHA = 0,结果为{GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA}
?OpenGL混合GL_SRC_COLOR/GL_DST_COLOR
我在我的游戏世界上做了一个叠加的矩形,它从透明开始,但随着时间流逝到夜晚,叠加层变成了深蓝色和底层色彩的组合。
我尝试过{GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA}
等等,如下所示。在两张照片中,左侧是没有覆盖层的白天,右侧覆盖层。
晚时间是在右边,覆盖(SRC)在全alpha
日时间与覆盖上是在0的α的权利。
的问题是,与SRC阿尔法等于零目的色彩加倍。我希望它保持不变,因此我只能在游戏过程中调整不透明度并过渡到夜晚。有没有办法做到这一点,或其他方式来达到相同的效果?