ps2dev / gsKit

gsKit is a C interface to the PS2 Graphics Synthesizer
Other
103 stars 27 forks source link

High resolution 3D rendering + example #9

Closed rickgaiser closed 7 years ago

rickgaiser commented 7 years ago

This patch series adds high-resolution rendering using multiple passes. Changing to high resolution rendering requires changing few lines of code to existing applications (see added example). All the rest is done by gsKit in a separate thread.

Even when the application is slow and running at for instance 20fps, it can still use high-resolution rendering. The thread will make sure the gs is rendering at 120, 180 or 240 passes per second (depending on the number of passes per frame (2, 3 or 4).

Using 2 passes the memory used by the front, back and depth buffer will be only 50%. Using 3 passes the memory used by the front, back and depth buffer will be only 33%. Using 4 passes the memory used by the front, back and depth buffer will be only 33%, with some extra memory left for a dynamic memory (texture) manager I have planned for the future. Due to alignment requirements 4 passes is also required by higher resolutions (like 1920x1024 for instance).

Note that this does not change any existing functionality, so it's fully compatible with existing applications.