Slashdot Mirror


An Animation Language for Renderman?

cameloid asks: "I'm currently putting together a series of corporate movies, 6-12 minutes each, that each require quite a bit of computer generated animation. Like many others, I quickly found that 3D is the way to go and began using POV-Ray, mainly because it's free and uses a Scene Description Language (SDL) to describe scenes and animations. However, I also quickly found that raytracing can be a bit...slow for doing movie production. After a bit more research, I quickly discovered Renderman. At first glance Renderman can also be programmed from scratch, but doesn't have in-built support for animation. Each scene is complete description which cannot be parameterized using Renderman, alone. Does anyone know of a cross-platform, Renderman-compliant SDL implementation that can connect to any Renderman renderer and supply functionality similar to POV-Ray's SDL?"

"I've found that a couple of things are required: a rendering engine (I think that Aqsis covers everything I need in this regard); and a modeller (I'm currently evaluating K3D as a low cost option, although it has some important limitations at present). However, I've also been looking for something that does for Renderman what POV-Ray's SDL does for POV-Ray. I've found something called, surprisingly enough, 'Animation Language' which seems to do this, however it doesn't seem to be under continuing development. What's important is that the SDL supports general programming language features such as data structures, flow control, re-usable libraries (logos, 3D objects) etc, as well as something like POV-Ray's 'clock' variable for animation."

24 comments

  1. Why not renderman? by Naikrovek · · Score: 2, Insightful

    sure the functionality isn't there to have ONE scene file and create multiple frames (not that I know of anyway) but is having multiple scene files REALLY that bad?

    I've used renderman and I've used pov-ray and renderman is where i spend all of my time now. Its just so much better, unless you really need ray tracing, and prman 11 includes raytracing and global illumination, so even then the only reason to use pov-ray is a financial one.

    ask yourself if a single scene file is really more important than the speed an quality of your rendered images...

    1. Re:Why not renderman? by cybermace5 · · Score: 1

      Multiple scene files won't do much to speed up rendering. POV-Ray IS raytracing, the rendering of each scene is going to be very high quality but must take a while.

      A single scene file just means that a few things change position, shape, or angle depending on an external time variable. This does not affect the speed of rendering in the least. Maybe .01 seconds of processing time per frame. Every scene, regardless of whether it came from the same file or not, has to set up all the objects and initialize rendering. There is no reason to choose multiple scene files other than the fact that no other method exists. It's also pretty wasteful from a storage standpoint, and it's also not as easy to change something in all of the frames; you have to have all kinds of scripts to generate object paths and write out scene files, etc.

      --
      ...
    2. Re:Why not renderman? by Naikrovek · · Score: 1

      yes i know this.

      prman is faster because it is NOT a ray tracer, and that was my point, not that multiple scene files would speed things up. Ray tracing is very very slow in relation to scanline rendering, and scanline rendering is what prman does.

      [ i should note here for the record that RenderMan is a 3D language standard, and PRMan is Pixar's implementation of a renderer based on this standard. When I say RenderMan however, I'm speaking of the software, not the language standard. ]

    3. Re:Why not renderman? by bromba · · Score: 1

      Yes, when doing animation, having 1 scene file per each frame is exactly THAT BAD. Actually, it's disasterours if you think what happens if you have to make even a small alteration in one frame - then you have modify all scene files for the following frames. And if the guy is rendering 50 frames/sec then, well... The best way to use RenderMan seems to me what another poster did with PovRAY: perl scripts generating frame files from a single master scene file.

    4. Re:Why not renderman? by EnglishTim · · Score: 2, Insightful

      Actually, the capability *is* there. You can produce a Renderman file that will produce multiple frames quite easily:

      RiFrameBegin(0) ...
      RiFrameEnd()
      RiFrameBegin(1)
      RiFrameEnd()

      If the meshes you're using are not morphing at all, just moving you don't need to write out the new mesh data every frame, just use a RiFrameArchive to define the frame once and then reference it from then on.

      I'm not sure what kind of thing you're creating here, but the fact that you're not using something like Maya, MAX or XSI to do your animation suggests to me that you're doing flying logos and the like, in which case I can't help thinking that renderman might exceed your needs (Which Renderman renderer are you using? You could by a copy of pretty much any animation/modelling package for less than the cost of a single PRMan license..). Something you could do is use something like OpenSceneGraph and render all your frames in OpenGL. If you render them at the highest resolution you can and them scale them down, you should be able to get some pretty good antialiasing, and it should be very quick to render.

  2. One Solution... by phraktyl · · Score: 1, Interesting

    I've been using POV-Ray for longer than the animation capibilities have been included in the scene file, and I got around it by using a script (Perl, shell, etc.) to create and render each scene files, or to have a main scene file which includes a file with the changed values, and have the script create that file and render the scene each time.

    You are still working with a single scene file, but everything is changed and automated by way of the script.

    --
    Karma: Marginal (mostly due to the border around the website)
    1. Re:One Solution... by Neon+Spiral+Injector · · Score: 1

      That's exactly what I was thinking. I too have been using POV-Ray since version 0.5. I got a taste of animation from Polyray, but I still prefered the output of POV-Ray (actually at the time, I found Vivid to produce the best looking images, but I had too much time invested in learning POV to pick up another scene language, not to mention a right-handed coordinate system). Anyway, to make a long story short, I ended up writing QBasic programs that would write out .pov files, and a .bat file that would call povray on each file writing seperate .tga images for each. Then a few days and a little tga2fli later I'd have an animation.

      Another poster pointed out that multiple scene files would be bad, if you had to make a little change beause you'd have to edit each file. That isn't true, if all the files are generated from a single source. So, I'd recommend that the asker of the question, look for a language that can write out Renderman files.

  3. Renderman modelling by Thornae · · Score: 4, Informative

    Have you seen Ayam? It's a neat little Renderman modeller that ties into Aqsis or (the now defunct) BMRT.

    Actually, if you're really wanting a good fast 3d animation workflow, I'd recommend Blender. The learning curve is steep, but once you're into it, you can work fast and smooth. There's lot of support around, and the documentation can get you up and animating within half an hour.

    --
    |>
    Here be Dragons
    1. Re:Renderman modelling by cameloid · · Score: 1

      yep, I've had a look at Ayam, it looks fine for illustrations, but again doesn't support animation.

      --
      -- Cisk for the Cisk God
    2. Re:Renderman modelling by Thornae · · Score: 1

      ...but again doesn't support animation.
      Mm. As noted below, not a lot does wrt renderman, at least, not without paying lotsa dosh. I presume you've had a look thru' the RMR links page - there's a couple of possibilities there, but mostly alpha. The other thing to do would be to get in touch with the people who created this and this rather impressive animation and ask how they did it. You'll probably have to email the aqsis site maintainers to get their contact details.

      Also, I forgot to link the brand new Renderman Academy. It's an ambitious project, but there's already a lot of good info there. Nothing on animation yet, unfortunately.

      I mentioned Blender above - if you are willing to take on the task of learning to use it, you'll find a very powerful animation engine in there. There's a chap integrating renderman support directly into the main program, but that's apparently on hold until the middle of the year. In the meantime, there's a very adequate exporter called Blenderman (also see this). Of course, if what you're wanting is a directly programmable animation setup ala AL and SDL, this won't help.

      Good luck with it - if you have any success, see if you can get it into a Slashback.

      --
      |>
      Here be Dragons
  4. It's just that, a Renderer by Quarters · · Score: 1, Informative
    Renderman works on frames. It really doesn't, to the best of my knowledge, have any understanding of time or 3D space manipulations.

    You need a modeling/animation package. Something that will let you build and animate your models and then output data from which Renderman or some other renderer can generate visible images.

  5. If you have 2k by tolldog · · Score: 1

    If you have the money, I would look at getting Maya.

    There are plugins to output to renderman (mtor) and it also has its own renderer. If you want to do procedural animation, you can do it all in mel.

    -Tim

    --
    -I just work here... how am I supposed to know?
    1. Re:If you have 2k by Pseudonym · · Score: 2, Informative

      Don't waste money on MTOR. If you want Maya, get Liquid. Production-proven and open source. What more could you ask for?

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  6. *sigh* by Pseudonym · · Score: 4, Informative

    RenderMan is a language to get modellers talking to renderers, just like PostScript is a language to get typesetters talking to printers. You're not supposed to work in raw RenderMan any more than you're supposed to work in raw PostScript.

    Having said that, probably the closest system to what you're looking for is Steve May's AL. If you can get it to work, it will probably do exactly what you want.

    Remember, though, that RenderMan is primarily an API. The bytestream version came later. It was originally a C API, but there are now bindings for many languages including Java, Perl, Python and ML. Why don't you pick one and use that?

    None of this should dissuade you from using a real animation system, though. If you have some money to spend, it's well worth it, particularly if you're planning to do this a lot.

    Good luck.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    1. Re:*sigh* by cameloid · · Score: 1

      yep, I've already read up on the RenderMan spec etc, and quickly dropped any notions of writing RIB by hand...

      I did mention AL (Animation Language) in the original posting, but I'm not keen on using something that may quickly go out of date. At least with POV-Ray, it's being actively developed. However, something like AL is exactly what I'm after. Basically, a POV-like SDL that compiles down to a RIB file that can then be sent to a RenderMan compliant renderer. As you say, much like PostScript. I'll check out the Perl binding's as well.

      --
      -- Cisk for the Cisk God
  7. Hash animation master by f00zbll · · Score: 1

    if you haven't checked out hash animation master, you should take a look. It has all the equivalent features of Maya and SoftImage. The renderer is pretty good and the animation features are nice. http://www.hash.com/

  8. Why spend the money on Renderman ?? by aibrahim · · Score: 1

    You might be farf better off spending your money on a license for Lightwave or Maya.

    I use and prefer Lightwave, it also has a far better renderer than Maya included. In fact the renderer is the feature film league, and is routinely used on highly visible productions.

    Both of these products are available for Windows and OS X.

    Also, you can find a very large selcetion of models, textures tutorials and experienced help for these packages if you need them.

    If you are going to be doing this regularly then I have to say, using a professional toolset is the very best choice, in the end it will save both time and money.

    Lightwave info

    --

    Don't post innacurate information
    If you do, I swear by my pretty floral bonnet I will end you.
  9. forget renderman... by soren.harward · · Score: 0, Troll

    ... and use Blender. I've tried switching to 3DSMax, Lightwave, Maya, and I just keep coming back to Blender. I can do all you want and more. A lot of people whine about the learning curve, but there are many tutorials on the web to get you started.

    1. Re:forget renderman... by Anonymous Coward · · Score: 0

      Screw the learning curve... Blender sucks.

      Wings 3D is the only way as far as modeling is concerned. Animation is another matter though.

  10. RIB vs Language binding by PostPhil · · Score: 1

    Most people will use a separate 3D package to output RIB, and therefore never deal with Renderman directly. However, the Renderman specification allows for language bindings, such as the official bindings for C, that you would use to have greater control over the scene. I personally am a Python user, and prefer to use the CGKit language bindings.