Added implementation of SSAA (Screen-Space Anti-Aliasing) to Scene in window.py, and added the necessary OpenGL classes in lib.py.
SSAA can be more computationally expensive than other forms of anti-aliasing, but gives an improvement to visual quality. There is potential for future improvement. Since SSAA is implemented in Scene alongside FXAA, we propose that MSAA be moved to Scene as well if possible.
One currently known issue is with line rendering, which is especially prevalent with wireframes. In some scenes, wireframe objects did not render when SSAA was turned on, and it may potentially thin other lines regardless of set line width. Will look into further.
As a side note, when testing we ran into a weird bug with wireframe rendering. It is an issue with the VTK shader implementation that made it compile improperly on some GPUs, and has been fixed in the most recent version of VTK (9.3) in case someone else runs into the problem as well.
Added implementation of SSAA (Screen-Space Anti-Aliasing) to Scene in window.py, and added the necessary OpenGL classes in lib.py.
SSAA can be more computationally expensive than other forms of anti-aliasing, but gives an improvement to visual quality. There is potential for future improvement. Since SSAA is implemented in Scene alongside FXAA, we propose that MSAA be moved to Scene as well if possible.
One currently known issue is with line rendering, which is especially prevalent with wireframes. In some scenes, wireframe objects did not render when SSAA was turned on, and it may potentially thin other lines regardless of set line width. Will look into further.
As a side note, when testing we ran into a weird bug with wireframe rendering. It is an issue with the VTK shader implementation that made it compile improperly on some GPUs, and has been fixed in the most recent version of VTK (9.3) in case someone else runs into the problem as well.
Contributors: Luke Nargang and Sparsh Nair