Hardware-Accelerated Global Illumination by Image Space Photon Mapping

37 views
Skip to first unread message

mikews99

unread,
Jun 17, 2009, 10:23:48 AM6/17/09
to G3D Users
Morgan, will your latest paper be making it's way into G3D, possibly
as part of the super shader? The GI looks fantastic and I was
especially impressed with the caustics.

Morgan McGuire

unread,
Jun 17, 2009, 10:30:32 AM6/17/09
to g3d-...@googlegroups.com
(http://graphics.cs.williams.edu/papers/PhotonHPG09/)

Thanks.  Almost all of the ISPM support code is in G3D.  Our experimental implementation uses Surface, ArticulatedModel, TriTree, GBuffer, UberBSDF, Shader, and Texture from G3D 8.0 (now in CVS, beta coming soon).  There's also a new ray tracing demo in G3D 8.0.  The ISPM code is about 600 lines of C++ added to a G3D starter project, plus a lot of GUI code for the test harness. 

We're cleaning up the 600 lines that *aren't* in the public release and will put those on the ISPM project page at some point, but they are exactly what is described in the paper.

-m

mikews99

unread,
Jun 17, 2009, 12:02:08 PM6/17/09
to G3D Users
That's awesome! I've been reluctant to fully commit to using G3D,
mainly because of ATI's sucky OpenGL drivers. But since they now seem
to be serious about OpenGL driver development and the latest drivers
are almost 3.1 compliant (only missing GLSL 1.4 support), having ISPM
in G3D encourages me to take the plunge.

What's your next step for performance improvements? The paper mentions
moving the photon tracing code to the GPU. Since my current hardware
(ATI 3870, single AMD Phenom quad core) is a couple of steps below
what you used, I don't think I would get high enough frame rates --
maybe 1/4 of what the paper claims. What are your "I pulled these
figures out of my a**" guesses for speed increases for your envisioned
improvements?

Morgan McGuire

unread,
Jun 17, 2009, 2:10:29 PM6/17/09
to g3d-...@googlegroups.com
The version of TriTree checked into G3D is actually about 2x-3x faster than what we used for the paper, so the CPU steps should improve a lot.  If you used an even better ray tracer (e.g., Intel's IPP), you should see another 4x on top of that, which makes the CPU cost minimal.  The problem then is the CPU<->GPU data transfers.  They are much more expensive than they should be from reading the OpenGL specification.  ATI and NVIDIA engineers have been very helpful with optimizing these routines in G3D and I hope to improve the data transfer performance in later releases.

OpenGL is in an awkward state right now.  Khronos has done a very good job of taking over the APIs but has not yet jettisoned the legacy code paths.  We expect that they will do that soon, merging GL and GL/ES.  G3D 9.0 is currently being designed by Corey and myself to match the GL/ES specification very closely, with all fixed-function rendering removed.  This will look a lot like DirectX 10 as well.  If you want to be cross-platform (which increasingly means iPhone and console, not just PC/Mac/Linux), OpenGL is the only game in town.  If you're writing windows/xbox-only code, there's a lot to be said for DirectX.  We can't effectively support both, so we've stuck with OpenGL.

There's also been substantial work on OpenCL lately and that will greatly imact the design of G3D 9.0.

-m
Reply all
Reply to author
Forward
0 new messages