Skip to content

Conversation

@freeze-dolphin
Copy link
Contributor

previous (#78)

Fix that arc renderer is sorted by colorId regardless of position:

image

This implementation is still in-consist with the official one, especially when encountering following situation:

This branch Official (Arcade)
image image

@freeze-dolphin freeze-dolphin changed the title Gameplay: Fix glitching arcs of different colors Gameplay: Fix glitching arcs of different colors (2) Dec 23, 2025
@freeze-dolphin
Copy link
Contributor Author

My test case:
动画

1.aff
AudioOffset:0
-
timing(0,100.00,4.00);
arc(0,300,0.00,0.50,s,1.00,0.00,0,none,false);
arc(300,600,0.50,1.00,s,0.00,1.00,0,none,false);
arc(600,600,0.00,0.00,s,0.00,1.00,1,none,true);
arc(600,600,1.00,0.00,s,1.00,1.00,1,none,true);
arc(600,900,0.00,0.50,s,1.00,0.00,1,none,false);
arc(600,1200,1.00,0.00,s,1.00,1.00,0,none,false);
arc(900,1200,0.50,1.00,s,0.00,1.00,1,none,false);
arc(1200,1200,1.00,0.00,s,1.00,1.00,1,none,true);
arc(1200,1500,0.00,0.50,s,1.00,0.00,0,none,false);
arc(1200,1800,1.00,0.00,s,1.00,1.00,1,none,false);
arc(1500,1800,0.50,1.00,s,0.00,1.00,0,none,false);
arc(1800,1800,1.00,0.00,s,1.00,1.00,1,none,true);
arc(1800,2100,0.00,0.50,s,1.00,0.00,1,none,false);
arc(1800,2100,1.00,0.50,s,1.00,0.00,0,none,false);
arc(2100,2400,0.50,1.00,si,0.00,0.80,0,none,false);
arc(2100,2400,0.50,0.00,si,0.00,0.80,1,none,false);
arc(2100,2400,0.50,0.00,si,0.00,0.80,0,none,false);
arc(2100,2400,0.50,1.00,si,0.00,0.80,1,none,false);
arc(2400,3000,0.00,1.00,so,0.80,0.00,0,none,false);
arc(2400,3000,1.00,0.00,s,0.80,0.00,0,none,false);
arc(2400,3000,0.00,1.00,s,0.80,0.00,1,none,false);
arc(2400,3000,1.00,0.00,so,0.80,0.00,1,none,false);
arc(3600,3750,1.00,0.50,si,0.00,0.00,1,none,false);
arc(3600,3900,0.00,-0.25,si,0.00,0.00,0,none,false);
arc(3600,4200,0.00,0.50,si,0.00,0.00,0,none,false);
arc(3600,4500,1.00,1.50,si,0.00,0.00,1,none,false);
arc(3900,3900,0.50,1.00,s,0.00,0.00,1,none,false);
arc(3900,4200,0.50,0.50,s,0.00,0.00,1,none,false);
arc(3900,4200,1.00,1.00,s,0.00,0.00,1,none,false);
arc(4050,4275,-0.25,0.50,si,0.00,0.00,0,none,false);
arc(4200,4200,0.50,1.00,s,0.00,0.00,1,none,false);
arc(4200,4650,0.50,-0.25,so,0.00,0.00,0,none,false);
arc(4350,4800,-0.25,0.50,si,0.00,0.00,0,none,false);
arc(4350,4800,0.50,1.00,si,0.00,0.00,1,none,false);
arc(4500,4500,0.75,1.50,s,0.00,0.00,1,none,false);
arc(10800,11400,0.00,0.50,s,0.00,0.00,0,none,false);
arc(10800,11400,0.50,0.50,s,0.00,0.00,1,none,false);
arc(10800,11400,1.00,0.50,s,0.00,0.00,2,none,false);
arc(11400,11700,0.50,-0.25,s,0.00,0.00,0,none,false);
arc(11400,12000,0.50,1.00,s,0.00,0.00,2,none,false);
arc(11400,12600,0.50,0.50,s,0.00,0.00,1,none,false);
arc(12000,12300,1.00,0.00,s,0.00,0.00,2,none,false);
arc(13678,14278,0.00,0.50,si,0.00,0.00,0,none,false);
arc(13978,14278,0.50,0.50,s,0.00,0.00,1,none,false);

@freeze-dolphin
Copy link
Contributor Author

freeze-dolphin commented Dec 23, 2025

when low dropRate (Speed=2.0 in ArcCreate Settings or lower) is applied, arc notes that are far from the camera seem still to be little glitching.

image

I tried to figure out why but in vain. GPT gave me her perspective:

The depth buffer is not linear under perspective projection: it compresses most of the precision into the region near the near plane. Depth differences at greater distances are very small within the depth buffer, making the depths of two different objects "indistinguishable" at the depth buffer scale. This causes inconsistencies between the GPU's depth testing and the CPU's pre-sorting, especially noticeable when objects are further apart.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant