Return to Showcase


Master thesis result: Volume rendering plugin for PixelLight

To show your projects using PixelLight

Moderators: cin, Lim4, icefire, thewolfwillcome, NightFox, aikidos, COfenberg, sbusch

Master thesis result: Volume rendering plugin for PixelLight

Postby COfenberg » Fri Apr 27, 2012 7:29 am

As part of my master thesis "Scalable Realtime Volume Rendering" (in German) , I wrote a volume rendering plugin for the free open source 3D engine PixelLight. The plugin adds new scene node types for volume and clip elements as well as a scene renderer step within the compositing system capable to process and visualize currently visible volume scene nodes.

The core of the thesis is the scalable volume renderer shader system. The volume is rendered using raycasting and the fragment shader itself is split into multiple functions with a well defined interface and task. There are functions for clipping the traced ray, clipping inside the volume, reconstruction, classification, shading, gradient estimation and illumination. For every shader function, there are multiple alternative implementations which can e.g. be used to switch the used illumination model from the traditional Blinn-Phong to for instance Cook-Torrance. Each function implementation is allowed to provide the shader in multiple shader languages, currently GLSL as well as Cg versions are provided.

A shader compositor is analysing the current scene setup and visualization parameters in order to dynamically generate a shader which can be processed by the GPU. Some shader functions are template based, meaning that for example a ray can be clipped by using multiple clip planes and/or the depth buffer. This results in a scalable volume rendering system which can easily be extended by new algorithms for gradient estimation and so on without the need to rewrite the complete raycasting shader. This also means that one and the same system can be used to cover many use cases, from interactive rendering up to high quality rendering using cubic B-splines for reconstruction and a high sampling rate.

Here are some videos of the volume rendering plugin. The videos were recorded on a notebook with a Radeon HD 6970M.

I started with a first experiment on desktop-PC using a procedurally generated pyroclastic cloud in order to get the idea of volume rendering (only 12 triangles are rendered in order to archive the following results)

and then tested the same on Android 2.3 using a LG Optimus Speed P-990 smartphone


The following video is using the well known visible male dataset

while the next video is using a CT-scan of a PixelLight team member... the team consists of...

He will probably never ever give my more of his scans due to horrible misuse :roll:


For testing purposes I received a 876 MiB CT-scan of a pig containing 512×512×1743 voxel





More information
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Re: Master thesis result: Volume rendering plugin for PixelL

Postby aikidos » Fri Apr 27, 2012 8:33 am

Wow! This is perfectly! :shock:
User avatar
aikidos
 
Posts: 157
Joined: Tue Oct 18, 2011 7:18 pm

Re: Master thesis result: Volume rendering plugin for PixelL

Postby icefire » Fri Apr 27, 2012 8:41 am

Very interesting, does this also mean that your master thesis is a success and you will have more time to possibly spend on PixelLight?
User avatar
icefire
 
Posts: 113
Joined: Fri Nov 04, 2011 12:54 am
Location: Netherlands, the

Re: Master thesis result: Volume rendering plugin for PixelL

Postby COfenberg » Fri Apr 27, 2012 8:52 am

The master thesis is not evaluated, yet (handed it over yesterday). But I finally have more time for PixelLight.
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Re: Master thesis result: Volume rendering plugin for PixelL

Postby gavlig » Sun Apr 29, 2012 10:43 am

impressive! Does it mean you can use voxels now? I mean models made from voxels, not from triangles.
gavlig
 
Posts: 27
Joined: Thu Jan 05, 2012 8:14 pm

Re: Master thesis result: Volume rendering plugin for PixelL

Postby COfenberg » Sun Apr 29, 2012 11:09 am

gavlig wrote:impressive! Does it mean you can use voxels now? I mean models made from voxels, not from triangles.

Yes, the volume rendering is using voxels (= volume elements). In some of the videos I switched to nearest neighbour filtering and also used a lower LOD so one can see the single voxels.
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Re: Master thesis result: Volume rendering plugin for PixelL

Postby NightFox » Tue May 01, 2012 3:07 pm

Very cool :)
Surprisingly that PL can the such. :shock:
User avatar
NightFox
 
Posts: 51
Joined: Sun Apr 29, 2012 3:20 pm

Re: Master thesis result: Volume rendering plugin for PixelL

Postby COfenberg » Wed Jun 13, 2012 7:48 pm

My master thesis "Scalable Realtime Volume Rendering" is now online (in German)

After the next PixelLight release I will add the developed plugins to the PixelLight Git-repository. Maybe this will make PixelLight a little bit more attractive for scientific visualizations. I in case one just want's to visualize volume data/textures via drag'n'drop in PLViewerQt this will then also be possible.
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Re: Master thesis result: Volume rendering plugin for PixelL

Postby aikidos » Wed Jun 13, 2012 8:02 pm

Very interesting, COfenberg! Bad that I do not know German :(

You're going to sell this plugin? Or it will be free?
How much time you spent on your work with him?
User avatar
aikidos
 
Posts: 157
Joined: Tue Oct 18, 2011 7:18 pm

Re: Master thesis result: Volume rendering plugin for PixelL

Postby COfenberg » Wed Jun 13, 2012 8:21 pm

aikidos wrote:You're going to sell this plugin? Or it will be free?
How much time you spent on your work with him?

I don't think that this volume rendering plugin can really compete with professional volume renderers created by people/companies specialized in this particular task since many years. Although I assume that it's not the worst realization and I never saw such a scalable shader based realization. I don't intent to become a freelancer or creating/selling software on my own (I accepted that I'am not capable of this way of life). On the other hand, I don't want to let the work of six month (research, implementation, writing the thesis and also worked on another seminar work during this time) to moulder away. So, it will be free in the hope that it might help to keep PixelLight alive and to open new use cases of PL.
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Re: Master thesis result: Volume rendering plugin for PixelL

Postby aikidos » Wed Jun 13, 2012 8:30 pm

I love PL and his code style (I began to write well). I can't understand why he is not popular. All my friends say that he is difficult :(
I try to make it more popular. If you see the news about PL, PL plugins and more, I will publish them at once in different Russian forums. I think that soon the engine will notice ... I'm sure of it (he's better than many other engines). Important not to surrender 8-)
User avatar
aikidos
 
Posts: 157
Joined: Tue Oct 18, 2011 7:18 pm

Re: Master thesis result: Volume rendering plugin for PixelL

Postby COfenberg » Wed Jun 20, 2012 4:02 pm

The volume renderer plugins are now within the PixelLight Git repository. Currently I am unable to test it under a real Linux installation, I was just able to compile it in a virtual machine for this system.
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Re: Master thesis result: Volume rendering plugin for PixelL

Postby COfenberg » Wed Jun 20, 2012 10:13 pm

Uploaded a demo showing volume rendering within PixelLight using GPU shader based volume raycasting: http://www.pixellight.org/site/index.php/page/25.html
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Re: Master thesis result: Volume rendering plugin for PixelL

Postby aikidos » Wed Jun 20, 2012 11:01 pm

COfenberg wrote:Uploaded a demo showing volume rendering within PixelLight using GPU shader based volume raycasting: http://www.pixellight.org/site/index.php/page/25.html

WOW :shock: That's wonderful! My graphics card (GTS250) is not allowed 10 FPS (so close to the model) :(
User avatar
aikidos
 
Posts: 157
Joined: Tue Oct 18, 2011 7:18 pm

Re: Master thesis result: Volume rendering plugin for PixelL

Postby COfenberg » Thu Jun 21, 2012 7:28 am

aikidos wrote:
COfenberg wrote:Uploaded a demo showing volume rendering within PixelLight using GPU shader based volume raycasting: http://www.pixellight.org/site/index.php/page/25.html

WOW :shock: That's wonderful! My graphics card (GTS250) is not allowed 10 FPS (so close to the model) :(

Volume rendering eats up a lot of fillrate, it's not unusual that there are more than a thousands texture accesses per fragment. By changing some settings like sampling rate or how values are reconstructed, it can easily go far beyond the mentioned number of texture accesses per fragment. I have the suspicion that one of my volume rendering stress tests killed my previous ATI/AMD Mobility Radeon HD 4850 GPU (rest in peace my good old friend).

In the literature there are several possibilities to further increase the performance like empty space skipping or computing the gradients once and then storing them within another texture. But those usually make several assumptions about the dataset and how it's used, like static not to dense volume data as well as not changing the transfer function or other parameters. It appears that I already did more what's usual for a master thesis, so, in order to manage it in the available time, I had to cancel some features which might have further improved the performance (in case the circumstances allow it).
User avatar
COfenberg
 
Posts: 440
Joined: Thu Mar 03, 2011 9:31 pm
Location: Germany

Next

Return to Showcase

Who is online

Users browsing this forum: No registered users and 1 guest

cron