Optionally render circles as point lists to replicate their 8-bit rendering on GPUs #63
Labels
Enhancement
New feature or request
Graphics
Portability
Porting the game away from 32-bit Windows
~≤0.33 pushes
Projected number of pushes needed. Might turn out to get more expensive!
In 8-bit mode, Shuusou Gyoku draws circles by writing pixels along the accurate outline into the framebuffer:
In the GPU-accelerated modes, circles are instead approximated by straight lines along a 32-sided polygon. This is easier to render on GPUs, but noticeably jaggier, and might stick out at the larger resolutions this game will be scaled to.
I chose to keep the 32-sided polygon for the SDL_Renderer port (#4) mainly for preservation reasons and consistency with the Direct3D backend. Since the 8-bit implementation confirms the intent ("it should just be a circle"), we could replicate the 8-bit behavior on a GPU by sending a list of all the exact points that the 8-bit version would write. But there is no reason why choosing one method over the other should be a backend question – in SDL, we'd use
SDL_RenderDrawPoints()
, and even old Direct3D has theD3DPT_POINTLIST
primitive.Instead, perfect circles would be a frontend option, selectable in the Graphics menu.
The text was updated successfully, but these errors were encountered: