Skip to content

Interpolation - Intermediate Proposal #240

@anikom15

Description

@anikom15

I have a question about the current VDLP emulation. Are the interpolation corner weight bits recovered for each pixel in the framebuffer? If so, I have an idea for how the core could transmit the corner weight information so the interpolation can be done with post-processing. While this is not intended to be an accurate solution, the idea is that this could at least be used to demonstrate and prototype the effect.

The requirements for this is that the core output 320x240 mode. It should work with either the CLUT enabled or disabled. The two bits for the corner weight will be stored in the lowest bit of the red and blue channels. The first bit can be set, for example, as R = 0 is top, R = 1 is bottom, B = 0 is right, B = 1 is left. This will impact color representation slightly, but it should be very minimal. My second question is if this operation is possible to implement easily in the core.

A shader can then recover the bit values when sampling the input texture. Even though the shader operates in floating-point, there is enough precision to determine the bit value precisely. Once the corner weight values are known, it's easy for me to write a shader to implement the interpolation. I was not able to determine how the weighting is precisely calculated. If unknown I will use a distance-based weighting.

Any thoughts on this would be welcome.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions