- OpenGL 4.5 based: All OpenGL APIs are DSA version. They are very clear and effective. Therefore, the source code is also a good example for learning the newer API, which covers the most common API on rendering.
- Native API almost in one file: Almost all OpenGL calls are explicitly written in main() function that you can easily read from start to end and understand the graphics pipeline configuration.
- Large Scale Volume Data Rendering: It can render serveral tera-bytes volume data interactivly.
- Flexible volume data format: For better perfermance, you can define your own data format without recompiling the renderer. Just extents the data reader by the plugin
IBlock3DPluginInterface
defined in VMCore
- Git
- CMake
- C++17 or heigher
The only external dependency is GLFW.
Besides, it has dependent libraries VMCore,VMUtils and VMat, which are automatically installed by the cmake scripts
Vcpkg is highly recommanded to install the GLFW.
git clone https://github.com/cad420/VolumeVisualizationGL.git --recursive
The project could be opened in VS2019 or VS2017 by Open Folder and compiled
You can use any package manager you like to install GLFW. After install the external dependences:
git clone https://github.com/cad420/VolumeVisualizationGL.git --recursive
You need cmake configuring and compiling as usual.
OpenGL is deprecated by Apple long ago. It has no latest version this project rely on. Moreover, the performence of OpenGL on macOS is horrible. Forget it on macOS though it could be compiled successfully theratically as what to be done on Linux.
- Please reference the command line parameters handler for further use.
- The project is just ported from VisualMan and not tested well. It only run with a small-scale data.
- The project do not integrate default data reader for any formats. If you need our data reader, please compile it from VMPlugins, and put the shared library into the subdirectory plugins in the executable binary's directory.
- There is a OpenGL graphics driver issue when using Intel GPU. see https://software.intel.com/en-us/forums/graphics-driver-bug-reporting/topic/740117. I do not have other GPU now, so I try a alternative way. If you have other GPU, you can subsititute with better codes commented in rendering loop.