Not logged in, Join Here! or Log In Below:  
 
News Articles Search    
 


Submitted by Ben Spencer, posted on March 09, 2005




Image Description, by Ben Spencer



It's a been a while since a good 'ol fashioned ray tracer has featured as an IOTD, so I thought I'd add my contribution!

Igneus is a global illumination renderer which I am currently developing for my final-year BSc computer science project at Swansea university in the UK. The project is a follow-up to a real-time engine I built during my first year, and which I submitted as an IOTD a couple of years ago. I was inspired to write Igneus after seeing the efforts of the many talented programmers developing their own open-source renderers (notably Sunflow, RISE and PANE). I've been working on the project for about 6 months now and it's finally starting to produce satisfactory renders (although there's still a lot of room from improvement!). The features Igneus currently supports are:
  • Full global illumination using Jensen's photon mapping techniques
  • Full global illumination using path tracing
  • Sub-surface scattering and translucency
  • Texture mapping
  • Depth-of-field blur with customisable "circles-of-confusion"
  • Soft shadows
  • High dynamic range radiance maps
  • Transmission with refraction
  • Procedural texture shaders (Perlin noise, etc)
  • Octree-accelerated polygon mesh objects
  • Metaballs and other implicit surfaces
  • High quality adaptive anti-aliasing
  • The main image is a test render demonstrating caustic photon mapping. The scene is composed of three Utah teapots and one PQ torus knot. A slight depth of field blur is also applied to add a little more realism. The lower-left render is of Jensen's cardioid caustic cylinder. The crisp edges on the focused caustic highlight the Gaussian filter used in the photon density estimation. Finally, the lower-right image demonstrates the sub-surface scattering algorithm applied to an alien figure I modeled in MAX. (Apologies for the otherwise simplistic scenes; I'm not a 3D modeler so I'm quite restricted as to what I can come up with. If anybody has a model they'd like to see rendered by Igneus, drop me an e-mail! :-)

    Many more renders together with a full feature list, dev diary, reading list and links to other renderers can be found at my site: www.igneus.co.uk.

    Any comments, critiques or suggestions would be very welcome (and would help with my project dissertation!).

    Thanks,
    Ben Spencer


    [prev]
    Image of the Day Gallery
    www.flipcode.com

    [next]

     
    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
     
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
     
    Vast

    March 09, 2005, 09:46 AM

    That loooks just amazing (the bracelet shot)! I have NEVER seen anything like that!

    Good job!
    Tim

     
    Axel

    March 09, 2005, 10:15 AM

    That's a pretty basic refraction effect. Every modern off-line renderer can do that. (e.g. Brazil, FinalRender, Mentalray)

     
    Corre

    March 09, 2005, 10:23 AM

    yeah, it's nice and all, but amazing? I wouldn't say so... Tim, are you very new to 3D graphics?

    Good job, nice to see another raytracer again, it was about time! :-) BTW, I like the subsurface scattering/translucency effect!

     
    Roel

    March 09, 2005, 12:45 PM

    Nice, the alien looks really cute, and sub-surface scattering is a neat thing :) Well done, and nice pictures on your site, not the usual cornel boxes but cute colourful aliens instead :)

     
    tokjunior

    March 09, 2005, 12:58 PM

    It's just caustics.
    When someone shows off their photonmapper, that scene is ALWAYS there ;)

     
    Aravind Krishnaswamy

    March 09, 2005, 01:05 PM

    Very impressive work Ben. I also really like the images you have chosen to render to highlight the features of your renderer.

     
    tetsifly

    March 09, 2005, 01:13 PM

    Tokjunior is right, Vast. The cardioid catacaustic image can be found pretty much everywhere. I'm glad you like my images though!

     
    tetsifly

    March 09, 2005, 01:20 PM

    Aravind Krishnaswamy wrote: Very impressive work Ben. I also really like the images you have chosen to render to highlight the features of your renderer.


    Thank you! It's great to hear positive feedback from someone who's already produced a professional renderer. (I look forward to the alpha release of RISE, btw!)

     
    Jacco Bikker

    March 09, 2005, 01:59 PM

    Very nice stuff indeed. You could post some more shots on your page though. One can't have enough cool rendering shots online. :)

     
    Vast

    March 09, 2005, 02:06 PM

    I didnt know it was a standard, but i REALLY like that effect! I hope it is going to get real-time some day!

     
    El Pinto Grande

    March 09, 2005, 03:47 PM

    Nice renders.
    It seems that anyone implementing a raytracer is bound to hunt the mythical 3d modeler at one point or another...

     
    Scali

    March 09, 2005, 04:23 PM

    The common name for this is the "coffeecup caustic".
    This effect can be seen in a cup of coffee when the sun (or other light) hits it at the right angle. That's what inspired the name.

     
    balaam

    March 09, 2005, 07:46 PM

    It's nice to see another person from Swansea!
    I graduated last year. Your project looks very impressive. Good luck with expanding it.
    Tuckers lectures where always the best :D

     
    tokjunior

    March 10, 2005, 12:50 AM

    Oh yeah, i like the images aswell :)
    The refraction in the water looks a bit odd though? It's too clear, it's like crystal.

     
    sarwazo

    March 10, 2005, 02:00 AM

    Hi,

    looks very nice. I also think that the webpage has a very nice and professional look and feel.

    I was wondering, is this engine going to be released to the public? (I guess so, but when?!! :) ), and will it be open source? I think that a lot of people will be interested in to dig the hands in it and help with new features.

    regards,

    Sarwaz.

     
    tetsifly

    March 10, 2005, 05:06 AM

    I've had several requests to release the code and once I've finished implementing all the new features ironed out most of the bugs, I will.

     
    Aravind Krishnaswamy

    March 10, 2005, 09:06 AM

    May I suggest releasing it under a BSD style licence rather than the GPL...

     
    Paulus

    March 10, 2005, 09:13 AM

    may i ask why? :)

     
    tetsifly

    March 10, 2005, 12:21 PM

    tokjunior wrote: Oh yeah, i like the images aswell :) The refraction in the water looks a bit odd though? It's too clear, it's like crystal.


    The space under the "water" is technically just empty. The transparent rippled surface was just to refract the light and produce the shimmery effect of the caustics. I plan to implement participating media soon, so you'll be able to see the rays of light passing cloudy water.

     
    Aravind Krishnaswamy

    March 10, 2005, 01:05 PM

    I like BSD style licenses because they are much simpler and are more 'open' than the GPL. But more selfishly, my open source rendering engine is released under a BSD style license, and if he were to do the same, then I would be able to incorporate nifty ideas of Igneus.

     
    Roel

    March 10, 2005, 03:56 PM

    participating media wouldn't be very hard to do, if you already have sub-surface scattering, would it? (just some curiousity)

     
    tetsifly

    March 10, 2005, 05:39 PM

    At the moment, all sub-surface techniques are rendered using the path tracer (the orange alien for example) which is very expensive. The fastest way of rendering participaing media (that I'm aware of) is to use a photon map (http://graphics.ucsd.edu/~henrik/papers/sig98.html) so I'm going to have a go at implementing Jensen's paper rather than trying a brute-force approach.

     
    Aravind Krishnaswamy

    March 10, 2005, 07:08 PM

    Actually, the fastest way of doing SSS I've found is to use the hierarchical approach described by Jensen & Buhler in "A Rapid Hierarchical Rendering Technique for Translucent Materials". I have found their scheme to also converge faster than using a photon map. You can start off small though, instead of using Turk's point repulsion algorithm as they suggest, just select your points at random. The octree is essential for speed though, but easy to implement. I also experimented with BSP trees and KD-trees, but the octree was always faster. If the diffusion approximation equations makes no sense to you, you can use a much simpler (but not physically based approach) by computing the extinction using just the exp function, the distance and an extinction factor. You should find you can generate some pretty images with that. Good luck!

     
    Paulus

    March 10, 2005, 09:26 PM

    explains a lot :P

     
    tetsifly

    March 11, 2005, 04:25 AM

    Aravind Krishnaswamy wrote: Actually, the fastest way of doing SSS I've found is to use the hierarchical approach described by Jensen & Buhler in "A Rapid Hierarchical Rendering Technique for Translucent Materials".


    That looks like a cool thing to try. At the moment Igneus computes translucency using quite a crude technique which looks okay under certain circumstances (the alien for example) but which doesn't work for things like skin. Proper SSS is definitely a goal for the future though!
    I've been considering implementing the Jensen/Buhler paper you mentioned but I'm not clear on some of the mathematical techniques. Plus, I'm running out of time before my dissertation has to be in next month!

     
    tetsifly

    March 11, 2005, 04:27 AM



    Aravind Krishnaswamy wrote: ...and if he were to do the same, then I would be able to incorporate nifty ideas of Igneus.

    Ha! I don't think you'll find many of those!

     
    Aravind Krishnaswamy

    March 11, 2005, 01:37 PM

    The mathematics in the Jensen/Buhler paper is quite complex, and I'm not entirely convinced its justified (but thats a different discussion for a different time). However, you can use their hierarchical trick without any of the math, just use a much simpler expression for the subsurface extinction (like Beer's law) and you should be able to get something going. You can then add the diffusion approximation. A quick note there are some errors in their equations for the diffusion approximation. If you are going to attempt this, take a look at Andy Scukanec's notes on BSSRDF implementation, he has the corrected equations.

    http://www.cs.cornell.edu/~ags/documents/BSSRDF_Notes.pdf

     
    This thread contains 27 messages.
     
     
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.