0

我正在使用 OpenGL >3.3,我想知道是否有办法在片段着色器中轻松找出片段是否属于背景。(我正在使用#Version 330)。
我正在使用多通道渲染,我必须与实际上不是背景的片段的邻居一起工作......(我正在使用点云)。所以我试着做:

uniform vec3 backGroundColor;
float dx = 1/screenwidth;  
float dy = 1/screenHeight;
for (int i=-3; i<3; ++i){
  for (int j=-3; j<3; ++j){
    vec3 frag = texture(screenTexture, TexCoords + vec2(i*dx, j*dy)).xyz;
    if (frag.x != backGroundColor.x && frag.y != backGroundColor.y && frag.z != backGroundColor.z)
        do something...
    else
        do other Things...
  }
} 

但我认为这是低效的......(由于浮点精度而不是正确的......)有没有更好的方法来实现我想要的?

4

0 回答 0