CPU Volume Rendering Library


#1

Hey everyone!

Just giving you a small teaser for our WIP Volume Rendering library for medical imaging and non destructive testing. The library is based on our award winning VoluMedic renderer and we did a quick test implementation in Juce. The library will be (mostly) toolkit agnostic but we plan to ship the initial version with a Juce based example UI implementation that will be open source. There will probably also be examples using Qt (but we dont like that as much).
The renderer is completely CPU based (though we are planning a GPU module in the future as well). So it is very scalable and will be perfect for use in the cloud. No headache over how to support GPUs for decades on your clients workstations and hospital servers.
It is still very fast and using true progressive refinement, it can even be used lower end CPUs. The attached screenshot shows rendertimes (in ms) at 512x512 on a Dual Xeon E5-2665 system with 16 GB of Ram (right below the render resolution). Only the onboard GPU was used for this test.
Upper left viewport shows a cononical Axial view. Lower left shows an MPR. The top right viewport shows standard shaded 3D rendering with lighting. The viewport below shows a MIP view.
Dont hesitate to give me feedback or ask questions!
Thanks!
Elmar
click for full image:
[attachment=0]VM_RenderDemo003.jpg[/attachment]


#2

very cool!

Please post more, when you have it.


#3

Thanks Hugh!
Here is another screenshot. Different dataset and a different machine. This time I used a 2.2 Ghz mobile Core i7 quadcore on a laptop and slightly different settings to show how the renderer behaves in different situations. With this machine, the framerate is still interactive and even during interaction the picture remains clear and crisp. Other solutions degrade the image a lot during interaction. The VoluMedic renderengine uses progressive refinement but even on slower machines the image wont degrate much.
I can even run it on my older laptop with a 2 Ghz Core 2 Duo. Mind though that this is not the intended target system.
We are still working on the details of the library and we are planning to include some additional features like segmentation tools and more complex measurement tools.
The current installment has a simple distance measurement tool (works in 2D and also in 3D) to show how users can select positions in world space with sub voxel precision.
Generally, we hope to move all features of the VoluMedic volume rendering software into the library.
[attachment=0]VoluMedicRenderer.jpg[/attachment]


#4

It's very cool render by cpu, I like it.


#5

Screenshots not showing, displayed as text. Please fix. I’d like to see your work.
Thanks


#6

Oh my! This thread is so old, it was still in the old forums and I guess the attachment did not survive the move to the new one.
Either way, thanks for you interest! The library is still available, but things have evolved quite a bit since then. I will prepare a couple of screenshots for you, since the ones I posted back when are way outdated.


#7

Here are a few videos of the renderlib in action. There is also link to try out the application on the lungmap website. Please note that this is running on 8 logical (4 physical) cores there which is underpowered for the kind of datasets they have.
https://www.lungmap.net/3d-mmvr/


#8

Here are some screenshots with datasets that are more like regular medical imaging datasets. The datasets on the Lungmap website are more demanding than most and the current server is a bit underpowered for them. These screenshots were taken on a laptop with a Core i7 4720HQ quad core CPU. Rendertimes for the 3D Render Modes at 1024x1024 are between 400 and 550 ms depending on the POV and chosen render mode. Thanks to progressive rendering, interaction is perfectly smooth.