point sprites render smaller with MSAA samples=16 than with other settings #878
I recently noticed that Points-mode meshes render differently when the app is configured for 16 samples-per-pixel than when it is configured for 2, 4, 6, or 8 samples-per-pixel.
When the test app (below) is run in a 640x480 window with anti-aliasing disabled, the points p1 and p2 render as barely-touching white squares. Likewise with 2-, 4-, 6-, or 8-sample anti-aliasing. But with 16 samples, the points render as squares about half as large, so that there is a noticeable gap between them.
I doubt this relates to my GPU's maximum point sprite size, since doubling the PointSize in the mesh causes the squares to touch with 16-sample anti-aliasing.
I discovered this issue in JME version 3.2.1-stable and verified that it also occurs with 3.2.0-stable.
INFO: OpenGL Renderer Information
Well, I was able to confirm on:
NVIDIA Quadro FX 880m/PCIe/SSE2
I've not been able to figure out how to force my laptop to use the integrated chipset instead. (some variant on Intel HD)
I don't understand for certain why this is happening, but I suspect that some insight may come from the Khronos spec for how glPointSize is handled
Apparently, there is a multiple-step Round-and-clamp process when figuring out the actual rendered size.
In particular, I have not been able to figure out if JME enables
I added a Quad behind the points, and adjusted the colors to contrast and blend well. (Red and Blue)
This is consistent with
I Might be able to hack together an ARM build of LWJGL, and test this out on a RasberryPI, just to get a different GPU involved. That, however, may take a bit.
I might suggest using Vmware Player 14 + something like ubuntu and install the vmware tools on the guest, it uses a virtual gpu, that is enough to run jme somewhat, might be an easier way than to compile lwjgl for arm :)
Extended renderer info (GLX_MESA_query_renderer):