Opengl:通过选择颜色使纹理背景透明

时间:2014-04-28 00:20:30

标签: c++ opengl glsl fragment-shader

我在OpenGL中有一张树的图片作为2D纹理。我想删除背景(skyblue)或者更确切地说使该部分透明。如何在片段着色器中执行此操作。我想出的最接近的是去除纹理中高于阈值的像素。例如

#version 330
in vec2 texCoord;
out vec4 outColor;

uniform sampler2D theTexture;

void main()
{
  vec4 texel = texture(theTexture, texCoord);
  if(texel.b < threshold)
     discard;
  outColor = texel;

}

0 个答案:

没有答案