Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
RingRacers
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Operate
Terraform modules
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
NepDisk
RingRacers
Compare revisions
master to 1cd69c11dce6eb7fa46c99f2c2585d0b2f87c45c
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
NepDisk/RingRacers
Select target project
No results found
1cd69c11dce6eb7fa46c99f2c2585d0b2f87c45c
Select Git revision
Branches
disable-discordrpc
master
shaderlessclipfix
Tags
v2.0
v2.1
v2.2
v2.3
7 results
Swap
Target
KartKrew/RingRacers
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
master
Select Git revision
Branches
disable-discordrpc
master
Tags
v2.0
v2.1
v2.2
v2.3
6 results
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source (5)
Fix Sprite clipping without the use of shaders
· 951081fc
NepDisk
authored
8 months ago
951081fc
Remove Floor clipping shader entirely
· bfd8b093
NepDisk
authored
8 months ago
bfd8b093
Fix splats
· 4808e885
NepDisk
authored
8 months ago
4808e885
Fix Splatboosters being stuck in the floor
· cbbd3234
NepDisk
authored
8 months ago
Thanks to Alu Folie for helping me figure out how to fix this!
cbbd3234
Fix papersprites offset
· 1cd69c11
NepDisk
authored
8 months ago
Thanks Alu Folie for the assitance
1cd69c11
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/hardware/hw_defs.h
+0
-1
0 additions, 1 deletion
src/hardware/hw_defs.h
src/hardware/hw_main.c
+44
-24
44 additions, 24 deletions
src/hardware/hw_main.c
src/hardware/r_opengl/r_opengl.c
+0
-14
0 additions, 14 deletions
src/hardware/r_opengl/r_opengl.c
with
44 additions
and
39 deletions
src/hardware/hw_defs.h
View file @
1cd69c11
...
...
@@ -144,7 +144,6 @@ enum
SHADER_FLOOR
,
SHADER_WALL
,
SHADER_SPRITE
,
SHADER_SPRITECLIPHACK
,
SHADER_MODEL
,
SHADER_MODEL_LIGHTING
,
SHADER_WATER
,
SHADER_FOG
,
...
...
This diff is collapsed.
Click to expand it.
src/hardware/hw_main.c
View file @
1cd69c11
...
...
@@ -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
.
05
f
*
spr
->
dispoffset
);
float
si
=
-
gl_viewsin
*
(
0
.
05
f
*
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
.
0
f
*
spr
->
dispoffset
)
+
20
.
0
f
)
/
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
.
05
f
*
spr
->
dispoffset
);
float
si
=
-
gl_viewsin
*
(
0
.
05
f
*
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
.
0
f
,
distfact
=
0
.
0
f
;
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
.
0
f
*
spr
->
dispoffset
)
+
20
.
0
f
)
/
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
.
0
f
+
20
.
0
f
)
/
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
;
}
...
...
This diff is collapsed.
Click to expand it.
src/hardware/r_opengl/r_opengl.c
View file @
1cd69c11
...
...
@@ -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
},
...
...
This diff is collapsed.
Click to expand it.