Regarding scale space extrema

Hi all,
I am trying to detect scale space extrema in my 3D volume. I am generating mipmaps for the Gaussian pyramid. Then I use FBO and a fragment shader to calculate the DoG (Difference of Gaussian). This works ok but I use keyboard to move through slices and across mip levels. I am currently displaying the result on the screen and its fine. Now the thing I want to do is to store the DoG for all the slices and the different mipmaps (scales) into another 3d volume. My questions are

  1. How do I readback this data?
  2. Is it possible to read back data from a bound FBO?
  3. Is it possible to directly dump the data into a 3D texture in the fragment shader?
  4. Can u think of any way whereby I can detect the extrema points directly without storing the DoG images?


AFAIK, it is possible to attach 3D textures to a fbo as long as it is possible for 2D textures and friends. So you can read back computed data from a 3D texture written by your fragment shader.

If necessary you can also draw to multiple color attachments if your hardware supports the draw_buffers extension. This way you can fastly write various types of data from your fragment shader.

Can u tell me how to do it? I am having difficulty reading the data back from an attached FBO. Also I don;t know how to attach a 3d texture to my FBO.

Any good tutorial /reference on this might be helpful.

Hi thanks for the link. I have one problem. I have a GeForce 7 series card. The demo runs I see nothing and its running painfully slow. Does it mean that render to 3d texture is only for the GeForce 8 series cards?

Afaik yes.