1 year ago

#76180

test-img

codeine_cola

Direct Volume Rendering in Java - how does an RGB transfer function work?

I am creating a direct volume rendering application with the goal of writing at least 2 2d transfer functions and a 3d transfer function for determining colour and opacity values for voxels.

I have a CT dataset - cthead[k][j][i] that will give me a voxel intensity at a specific x, y , z position in the dataset.

The opacity transfer function I have now is:

double dfxi = gradientMagnitude(k, j, i);
                    if (dfxi == 0 && intensity == threshold) {
                        opacity = 1.0;
                    } else if (dfxi > 0 &&
                            intensity <= (threshold + width * dfxi) &&
                            intensity >= (threshold - width * dfxi)) {
                        opacity = 1 - (1 / width) * Math.abs((threshold - intensity) / dfxi);
                    } else {
                        opacity = 0.0;
                    }

Now my question is - How do you compute an RGB color through a transfer function? How does that work?

java-8

java-3d

medical-imaging

volume-rendering

0 Answers

Your Answer

Accepted video resources