I decided to use OpenGL in Python 3.7 & Windows 10 configuration. After creating a simple game, I started wondering if I can use VBO to speed up the drawing process. However, Windows does NOT support numpy.float128, which means that OpenGL VBO is not Windows compatible. This could be solved if numpy.float64 is used. If someone could add code so that numpy.float128 would be used only if it exists - it would be so wonderful.
Please explain what you mean by this. It makes no sense to me.
Typically, you provide float32 or float64 to the GPU (though for the latter, you typically take a performance and memory hit). float128 “long double” is even higher precision floating point than that (ideally 128-bit, but for legacy 8087 reasons, 80-bit), and you don’t use it to feed data to the GPU.
OpenGL VBO support is completely Windows compatible.
He’s referring to PyOpenGL, which is barely maintained on Windows (the binaries on SourceForge are dated 2010-02-25). Google “PyOpenGL float128” will find reports of other people having the same issue, e.g. here.
First, I’d check that you have the most recent version. The maintainer’s GitHub page shows recent commits, and this commit from a year ago appears to address that issue. I can’t find “official” binaries more recent than the ones on SourceForge (from 2010). There are unofficial binaries here but I don’t know whether you’d need to use the version of NumPy from the same source.
Thank you very much! I will try to update the sources, and see if it helps. I also have another question. You said that PyOpenGL is barely maintained for Windows OS, but is the situation the same for Linux? If it is, are there any other 3D graphics libraries for python that have large functionality and are still maintained?
No. PyOpenGL itself is still being maintained, it’s just the binaries which aren’t. That isn’t an issue on Linux because binaries are typically built by the maintainers of each Linux distribution.