Raptor uses object space bounding boxes, NOT eye-space. However, you
need call glChromiumParametervCR every frame to force it to get the
current model view and projection matrices. The bounding box needs to
define the lower and upper edge of the bounding cube, i.e. the first
three values should be xmin, ymin, zmin of the box, and the last three
should be xmax, ymax, zmax. Each subvolume should have it's own bounds.
Once again, Raptor is a good model for how to do all of this, although
Brian Paul has seen some compositing problems on Nvidia hardware that I
have not been able to reproduce on ATI hardware...
We probably should be a little smarter in the binaryswap spu about
redoing the bounding box calculations each frame, but I remember trying
to do it on every application frame swap and it not working correctly
for all apps....
-Mike
Joong-Youn Lee wrote:
> Hi,
> I'm writing sort-last parallel volume rendering code using Chromium.
> I use the binaryswap SPU for compositing but have a trouble to set a
> bouding box.
> I thought the only thing needed is to set a object space bounding box
> and register it with glChromiumParametervCR function.
> My volume renderer is based on 3D texture method so I just set the box
> for all proxy planes.
> It works for initial condition - no modelview transformation - but it
> behaves strangely when I start to rotate the volume data (of course
> bounding box, too).
> Only partial images are displayed, I guess it's because the clip
> window function cut my rendering image.
> I've searched whole Chromium documents and mailing lists, but I didn't
> find any details how to set the use-defined bounding box.
> So I set the box with my own way - {{-1. -1. -1}. {1, 1, 1}}. and the
> geometry of proxy cube (set of proxy plane) is same.
> I also referenced the raptor and it seems to use eye space bounding
> box not object space bounding box. Is it right? Am I correctly understand?
> What should be a problem? Please advise me if you have any idea.
> Thank you in advance.
> Joong from Korea.
|