I’m drawing outlined fonts which are moving, and the camera is slowly moving too. I’m blending each frame with previous frames, so that the moving fonts leave a kind of motion blur trail.
The problem is that at certain camera angles, there are some “sparkle anomalies”. They occur along the intersections of the swept shapes and look a bit like dotted white lines.
Is this some sort of aliasing problem? Or is it related to the camera? It seems to happen when the camera is low enough that the font text is moving through the near clipplane.
z-buffer is 32 bit. But I don’t think this can be a depth buffer issue. The anomalies occur where previous frames are blended. This is done by clearing the depth buffer but not the color buffer. The blend is:
Hmmm - it could be something to do with that. When I lower the alpha further, the anomaly grows worse. I’ll look into that. Aside from increasing the alpha, is there a solution to this problem?
If you are moving the text forward, then some of the white pixels are not beeing touched, so they get left behind. It’s similar to the T-junction issue.
Turn on back face culling. Your inside polygons are showing through your outside polygons at the silhouette and the lighting doesn’t match. Don’t think this should happen but culling will fix it.
What hardware are you running this on? I’ve seen edge artifacts like this before on older Nvidia (NV20-class) cards, and I believe it is a hardware bug.
Looking at that picture, I would guess that you are getting burned by numerical precision issues.
If the vertices of the backs of the letters do not match up exactly to the vertices of the front of the previous frames letters, the edges can rasterize slightly different, resulting in some pixels from the front of the letters of the previous frame showing through.
I don’t think there is much you can do about it (at least robustly), though turning FSAA on may hide the problem to some degree.
in the first message you said outlined fonts,
Can you post a picture of one of the frames rendered without the previous frame blended in so we can see the actual object you are rendering
I have seen a similar effect when drawing a line using a custom brush, it was caused by the outline not compleatly covering the all of the main graphic
I dont know if this will help but try increacing the size of the outline
Right before you render your next frame (on top of the existing frame buffer), render a large, black, screen-size quad transparently (alpha < 0.02 or so) over the entire frame. Any of those leftover pixels will be slowly darkened so as to be less visible.
-or-
as an alternative, you can follow up your rendering of the extruded fonts with a rendered outline of the font in a 3 pixel wide, black line. That would likely cover those pixels with black before they even get a chance to be ‘left behind’