注:本文档只记录要点和我自己的一些新得,并不是教程。需要教程的请去看OpenGLLearn原文。
混合可以实现物体透明度。
实现透明度由两种方式:
1是抛弃(discard)一部分片段,这种情况下,不存在半透明的片段。
2才是真正意义上的混合。将当前片段,和目标片段,按照一定的公式,进行加权计算。
【1】
#version 330 core
out vec4 FragColor;
in vec2 TexCoords;
uniform sampler2D texture1;
void main()
{
vec4 texColor = texture(texture1, TexCoords);
if(texColor.a < 0.1)
discard;
FragColor = texColor;
}
丢弃片段的比较暴力了,直接判断alpha<某个常亮的片段,丢弃掉,不过这个if会产生逻辑分支,所以效率也就那样吧……