openGL之颜色混合

OpenGL中的颜色混合用于处理半透明图层重叠时的颜色合成,不能与深度测试同时开启。固定着色器和可编程着色器场景下,通过开启颜色混合并指定glBlendFunc来实现混合效果。抗锯齿则可以消除图形边缘的锯齿,但需在开启混合功能和设置混合因子后才能启用。
摘要由CSDN通过智能技术生成

1. 颜色混合

颜色混合就是两种或者多种透明度不为1的颜色混合在一起会产生一种新的颜色,这个过程就是颜色混合。

在渲染过程中,颜色都是存放到颜色缓冲区中,两个重叠的图层,在同一个点存储到颜色缓冲区中的颜色只是最上层图层的颜色值。但是如果重叠的图层上面的图层是半透明的,这时就需要将这两个图层的颜色进行混合。

什么时候使用颜色混合

大前提:不能开启深度测试,如果开启了深度测试,那么颜色混合就会以深度为基础进行渲染。也就是说开启深度测试然后在开启颜色混合会发生问题,例如:有两个正方形A、B,A的深度为2、颜色不透明 1、最后绘制;B的深度是1、颜色透明 0.5、先绘制,结果是没有进行颜色混合。 如果AB的深度值置换一下就会混合了;如果AB的绘制顺序置换一下也会混合。(具体怎么造成的暂不清楚)
在这里插入图片描述

固定着色器

两个图层重叠,且最上面图层的透明度不为1,就会进行颜色混合。

可编程着色器

在片元着色器中,处理某个图层上颜色,比如:在A图层上涂上一层薄薄的橘色,就会进行颜色混合。

如何开启、关闭颜色混合

开启颜色混合

glEnable
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值