smaa move mask fixes
parent
8c691841d7
commit
f011016d94
|
@ -218,6 +218,10 @@ shader 0 [SMAABlendingWeightCalculation@smaapreset@smaaopts] [
|
|||
// We will use these offsets for the searches later on (see PSEUDO_GATHER4):
|
||||
gl_TexCoord[1] = gl_MultiTexCoord0.xyxy + vec4(-0.25, -0.125, 1.25, -0.125);
|
||||
gl_TexCoord[2] = gl_MultiTexCoord0.xyxy + vec4(-0.125, -0.25, -0.125, 1.25);
|
||||
|
||||
@(if (smaaopt "m") [result [
|
||||
gl_TexCoord[3].xy = gl_MultiTexCoord1.xy;
|
||||
]])
|
||||
}
|
||||
] [
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
|
@ -448,9 +452,9 @@ shader 0 [SMAABlendingWeightCalculation@smaapreset@smaaopts] [
|
|||
vec2 e = texture2DRect(tex0, gl_TexCoord[0].xy).rg;
|
||||
|
||||
@(if (smaaopt "m") [result [
|
||||
float mask = step(texture2DRect(tex3, gl_TexCoord[0].xy).r, 0.75); // inverted mask, 0 means moving, 1 means static
|
||||
float mask = step(texture2DRect(tex3, gl_TexCoord[3].xy).r, 0.25); // inverted mask, 0 means moving, 1 means static
|
||||
]] [result [
|
||||
#define mask 0.0
|
||||
#define mask 1.0
|
||||
]])
|
||||
|
||||
if (e.g > 0.0) { // Edge at north
|
||||
|
|
|
@ -684,7 +684,7 @@ void dosmaa(GLuint outfbo = 0, bool split = false)
|
|||
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, tqaamasktex);
|
||||
}
|
||||
glActiveTexture_(GL_TEXTURE0_ARB);
|
||||
screenquad(vieww, viewh);
|
||||
screenquadoffset(0, 0, vieww, viewh, -0.5f/(1<<tqaamovemaskreduce), -0.5f/(1<<tqaamovemaskreduce), vieww>>tqaamovemaskreduce, viewh>>tqaamovemaskreduce);
|
||||
if(smaadepthmask)
|
||||
{
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
|
|
|
@ -148,6 +148,8 @@ extern int pushscissor(float sx1, float sy1, float sx2, float sy2);
|
|||
extern void popscissor();
|
||||
extern void screenquad(float sw, float sh);
|
||||
extern void screenquad(float sw, float sh, float sw2, float sh2);
|
||||
extern void screenquadoffset(float x, float y, float w, float h);
|
||||
extern void screenquadoffset(float x, float y, float w, float h, float x2, float y2, float w2, float h2);
|
||||
extern void recomputecamera();
|
||||
extern void findorientation();
|
||||
extern float calcfrustumboundsphere(float nearplane, float farplane, const vec &pos, const vec &view, vec ¢er);
|
||||
|
|
|
@ -1579,6 +1579,26 @@ void screenquad(float sw, float sh, float sw2, float sh2)
|
|||
glEnd();
|
||||
}
|
||||
|
||||
void screenquadoffset(float x, float y, float w, float h)
|
||||
{
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord2f(x + w, y); glVertex2f(1, -1);
|
||||
glTexCoord2f(x, y); glVertex2f(-1, -1);
|
||||
glTexCoord2f(x + w, y + h); glVertex2f(1, 1);
|
||||
glTexCoord2f(x, y + h); glVertex2f(-1, 1);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
void screenquadoffset(float x, float y, float w, float h, float x2, float y2, float w2, float h2)
|
||||
{
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glMultiTexCoord2f_(GL_TEXTURE0_ARB, x+w, y); glMultiTexCoord2f_(GL_TEXTURE1_ARB, x2+w2, y2); glVertex2f(1, -1);
|
||||
glMultiTexCoord2f_(GL_TEXTURE0_ARB, x, y); glMultiTexCoord2f_(GL_TEXTURE1_ARB, x2, y2); glVertex2f(-1, -1);
|
||||
glMultiTexCoord2f_(GL_TEXTURE0_ARB, x+w, y+h); glMultiTexCoord2f_(GL_TEXTURE1_ARB, x2+w2, y2+h2); glVertex2f(1, 1);
|
||||
glMultiTexCoord2f_(GL_TEXTURE0_ARB, x, y+h); glMultiTexCoord2f_(GL_TEXTURE1_ARB, x2, y2+h2); glVertex2f(-1, 1);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
VARR(fog, 16, 4000, 1000024);
|
||||
bvec fogcolor(0x80, 0x99, 0xB3);
|
||||
HVARFR(fogcolour, 0, 0x8099B3, 0xFFFFFF,
|
||||
|
|
|
@ -243,10 +243,10 @@ void viewao()
|
|||
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, aotex[2] ? aotex[2] : aotex[0]);
|
||||
int tw = aotex[2] ? gw : aow, th = aotex[2] ? gh : aoh;
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord2f(0, th); glVertex2i(0, 0);
|
||||
glTexCoord2f(tw, th); glVertex2i(w, 0);
|
||||
glTexCoord2f(0, 0); glVertex2i(0, h);
|
||||
glTexCoord2f(tw, 0); glVertex2i(w, h);
|
||||
glTexCoord2f(0, th); glVertex2f(0, 0);
|
||||
glTexCoord2f(tw, th); glVertex2f(w, 0);
|
||||
glTexCoord2f(0, 0); glVertex2f(0, h);
|
||||
glTexCoord2f(tw, 0); glVertex2f(w, h);
|
||||
glEnd();
|
||||
notextureshader->set();
|
||||
}
|
||||
|
@ -1261,10 +1261,10 @@ void viewdepth()
|
|||
glColor3f(1, 1, 1);
|
||||
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, gdepthtex);
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord2f(0, gh); glVertex2i(0, 0);
|
||||
glTexCoord2f(gw, gh); glVertex2i(w, 0);
|
||||
glTexCoord2f(0, 0); glVertex2i(0, h);
|
||||
glTexCoord2f(gw, 0); glVertex2i(w, h);
|
||||
glTexCoord2f(0, gh); glVertex2f(0, 0);
|
||||
glTexCoord2f(gw, gh); glVertex2f(w, 0);
|
||||
glTexCoord2f(0, 0); glVertex2f(0, h);
|
||||
glTexCoord2f(gw, 0); glVertex2f(w, h);
|
||||
glEnd();
|
||||
notextureshader->set();
|
||||
}
|
||||
|
@ -1278,10 +1278,10 @@ void viewrefract()
|
|||
glColor3f(1, 1, 1);
|
||||
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, refracttex);
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord2f(0, gh); glVertex2i(0, 0);
|
||||
glTexCoord2f(gw, gh); glVertex2i(w, 0);
|
||||
glTexCoord2f(0, 0); glVertex2i(0, h);
|
||||
glTexCoord2f(gw, 0); glVertex2i(w, h);
|
||||
glTexCoord2f(0, gh); glVertex2f(0, 0);
|
||||
glTexCoord2f(gw, gh); glVertex2f(w, 0);
|
||||
glTexCoord2f(0, 0); glVertex2f(0, h);
|
||||
glTexCoord2f(gw, 0); glVertex2f(w, h);
|
||||
glEnd();
|
||||
notextureshader->set();
|
||||
}
|
||||
|
@ -1418,10 +1418,10 @@ void viewrsm()
|
|||
glColor3f(1, 1, 1);
|
||||
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, debugrsm == 2 ? rsmnormaltex : rsmcolortex);
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord2f(0, 0); glVertex2i(screen->w-w, screen->h-h);
|
||||
glTexCoord2f(rsmsize, 0); glVertex2i(screen->w, screen->h-h);
|
||||
glTexCoord2f(0, rsmsize); glVertex2i(screen->w-w, screen->h);
|
||||
glTexCoord2f(rsmsize, rsmsize); glVertex2i(screen->w, screen->h);
|
||||
glTexCoord2f(0, 0); glVertex2f(screen->w-w, screen->h-h);
|
||||
glTexCoord2f(rsmsize, 0); glVertex2f(screen->w, screen->h-h);
|
||||
glTexCoord2f(0, rsmsize); glVertex2f(screen->w-w, screen->h);
|
||||
glTexCoord2f(rsmsize, rsmsize); glVertex2f(screen->w, screen->h);
|
||||
glEnd();
|
||||
notextureshader->set();
|
||||
}
|
||||
|
@ -1435,10 +1435,10 @@ void viewrh()
|
|||
glBindTexture(GL_TEXTURE_3D, rhtex[1]);
|
||||
float z = (debugrh-1+0.5f)/float((rhgrid+2*rhborder)*rhsplits);
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord3f(0, 0, z); glVertex2i(screen->w-w, screen->h-h);
|
||||
glTexCoord3f(1, 0, z); glVertex2i(screen->w, screen->h-h);
|
||||
glTexCoord3f(0, 1, z); glVertex2i(screen->w-w, screen->h);
|
||||
glTexCoord3f(1, 1, z); glVertex2i(screen->w, screen->h);
|
||||
glTexCoord3f(0, 0, z); glVertex2f(screen->w-w, screen->h-h);
|
||||
glTexCoord3f(1, 0, z); glVertex2f(screen->w, screen->h-h);
|
||||
glTexCoord3f(0, 1, z); glVertex2f(screen->w-w, screen->h);
|
||||
glTexCoord3f(1, 1, z); glVertex2f(screen->w, screen->h);
|
||||
glEnd();
|
||||
notextureshader->set();
|
||||
}
|
||||
|
@ -1566,10 +1566,10 @@ void viewshadowatlas()
|
|||
glBindTexture(shadowatlastarget, shadowatlastex);
|
||||
if(usesmcomparemode()) setsmnoncomparemode();
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord2f(0, 0); glVertex2i(screen->w-w, screen->h-h);
|
||||
glTexCoord2f(tw, 0); glVertex2i(screen->w, screen->h-h);
|
||||
glTexCoord2f(0, th); glVertex2i(screen->w-w, screen->h);
|
||||
glTexCoord2f(tw, th); glVertex2i(screen->w, screen->h);
|
||||
glTexCoord2f(0, 0); glVertex2f(screen->w-w, screen->h-h);
|
||||
glTexCoord2f(tw, 0); glVertex2f(screen->w, screen->h-h);
|
||||
glTexCoord2f(0, th); glVertex2f(screen->w-w, screen->h);
|
||||
glTexCoord2f(tw, th); glVertex2f(screen->w, screen->h);
|
||||
glEnd();
|
||||
if(usesmcomparemode()) setsmcomparemode();
|
||||
notextureshader->set();
|
||||
|
|
|
@ -1210,12 +1210,7 @@ void renderpostfx(GLuint outfbo)
|
|||
++tmu;
|
||||
}
|
||||
if(tmu) glActiveTexture_(GL_TEXTURE0_ARB);
|
||||
glBegin(GL_TRIANGLE_STRIP);
|
||||
glTexCoord2f(0, 0); glVertex2f(-1, -1);
|
||||
glTexCoord2f(tw, 0); glVertex2f( 1, -1);
|
||||
glTexCoord2f(0, th); glVertex2f(-1, 1);
|
||||
glTexCoord2f(tw, th); glVertex2f( 1, 1);
|
||||
glEnd();
|
||||
screenquad(tw, th);
|
||||
|
||||
loopj(NUMPOSTFXBINDS) if(p.freeinputs&(1<<j) && postfxbinds[j] >= 0)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue