Floor cucking: Difference between revisions

paragraphs
mNo edit summary
(paragraphs)
 
Line 2: Line 2:
{{rewrite}}
{{rewrite}}
[[File:FloorCucking.png|alt=test alttext|left|thumb|Example of how a bottom floor always below a top floor, at all points, can overshadow the floor above it.]]
[[File:FloorCucking.png|alt=test alttext|left|thumb|Example of how a bottom floor always below a top floor, at all points, can overshadow the floor above it.]]
'''Floor Cucking''', also known as '''Floor Overshadowing''' or '''Surface Overshadowing''', is a phenomenon that occurs when 2 floors or 2 ceilings (both need not be floors, despite the name) are prioritized unintuitively. Triangles are prioritized by the height of their first vertex. This means that, for example, 2 floors can overlap each other, with the first being on average much higher than the second; however, if the first vertex of the second floor is higher than the first vertex of the first floor, the game will decide that the second floor is higher. (In the case of the height of the first vertex being the same, the floor that comes first in the collision data will overshadow the floor that comes second, again regardless of average height.) This can cause significant in-game glitches. For example, if a ceiling is wedged between 2 floors, and the lower floor overshadows the higher one, the area above the ceiling triangle becomes a ceiling and Mario will not be able to enter it despite the floor above the ceiling. This is what occurs above the big house in Rainbow Ride<ref>[https://www.youtube.com/watch?v=a__Zw3xVrfs "SM64 Obscure RR Region Difference" by 1ted59]</ref>, where the vertices of floor triangles were re-ordered between versions making a higher vertex of a lower floor triangle be designated vertex #1.
'''Floor Cucking''', also known as '''Floor Overshadowing''' or '''Surface Overshadowing''', is a phenomenon that occurs when 2 floors or 2 ceilings (both need not be floors, despite the name) are prioritized unintuitively. As a result, one surface is prioritized despite being lower; this causes the upper surface to be practically intangible above the lower surface.
 
Specifically, sufrace triangles are prioritized by the height of their first vertex, but this "first vertex" is just which vertex arbitrarily comes first in the code. As long as that one particular vertex is higher than that one particular vertex of another surface, the another sufrace is considered lower and is overshadowed, even if the another surface is higher at all points. (In the case of the height of the first vertex being the same, the floor that comes first in the collision data will overshadow the floor that comes second, again regardless of average height).
 
This can cause significant in-game glitches. For example, if a ceiling is wedged between 2 floors, and the lower floor overshadows the higher one, the area above the ceiling triangle becomes a ceiling and Mario will not be able to enter it despite the floor above the ceiling. This is what occurs above the big house in Rainbow Ride<ref>[https://www.youtube.com/watch?v=a__Zw3xVrfs "SM64 Obscure RR Region Difference" by 1ted59]</ref>, where the vertices of floor triangles were re-ordered between versions making a higher vertex of a lower floor triangle be designated vertex #1.


==References==
==References==
246

edits