Hi PaQ,
> Do you think it's possible to disable antialiasing completely ? or does it introduce some problems
> in the moi selection mechanism ?
> The mean reason is to have better viewport perf ;)
Just disabling anti-aliasing without actually changing how the drawing is done would not have any effect at all on performance because it doesn't really make much difference whether the video card is drawing textured polygons or untextured polygons, the fill rate on video cards these days is not a bottleneck at all.
It could possibly have some probably small impact to switch to draw line entities rather than sending polygon entities to the video card, but that's not exactly a minor change and still even then it's unlikely to have much effect because the process of breaking down curves into line segments would still be the same as before.
The main thing that could have a more significant effect would not be disabling anti-aliasing but by using fewer line segments to do the drawing, that would make the display not non-anti-aliased but instead more angular-polyline looking. I've experimented with that some with some of your own models, but just tweaking the current code to produce fewer line segments for each display bezier does not have much impact on many heavy models, instead it would need to work by dividing more of the entire curve into lines instead of going from the full curve to beziers first and then breaking down the beziers as the current mechanism works. So again that's a fair amount of change in order to have that option, and trying to work on full NURBS curves is not as fast as working with beziers, so it would probably have to try to divide it in 3D space only instead of doing it in screen space dynamically, and also that would probably mean caching the 3D polyline data, increasing memory consumption... (although I guess it could then not store beziers in that mode so that might be about the same for memory consumption as long as the polylines were somewhat coarse).
So there are some possible things to experiment with in the future but I've already done the "low hanging fruit" experiments and found little impact in things that are relatively easy to tweak without significant changes to the overall approach.
But I did make some major progress with display performance (not in all situations but in a lot of them) a couple of betas ago with the use of multiple cpu cores being used for the display engine now. Quite a bit of work went into that already, and currently I don't expect to do much more work on display performance through the rest of v3, the only things that I really know that could be possible now would involve degrading the display quality quite a bit. Like for example having all curves and edges display as jagged polylines that are fixed as 3D line segments will look really bad especially as you zoom in anywhere. But that's probably the main thing left to experiment with.
- Michael
|