3D volume rendering

hi everyone. im currently trying to model a set of data splices from a 3D ultrasound scan. these data sets are in dicom format and i was wondering if i could have some help on the following.

im using an octree data structure on a voxel structure. does anyone know the easiest way to draw a 256x256x256 cube because i cant manage to get one to draw. i think its too complicated at the moment due to the octree approach (which i am going to use regardless)

i want to use ray casting that sets the casting plane inside the structure, hard to explain so heres a diagram in this site ( see orientation of planes)
Hardware accelerated volume rendering

anyone have any ideas on how to do this? im aware that when the view is at 90 degrees anything drawn wont be seen so would i have to rotate the plane then draw again?

i know this is a bit vague but question away and ill try to clear anything up. thanks in advance

Start simple, without any space partitioning scheme. Can you draw one slice of the cube? If so, try two. When that works activate blending support. I would suggest starting with simple 2d textures. When you have a working 2d setup, try using 3d textures. The main advantage with 3d textures will be that you don’t have to rebind slices all the time.

The author in the link uses 3 sets of scanned data, one for every axis. He switches set whenever the camera becomes ‘more’ perpendicular to that set. I don’t know what you mean by “rotate the plane then draw again”.


Does your hardware support 3D textures? Even simpler than the link’s 2D example. When I did this (4 years ago?) I used 2D and 3D textures in two approaches. 3D was easier. Another idea is to keep the set of planes always facing the viewer (like billboarded quads) and manipulate the texture coordinates to e.g. rotate the image.