This thesis deals with volume rendering in OpenGL and looks at the different areas at which 3D modeling and visualization is used. The thesis focuses on voxel rendering, its advantages and drawbacks, and also the implementation of such a renderer.
The aim of the thesis was to develop a voxel renderer in OpenGL from scratch, to a fully functional application that could visualize different 3D data sets generated from for example Diffpack. The data sets are scalar fields which are visualized by associating transparency and color to voxels from the values in the data sets.
There are multiple ways to visualize voxels, I have mainly used a method that uses textures mapped to a 2D plane, which are assembled into a 3D voxel set. This is a method that is supported by common 3D hardware.
To get maximum performance from the different 3D graphics cards that are available, you can use different graphics libraries. For PC’s there are two low-level graphics libraries to choose from, OpenGL and DirectX. OpenGL is developed by Silicon Graphics and are compatible with a number of different operating systems. DirectX is developed by Microsoft and is only supported in Microsoft Windows. For this thesis I chose OpenGL as the tool to use. OpenGL is a powerful software library which utilizes modern graphics hardware. Through OpenGL you get access to most of the graphic cards functions. OpenGL is however a low-level library and demands a lot of knowledge on a fundamental level to be able to visualize complex objects and scenes. I therefore take a closer look at how OpenGL works and at the theory at which it is built.
I also look at the opportunities, advantages and drawbacks with voxel rendering, and looks at the requirements which is demanded by the hardware to be able to solve the tasks efficiently. I conclude this thesis by comparing my OpenGL voxel renderer with other available voxel renderers, such as The Visualization Toolkit (VTK).