updated refinement shader

This commit is contained in:
Joshua
2016-09-23 13:27:34 +02:00
parent b749254426
commit c538021666

View File

@@ -21,7 +21,7 @@ int IS_FOREGROUND = 2;
int UNSET = -1; int UNSET = -1;
float M_PI= 3.14159; float M_PI= 3.14159;
int suchbreich=400; //die anzahl der Pixel, die maximal in eine Richtung gegangen wird um einen Sicheren Pixel zu finden int suchbreich=20; //die anzahl der Pixel, die maximal in eine Richtung gegangen wird um einen Sicheren Pixel zu finden
vec4 SicheresPixel[20]; //Speichert die das nachste Sichere Pixel, Array grosse=anzahl der Richtungen vec4 SicheresPixel[20]; //Speichert die das nachste Sichere Pixel, Array grosse=anzahl der Richtungen
int anzahl_richtungen=20; //Speichert anzahl der Richtungen muss gleich der Array grosse von SicheresPixel sein int anzahl_richtungen=20; //Speichert anzahl der Richtungen muss gleich der Array grosse von SicheresPixel sein
@@ -78,14 +78,18 @@ float Farbabstand(int i){
vec3 Pruefe_Pixel_in_Umgebung (vec2 start){ vec3 Pruefe_Pixel_in_Umgebung (vec2 start){
float winkel=2*M_PI/anzahl_richtungen; float winkel=2*M_PI/anzahl_richtungen;
int i=0; int i=0;
float gefundene_pixel=0.0f;
float maximal=0; float maximal=0;
float gesamt_abstand=0.0f; float gesamt_abstand=0.0f;
while(i<anzahl_richtungen){ while(i<anzahl_richtungen){
SicheresPixel[i]=suche_Pixel_nach_winkel(start, winkel*i); SicheresPixel[i]=suche_Pixel_nach_winkel(start, winkel*i);
if(SicheresPixel[i].w!=-1) if(SicheresPixel[i].w!=-1){
gesamt_abstand+=SicheresPixel[i].w; gesamt_abstand+=SicheresPixel[i].w;
gefundene_pixel++;
if(maximal<SicheresPixel[i].w) if(maximal<SicheresPixel[i].w)
maximal=SicheresPixel[i].w; maximal=SicheresPixel[i].w;
}
i=i+1; i=i+1;
} }
maximal++; maximal++;
@@ -98,7 +102,7 @@ vec3 Pruefe_Pixel_in_Umgebung (vec2 start){
}*/ }*/
i=0; i=0;
vec3 kombiniert=vec3(0.0f); vec3 kombiniert=vec3(0.0f);
float nenner=anzahl_richtungen*maximal-gesamt_abstand; float nenner=gefundene_pixel*maximal-gesamt_abstand;
while(i<anzahl_richtungen){ while(i<anzahl_richtungen){
if(SicheresPixel[i].w!=-1) if(SicheresPixel[i].w!=-1)
kombiniert+=SicheresPixel[i].xyz*(maximal-SicheresPixel[i].w)/nenner; kombiniert+=SicheresPixel[i].xyz*(maximal-SicheresPixel[i].w)/nenner;