FXAA - exclusion list for specific colors (like orbit lines)?

On your FXAA algorithm, it works very well and I like it the best for my machine which has a GTX 770. Yeah mine is a bit behind the times so the faster FXAA is my choice.

I would like to suggest that since the orbit lines are a specific color of yellow and perhaps (hopefully) that color isn't used often or at all in other geometry....that you might adjust the FXAA algorithm to treat the orbit line differently so that it doesn't blend the black of space into the line. So with that specific color, perhaps it doesn't blend.

Can you have an exclusion list for specific colors? Or can you make it an element of the HUD. I don't think the other HUD elements have a problem with FXAA so that must be done after the FXAA process. I am just guessing, of course. They just need to be drawn over the top. edit: NM I guess they have to go behind the planets so I guess it needs to know the depth. Well in that case, perhaps exclude the color?

Edit: I am watching my Asp explorer in the outfitting garage. The camera has a bit of programmed sway in it and because it sways just slightly, the problem that FXAA is creating is easy to see. (IMHO because I don't know the programming. It is only what it looks like to the naked eye)

Whenever there is a high degree of contrast on an edge and as the line changes angle slightly that blended area (darker or lighter) moves back and forth along the edge. You can see that best on any edge where there is a large contrast between the edge like the lights on the floor or where a bright light shines on the darkened canopy.

To smooth out that blend over time....

Can you store the last 30 or 60 or 90 frames and when you finish the FXAA pass, blend the last 30 or 60 or 90 frames together (or frames over a period of time like 1 second) so that the edge is softened over a time period? Would that help? Just a theory.

edit: I don't know how you would do it but if you could adjust the time period that gets blended depending on how much the camera/object/edge is moving, i think it would work better. (theory) So in the outfitting garage it might be a second or two. In a dog fight, there might be no delay (temporal blending?) .

edit: Temporal blending (if you will): Can you make a queue of frames, blend that queue, deduct the head of the queue from the blend when the queue reaches a specified size, add the rear of the queue to the blend? That way you are only pop and push and two blend operations.
 
Last edited:
You could also have an "exposure" effect. Kind of in the same ballpark but I am not sure that it is the same thing. It is kind of like when you expose film to light.

You would "expose" what will be the displayed frame to multiple individual frames, which are rendered (terminology? I mean they are ready to be displayed) more quickly than the displayed frame. Therefore if you have a monster machine that can do 120 FPS, you might then aim for displaying 60 FPS and use the extra headroom to increase the "exposure". So you blend two frames together and display it. That seems like it might also help with anti-aliasing. If you could do 180 FPS, then you would blend a third frame into each frame that will be displayed, and so on.

The idea is the the computers are getting so fast that you have will have many more individual frames that are possible to be created with minor changes to geometrical positions than can be displayed but they are still useful for compositing.
 
Last edited:
Sorry to ramble on all alone, but it is Saturday, so I forgive myself.

So...say you have a pixel. You have drawn the same edge through that pixel 3 times in three frames. Say it is the yellow orbit line against the black background. The orbit line has moved a tiny bit in each frame because we are in super cruise and turning. Now it is time to create the frame that will be displayed. You calculate the percentage that the pixel is yellow vs black, in that pixel, in all three frames and then average that. Then you blend the colors to that percentage.

or, you know, whatever will actually work.
 
Back
Top Bottom