Tuesday, October 27, 2009

Update!! - RenderAnts - Interactive REYES Rendering on GPU

This has been floating around the net recently, something that is actually quite impressive for what it does as well as what it could be. Interactive REYES rendering on a GPU, which really in a sense has been something a lot of people and studios have been looking for.




CG Society Link

BlenderArtist Link

Authors page:
http://www.kunzhou.net/

Paper:
http://www.kunzhou.net/2009/renderants.pdf

Video:
http://www.kunzhou.net/2009/renderants.wmv

Updated News!

According to a source recently in the comments of this post the source code(?) for this is located here : http://research.microsoft.com/en-us/downloads/283bb827-8669-4a9f-9b8c-e5777f48f77b/default.aspx

There have been other similar types, such as Pixar's LPics which was featured after Cars was released, as well as Lightspeed which ILM had developed during the Transformer production. However the difference was these used GL shader equivalents of RSL shaders, so they both did not really use a Renderman based rendering. Both were very impressive though.

Gelato was also something that had been designed for such a purpose but was discontinued after a few years, certian tools did have the ability to convert basic RSL shaders into it's own shader language so in a sense it was sort of a start of what could be. Larry Gritz, the same person who had developed the first non Pixar REYES renderer, BMRT, had developed Gelato. So maybe that was another reason for Gelato being non REYES based considering the legal issues between Gritz and Pixar in previous years.

RenderAnts is a GPU based REYES rendering system, using RIB and RSL code to render the resulting image from the GPU, rather than the traditional CPU software we currently use. The ability to get fast rendering feedback is always a great thing, the only current way to do this is to render smaller sized images along with turning down the detail features of REYES, or do something like Crop rendering which will only render a certain region. This does in fact make an image render faster but if you are concerned about details, or lighting changes, having to render out a new image just to see if something works or not is quite a painfully slow task. This is why RenderAnts is a huge deal. It is not because of the fact that Elephants Dream was used to showcase the speed difference of normal CPU based rendering versus GPU, though it was pretty cool to see that. Elephants Dream was used mainly because it is Open Content, these were fully animated scenes that can be used for any reason within legal bounds.

What makes it so interesting for us, the Blender to Renderman users and developers, is that Mosaic was used to export these scenes out. This is why open source Blender to Renderman is important, it can be used for research, not only production. It is far easier and cheaper to use Blender, Mosaic and Aqsis or Pixie to showcase some new 3D research where you have access to the source code and can make your research possible, than it is with closed source commercial software. At best you can make a plugin for Maya if you were to make something like say a new form of fluid simulation that used a custom RSL volume shader. You would also only be able to do this on one system, while with open source you can have several copies spread out over a network, even at home.

This is the first time Mosaic has been officially used and cited in a published research paper.

If you watch the video make sure to notice that this NOT real time, it is fast but it does not have the ability to render at even 1 fps. At best it does take a few seconds, the few that do look fast are more like camera placement changes or lighting changes. Anything really drastic does seem to take a bit longer to render. However considering the same frame using the same data would take a considerable amount of time for PRMan to render does say quite a bit. What this also means is that this is not to replace current software for final frame rendering, at least not for a while. The best use for such a system is for previewing during production, the little changes that artists and TD's make for instance. Something so tedious like shader development would cut such time in half, making 30 renders of minute changes in the shader is a very time consuming task. It is not hard to imagine that this will be used by the big boys very soon, it is also only a matter of time before a commercial adaptation of this is released in the next few years.

We just have a nice warm feeling knowing that our work here has helped in this, we were used first. THAT is something.

8 comments:

  1. I didn't knew Mosaic was used in this research. Congratulations!

    About this paper, will Blender and Mosaic benefit from this one day?

    BTW, I'm really looking forward to use Blender 2.5 with Pixie and Mosaic. I hope you keep in touch with Blender developers when it comes to render API for it to have everything is needed to a perfect translation.

    Regards,
    Jr.

    ReplyDelete
  2. Wow this looks very promising. Where I can download the files? Also a small tutorial of how to install it will be awesome.

    ReplyDelete
  3. Unfortunately nobody has this software, except of course the person who developed it. Since it is a research project I am sure eventually somewhere down the line that someone will take the idea and make it open source, though I am also sure that before this happens that this technology will be used by animation and visual effects studios during future productions.

    The main reason for the post was simply because both Blender and Mosaic were used to export the data.

    ReplyDelete
  4. Anonymous9/12/09 05:40

    Congratulations!!
    Mosaic do a good job there, the renders looks realy fine! (models, textures, etc.. I mean)

    ReplyDelete
  5. Ted,

    I have heard and read that Weta has licensed the source of this project already.

    I dont think they will ever release it though...

    ReplyDelete
  6. Anonymous1/1/10 04:55

    The sourcecode for RenderAnts in included in the file bsgp.msi from Microsoft Research. http://research.microsoft.com/en-us/downloads/283bb827-8669-4a9f-9b8c-e5777f48f77b/default.aspx

    ReplyDelete
  7. Anonymous7/1/10 16:02

    The current version of BSGP from Microsoft Research is version 2.0.0.2. Microsoft dropped the source for RenderAnts in this version. That's the bad news. The good news is that the old version 2.0.0.1, with RenderAnts, is mirrored and archived here. http://www.filefactory.com/file/a1728d1/n/bsgp.msi
    According to Microsoft's own licencing agreement , "You may use, copy, reproduce, and distribute this Software for any non-commercial purpose ..." It is with that intent that the previous version is being provided.

    ReplyDelete
  8. Anonymous16/1/10 18:39

    A compiled version of RenderAnts is available at http://www.filefactory.com/file/a2a530a/n/RenderAnts.rar
    Expand it into the samples directory of BSGP. Add the RenderAnts/bin directory to the path.
    BSGP depends on the Nvidia Cuda driver and Toolkit. RenderAnts also needs a working C compiler to compile the shaders. It uses Mingw. The only test scene I have been successful in rendering from the author's website is the Ants scene which has been since removed. It is available here http://www.filefactory.com/file/a2c05g0/n/ants.zip
    The other scenes need more memory than I have with my Geforce 9800GT. The author used multiple graphic cards. When used with Mosaic and Blender, I get these error messages: Bad attribute "user" and "can't open archive ...". I'm sure this can be easily overcome with correctly setting the compile options with Mosaic, as I have sucessfully gotten RenderAnts to sucessfully render from the Liquid plugin in Maya using the renderants.lg preset in the misc folder.

    ReplyDelete