Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • disable-discordrpc
  • master
  • shaderlessclipfix
  • v2.0
  • v2.1
  • v2.2
  • v2.3
7 results

Target

Select target project
  • KartKrew/RingRacers
  • bitten2up/RingRacers
  • X.organic/RingRacers
  • StarManiaKG/the-story-of-subsequent-tutorials-and-dance-dance-revolutions-remastered-rocking-the-4th
  • LoganAir/RingRacers
  • Hanicef/RingRacers
  • aa/RingRacers
  • JugadorXEI/RingRacers
  • Jisk/RingRacers
  • Callmore/RingRacers
  • Lugent/RingRacers
  • Chopp/ring-racers-cope
  • tertu/RingRacers
  • lavla/RingRacers
  • Snu/RingRacers
  • Zwip-Zwap_Zapony/RingRacers
  • haya_/RingRacers
  • Lactozilla/RingRacers
  • SMS_Alfredo/RingRacers
  • spectrumuk2/RingRacers
  • vanhouc/RingRacers
  • diskpoppy/RingRacers
  • kingofmemes2401g/ring-racers-kings-fork
  • LatiusAuro/RingRacers
  • Guil/RingRacers
  • Chearii/RingRacers
  • EeveeEuphoria/RingRacers
  • kimmy/RingRacers
  • spazzylemons/RingRacers
  • brosasaki/RingRacers
  • wehrlia/RingRacers
  • MightyMcTopher/RingRacers
  • FreakyMutantMan/RingRacers
  • troy236/RingRacers
  • Craftyawesome/RingRacers
  • NepDisk/RingRacers
  • alufolie91/RingRacers
  • bird/RingRacers
  • PencilVoid/RingRacers
  • Superstarxalien/RingRacers
  • WTF/RingRacers
  • Lach/RingRacers
  • frostu8/RingRacers
  • Benji_Menji/RingRacers
  • Dr_Nope/RingRacers
  • Nep2Disk/RingRacers
  • Lighto97/RingRacers
  • lostromb/RingRacers
  • luigi-budd/RingRacers
49 results
Select Git revision
  • disable-discordrpc
  • master
  • v2.0
  • v2.1
  • v2.2
  • v2.3
6 results
Show changes
Commits on Source (5)
......@@ -144,7 +144,6 @@ enum
SHADER_FLOOR,
SHADER_WALL,
SHADER_SPRITE,
SHADER_SPRITECLIPHACK,
SHADER_MODEL, SHADER_MODEL_LIGHTING,
SHADER_WATER,
SHADER_FOG,
......
......@@ -3359,19 +3359,23 @@ static void HWR_SplitSprite(gl_vissprite_t *spr)
baseWallVerts[0].t = baseWallVerts[1].t = ((GLPatch_t *)gpatch->hardware)->max_t;
}
// if it has a dispoffset, push it a little towards the camera
if (spr->dispoffset) {
float co = -gl_viewcos*(0.05f*spr->dispoffset);
float si = -gl_viewsin*(0.05f*spr->dispoffset);
baseWallVerts[0].z = baseWallVerts[3].z = baseWallVerts[0].z+si;
baseWallVerts[1].z = baseWallVerts[2].z = baseWallVerts[1].z+si;
baseWallVerts[0].x = baseWallVerts[3].x = baseWallVerts[0].x+co;
baseWallVerts[1].x = baseWallVerts[2].x = baseWallVerts[1].x+co;
}
// push it toward the camera to mitigate floor-clipping sprites
if (!R_ThingIsPaperSprite(spr->mobj)) // but not for papersprites
{
// Let dispoffset work first since this adjust each vertex
HWR_RotateSpritePolyToAim(spr, baseWallVerts, false);
// push it toward the camera to mitigate floor-clipping sprites
float sprdist = sqrtf((spr->x1 - gl_viewx)*(spr->x1 - gl_viewx) + (spr->z1 - gl_viewy)*(spr->z1 - gl_viewy) + (spr->gzt - gl_viewz)*(spr->gzt - gl_viewz));
float distfact = ((2.0f*spr->dispoffset) + 20.0f) / sprdist;
for (i = 0; i < 4; i++)
{
baseWallVerts[i].x += (gl_viewx - baseWallVerts[i].x)*distfact;
baseWallVerts[i].z += (gl_viewy - baseWallVerts[i].z)*distfact;
baseWallVerts[i].y += (gl_viewz - baseWallVerts[i].y)*distfact;
}
}
realtop = top = baseWallVerts[3].y;
realbot = bot = baseWallVerts[0].y;
ttop = baseWallVerts[3].t;
......@@ -3424,7 +3428,7 @@ static void HWR_SplitSprite(gl_vissprite_t *spr)
if (HWR_UseShader())
{
shader = (R_ThingIsPaperSprite(spr->mobj) || R_ThingIsFloorSprite(spr->mobj)) ? SHADER_SPRITE : SHADER_SPRITECLIPHACK;
shader = SHADER_SPRITE;
blend |= PF_ColorMapped;
}
......@@ -3812,20 +3816,36 @@ static void HWR_DrawSprite(gl_vissprite_t *spr)
wallVerts[0].t = wallVerts[1].t = ((GLPatch_t *)gpatch->hardware)->max_t;
}
if (!splat)
{
// if it has a dispoffset, push it a little towards the camera
if (spr->dispoffset) {
float co = -gl_viewcos*(0.05f*spr->dispoffset);
float si = -gl_viewsin*(0.05f*spr->dispoffset);
wallVerts[0].z = wallVerts[3].z = wallVerts[0].z+si;
wallVerts[1].z = wallVerts[2].z = wallVerts[1].z+si;
wallVerts[0].x = wallVerts[3].x = wallVerts[0].x+co;
wallVerts[1].x = wallVerts[2].x = wallVerts[1].x+co;
}
float sprdist = 0.0f, distfact = 0.0f;
size_t i;
if (!splat && !R_ThingIsPaperSprite(spr->mobj))
{
// Let dispoffset work first since this adjust each vertex
HWR_RotateSpritePolyToAim(spr, wallVerts, false);
// push it toward the camera to mitigate floor-clipping sprites
sprdist = sqrtf((spr->x1 - gl_viewx)*(spr->x1 - gl_viewx) + (spr->z1 - gl_viewy)*(spr->z1 -gl_viewy)+ (spr->gzt - gl_viewz)*(spr->gzt - gl_viewz));
distfact = ((2.0f* spr->dispoffset) + 20.0f) / sprdist;
for (i = 0; i < 4; i++)
{
wallVerts[i].x += (gl_viewx - wallVerts[i].x)*distfact;
wallVerts[i].z += (gl_viewy - wallVerts[i].z)*distfact;
wallVerts[i].y += (gl_viewz - wallVerts[i].y)*distfact;
}
}
else if (R_ThingIsFloorSprite(spr->mobj))
{
sprdist = sqrtf((spr->x1 - gl_viewx)*(spr->x1 - gl_viewx) + (spr->z1 - gl_viewy)*(spr->z1 - gl_viewy));
distfact = (2.0f + 20.0f) / sprdist;
// pull splats out of the floor
for (i = 0; i < 4; i++)
{
wallVerts[i].x += (gl_viewx - wallVerts[i].x)*distfact;
wallVerts[i].z += (gl_viewy - wallVerts[i].z)*distfact;
wallVerts[i].y += (gl_viewz - wallVerts[i].y)*distfact;
}
}
// This needs to be AFTER the shadows so that the regular sprites aren't drawn completely black.
......@@ -3917,7 +3937,7 @@ static void HWR_DrawSprite(gl_vissprite_t *spr)
if (HWR_UseShader())
{
shader = (R_ThingIsPaperSprite(spr->mobj) || R_ThingIsFloorSprite(spr->mobj)) ? SHADER_SPRITE : SHADER_SPRITECLIPHACK;;
shader = SHADER_SPRITE;
blend |= PF_ColorMapped;
}
......
......@@ -883,17 +883,6 @@ static GLRGBAFloat shader_defaultcolor = {1.0f, 1.0f, 1.0f, 1.0f};
"gl_FragColor = final_color;\n" \
"}\0"
// Sprite clipping makes me want to McFucking Die
#define GLSL_SPRITECLIP_HACK_VERTEX_SHADER \
"void main(void) {\n" \
"gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;\n" \
"gl_FrontColor = gl_Color;\n" \
"gl_TexCoord[0].xy = gl_MultiTexCoord0.xy;\n" \
"gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex;\n" \
"gl_Position.z -= 80.0 / gl_Position.z;\n" \
"}\0"
//
// Sky fragment shader
// Modulates poly_color with gl_Color
......@@ -925,9 +914,6 @@ static struct {
// Sprite shader
{GLSL_DEFAULT_VERTEX_SHADER, GLSL_SOFTWARE_FRAGMENT_SHADER},
// Sprite clipping hack shader (for pulling things out of the floor)
{GLSL_SPRITECLIP_HACK_VERTEX_SHADER, GLSL_SOFTWARE_FRAGMENT_SHADER},
// Model shader
{GLSL_DEFAULT_VERTEX_SHADER, GLSL_SOFTWARE_FRAGMENT_SHADER},
......