(the BVH is already in Manta but not the interval
arithmetic culling aspect)
For my RT06 submission I worked out all
the details for building general bounding planes around packets (no
restriction to square packets and such) so doing that quickly in SSE and
such might be a good start.
t'd be nice to make sure that the intersection pipeline
in Manta is up to snuff (I believe Steve's optimizations only went as far
as ray generation and framebuffer writes).
Speaking for the BVH, I would like to claim that it is not only not
well-tested but known to work poorly in some cases (if Ingo is around ask
him about +- Z axis on Thai statue, I believe it's +- X for Buddha).
As far as Manta's SSE performance, Manta has (due to Steve) the same
performance as DynRT and DynBVH for generating rays and storing the
results of tracing for large 1 spp images. As far as stuff like
acceleration structures go though, this is where Steve got to before he
had to go back to other work (if I recall correctly).
So other than the need to port the DynRT grid and BVH code into the Manta
framework of Groups (the BVH is already in Manta but not the interval
arithmetic culling aspect) and subpackets there is basically not that much
work to do (it would be a good idea to extend the RayPacket to support the
functionality necessary to build bounding planes or intervals for the
necessary culling algorithms). For my RT06 submission I worked out all
the details for building general bounding planes around packets (no
restriction to square packets and such) so doing that quickly in SSE and
such might be a good start.
Like I said though, even before using bounding planes for the Grid and for
triangle culling, it'd be nice to make sure that the intersection pipeline
in Manta is up to snuff (I believe Steve's optimizations only went as far
as ray generation and framebuffer writes). This shouldn't be difficult
and a basic implementation of Ingo's triangle test already exists in
Models/Primitives/WaldTriangle which should hopefully perform at roughly
the same level as similar code in DynRT (I also created a simple perftest
scene or something like that that just has a couple triangles in it to
test exactly this case).
On Mon, 17 Jul 2006, Aaron Knoll wrote:
Hi everyone (especially James and Steve) -
Thiago and I were talking a bit about Manta. Ideally, we'd like to port the
DynRT grid code to Manta and use that as a permanent framework for our
research.
Unfortunately, Manta has a ways to go before that works. Back in June I was
experimenting with the SSE frustum/octree code in Manta, and it generally
performed about 1/5th the speed it did under icc and linux. I spent a good
week trying to get the SSE code performing before I gave up.
I'm not sure where the problem is; I suspect alignment in RayPacket could be
the culprit but I'm not positive. There are other issues; for example we
really need a way of generating packets of square tiles, and quickly
determining corner rays for frusta traversal.
Could someone (maybe James?) devote some time to fully porting the DynRT
RayPacket and renderer code into Manta? At this point, the DynRT grid and BVH
are well-tested and known to work fast. Once that is in there, and performing
on par with DynRT, then we'd have no problem abandoning DynRT and merging into
Manta.
Hope this request isn't too forward; really I want to work on Manta as much as
possible but I'd prefer not to spend a lot of time troubleshooting SSE
architectural issues as long as DynRT is working and Chuck's trying to squeeze
research out of me :)
-Aaron
Archive powered by MHonArc 2.6.16.