Frequently Asked Questions (FAQs)

Question?

When compiling the new 2.5 release on Linux or Mac, make complains about Ui::* classes (e.g. AboutBox) and the build processes breaks.

Answer!

Delete all files starting with ui_ in voreen/src/qt and also all make files (Makefile*) in this directory. They will be generated correctly when calling 'make' from the main directory of the Voreen source distribution.

Question?

Voreen does not seem to work with my Intel/S3/VIA onboard graphics card.

Answer!

At the moment, we only support NVIDIA and ATI graphics boards, as most graphics cards from other vendors do not support the functionality we use for volume rendering. This may change in the future, when full-featured OpenGL drivers become available for these cards.

Question?

When selecting a high sampling rate, strange colored patterns appear in the rendering window.

Answer!

This is related to the maximum number of shader instructions supported by the graphics card. GPUs up to the GeForce 7 only support  65536 fragment shader instructions per pass (shown as MAX_PROGRAM_EXEC_INSTRUCTIONS in the application log file), which is not sufficient when choosing very high sampling rates or very complex rendering techniques. Newer GPUs do not have this limitation.

Question?

How do I adapt my own processor classes from Voreen 1.X to be compatible with Voreen 2.0?

Answer!

The main thing, which has been changed in Voreen 2.0 regarding processors, is the way ports are used. Therefore, you have to change the port initialization as well as their usage. To initialize ports, you now call something like this in the constructor initialization section:

entryPort_(Port::INPORT, "image.entrypoints")
exitPort_(Port::INPORT, "image.exitpoints")
outport_(Port::OUTPORT, "image.output", true)

Then, instead of calling the createInport() /createOutport() methods within the constructor, you use addPort() to enable usage of the ports:

addPort(entryPort_);
addPort(exitPort_);
addPort(outport_);

To activate and deactivated an outport in the process() method, you now simply call:
outport_.activateTarget(); or outport_.deactivateTarget();

And to bind the content of an inport, you call:

entryPort_.bindTextures(tm_.getGLTexUnit(entryParamsTexUnit_), tm_.getGLTexUnit(entryParamsDepthTexUnit_));

Furthermore, we have eliminated the currentVolumeHandle_. To get access to a volume, you can now call: volumePort_.getData();

So far, everything became more easy. The only excuse is, that you now have to tell the shader, which texture dimensions to use, since due to the multi-view mode, different texture dimensions may exist. Therefore, you define an appropriate uniform in the shader and call: entryPort_.setTextureParameters(raycastPrg_, "entryParameters_");

The uniform is defined and used in the shader as follows:

uniform TEXTURE_PARAMETERS entryParameters_;
...
vec3 frontPos = textureLookup2Dnormalized(entryPoints_, entryParameters_, p).rgb;

Question?

I want to compile Voreen with DCMTK and Python, and I get an error regarding multiple definitions of ssize_t.

Answer!

This is a known problem when compiling Pathon and DCMTK in general (see the forum). You may apply a hotfix, by changing the typedef in cfwin32.h to equal that in pyconfig.h.

Question?

The linker tells me to "recompile with -fPIC".

Answer!

Add the following line to config.txt and do a "make clean && make":

 QMAKE_CXXFLAGS *= -fPIC

Question?

I have an NVIDIA graphics board. After installing Windows XP Service Pack 3, Voreen refuses to work.

Answer!

There is an issue with Windows XP SP3. After installing it, the NVIDIA driver is not able to compile the shaders anymore. After you have reinstalled the driver, everything should work fine again.

Question?

Using KDE under Linux, my voreen rendering canvas is not displayed as soon as I switch the window focus to another application.  I would like to see the canvas even when voreenve is not the active application.

Answer!

Using KDE 4, go to "System Settings -> Window Behaviour -> Window Behaviour -> Advanced" and deactivate the "Hide utility window for active applications" option, which will fix this problem.  This option should be available in older KDE versions as well, possibly at a slightly different location within the system settings dialog.