OpenGL & gt; 3 фрагментный шейдер знает, является ли frag фоном

Я работаю с OpenGL> 3.3, и мне было интересно, если есть способ выяснить, принадлежит ли фрагмент легко фону в фрагментном шейдере. (Я работаю с версией 330).
Я использую многопроходный рендеринг, и мне приходится работать с соседями фрагмента, которые на самом деле не являются фоном … (я работаю с pointcloud).
Итак, я попытался сделать:

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...
}
}

Но я считаю, что это неэффективно … (И это не так из-за точности поплавка …)
Есть ли лучший способ добиться того, что я пытаюсь сделать?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]