• mindbleach@sh.itjust.works
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    20 days ago

    And like the Mario 64 one, is only let down by affine distortion. It’s much less of an issue in Tomb Raider because the game was constructed of giant quads - but any walls near the camera get that extreme dented look. Ultima Underworld had the same artifacts. It’s the arbitrary-polygon version of the PS1’s wobbly triangles: edges are linear, and pixels are sampled linearly between them.

    GBA Mario 64 eventually diminished this by subdividing triangles… but the guy did it in a way that doesn’t split existing edges, which is kinda missing the point. Splitting the edges is what gives them depth information. I know it’s to avoid slivers between triangles. But if the outline of each triangle has to be preserved, you can draw smaller triangles to fill that space, like it’s a shader. Affine sampling extends to whichever pixels you want to cover.

    The general solution is probably local linearity. Quake did this to the extreme: it’s affine within eight-pixel spans. Dicing up big triangles into 8x8 regions should look nearly as solid. You only have to do one sixty-fourth of all pixels the hard way, and only for triangles big enough to care.