FluidX3D v2.4 (UI improvements)
UI improvements:
- added a help menu with key H that shows keyboard/mouse controls, visualization settings and simulation stats
- zoom control with keyboard is now keys +/- instead of ./,
- print camera settings in console is now key G instead of H
- a simple mouseclick now frees/locks the cursor additionally to key U
- if the grid resolution is set larger than memory capacity allows, an error will now be printed, suggesting the largest possible grid resolution, so users don't have to guess how large the grid can be
- all source files are now encoded in UTF-8
Minor optimizations:
- the allocation size for the transfer buffers is now the not the maximum of Ax/Ay/Az, but only the maximum of the areas that are actually communicated; saves a few MB VRAM in some occasions
- the transfer buffer for fi is now used as faster array of structures instead of structure of arrays; performance difference is negligible
- refactoring in smart_device_selection() function
- upgraded OpenCL-Wrapper: devices from the same vendor are now in the same OpenCL Context, allowing migration of Memory objects; event-driven synchronisation can now be used
Bug fixes:
- fixed bug in temperature equilibrium function for temperature extension; lattice speed of sound in D3Q7 is 1/2 and not 1/sqrt(3)
- made erroneous double literal in skybox color functions, which is a bug for Intel iGPUs, a float literal
- fixed bug in make.sh where multiple console parameters for multi-GPU device IDs would not get forwarded from the ./make.sh call to the bin/FluidX3D executable
- fixed bug in mouse rotation in Windows when cursor is free but kept getting centered during rotation
- fixed bug in interactive graphics where text labels on the right side of the screen would not get drawn on both left/right eye screens in VR mode
- fixed bug in LBM::voxelize_stl() size parameter standard initialization