Rendering a isosurface with OpenGL


I trying to render a 3D surface, IsoSurfae, in an openGL c++ setting. The data is in a 3D matrix format. I am not sure how to code this up. Right now I have the 3D matrix at hand in a double format and have hte OpenGL engine started and ready to render. I do not know how to interpret and render the Matrix.

Has anyone rendered a 3D matrix in openGL as an isosurface?


Do you mean a voxel grid? I.e. you’re trying to render a surface which separates voxels whose values are less than some constant from those whose values are greater?

If that’s the case, you probably want to use marching cubes to generate a triangle mesh, which you can then render.


yes I have a set of voxel which are in a 3D matrix of type double (I cannot add hyperlinks to the reply it does not work).

Typical map (isosurface) is of type of Cryo-EM surface, this can be seen by doing a google search on Cryo-EM map and selecting images.

The map can then be read in and the data is stored into a 3D matrix of type double. The voxels are then to be rendered as an iso surface.

Do I need to use VTK as well, or can OpenGL render a voxel in 3D

PS; the hyperlink does not work.