Jump to content

Studying Renderman


Recommended Posts

I'm (re)starting to study Renderman in spare time, so I found some useful resources online (fundza and RManNotes).

I'm curious to know what you think about this:

1 - Can I use Mantra to render scenes along/instead of Aqsis or Pixie? If yes, how?

2 - Is vex/shop enough to recreate Renderman shaders/textures/procedural geometry/whatever or is it better to write them with a text editor ala old school?

3 - Do you consider knowing Renderman to be a must for an Houdini artist?

Thanks in advance for every tip you'll share about Houdini, Mantra, Renderman in ordinary usage.

Link to comment
Share on other sites

here's my two cents:

renderman is equivalent to houdini in a lot of ways. learning renderman will make you more skilled at houdini and vise versa. both promote a very low level understanding of computer graphics and stuff...

rsl vops are pretty much the same as writing rsl by hand. i would recommend using rsl vops and inlining things you want to write by hand, if only for the convenience of having houdini manage all of your 'shader' calls and your code organization (via otls and stuff...)

if your goal is to learn renderman, houdini is the best place to do it (rather than using rfm or trying to do everything by hand) because houdini's renderman setup is very low-level and extensible. i can say with almost complete certainty that you will never be limited in your use of renderman because of houdini (i can't say the same for rfm/slim/etc).

that being said:

renderman is a very good renderer, but so is mantra. if you can do all the things you are trying to do in renderman in mantra instead, i'd recommend using mantra (because its "free", more tightly integrated with houdini than renderman, and its easier to use). 90% of the stuff on 'fundza' can be done in mantra.

good luck and have fun. renderman is pretty awesome.

Link to comment
Share on other sites

Brianburke, from monkey to monkey, thanks for your answer. :D

My main goal is not just to know renderman/mantra, but, as you said, to know enough about the fundamentals of CG, because, I'm sure, one day will save me from troubles or it will give me more chances to get inspired.

Just this morning I found this: H8 Shader Tutorial

From a rapid look, it seems he used just VOP, so I'll start from there, just to break ice, then I'll go on with fudza and everything else both with renderman and mantra (as if I didn't have enough night headaches! :P).

Let's make some magic!

Link to comment
Share on other sites

1 - Can I use Mantra to render scenes along/instead of Aqsis or Pixie? If yes, how?

Yes, though Manta is similar to RenderMan it is not a RenderMan compliant renderer. So you'll have to use IFD archives instead of RIB archives and only Houdini (as far as I know) can make IFD archives for Mantra rendering.

http://www.sidefx.com/index.php?option=com_content&task=view&id=992&Itemid=259

http://www.sidefx.com/docs/houdini11.0/rendering/render

2 - Is vex/shop enough to recreate Renderman shaders/textures/procedural geometry/whatever or is it better to write them with a text editor ala old school?

It depends on what you want to do. For most users VOP nodes are sufficient to create most shaders. The VOP nodes you create actually get converted into VEX code that you can look at (VEX is similar to RSL). Some complex shaders can be easier to manage in code form rather than node form.

http://www.sidefx.com/docs/houdini11.0/shade/vops

http://www.sidefx.com/docs/houdini11.0/nodes/vop/

3 - Do you consider knowing Renderman to be a must for an Houdini artist?

Generally speaking, no. Knowing computer graphics concepts is a must but you can learn those with any renderer or software. Some studios might require or favor RenderMan experience though (whether they use Houdini or not).

Link to comment
Share on other sites

Indeed, concerning archives and ifd files, mantra is very different from renderman. The archives you create are geometry only, where in renderman you can export complete scene descriptions.

If you really want to use a renderman compliant renderer, try 3delight. Its a great tool and offers most of the prman features. But if you want to learn coding for shaders, I'd recommend houdini because you have a fast feedback if you develop shaders with nodes or in code.

Link to comment
Share on other sites

I didn't know about IFD archives, so, thanks for the tip, guys.

And yes, VEX is very powerful.

Reading here and there and using more Houdini, I think Renderman (or any render engine able to be programmed) is an answer to solve particular tasks that a classic 3D program (maya, xsi, blender or what you like) cannot do.

I'm not speaking only about creating new shaders and intriguing textures, of course they are very important, but I think also about procedural geometries that cover a big part inside an image.

Naturally, thanks for its parametric/procedural nature, Houdini just stands between the classic 3D application and a programmable render engine, taking the best from both worlds.

So, my aim is not just to know Renderman, I have Houdini and I'm happy with that, but if I read some job advertisement or if I scroll this VEX list, I feel like I lack something.

ADDED: And just to stick the point, let's hear one of our "father": Kevin Perlin on FXGuide

Edited by thinkinmonkey
Link to comment
Share on other sites

You want to be able to understand and craft shaders on the Happy Rendering with VEX site? That means writing shader code. Cool.

If you were my kid I'd have you writing shaders with vim. No wonder my kids think I am not very nice...

So if you want hard core old school, here's one way to get going.

If it is shader writing you seek, you need to get these books first off:

Advanced Renderman: Creating CGI for Motion Pictures

Essential RenderMan by Ian Stephenson

Texturing And Modeling: A Procedural Approach, Second or Third Edition will do

Both Advanced RenderMan and Texturing And Modeling books have each two chapters on the math required to write shaders. You need these math tools to write meaningful shaders either with code or with VOPs. Just a lot of clever algebra and folding of positions, floats, ints, vectors and matrices are explained and used in shaders. No calculus required other than understanding concepts of a derivative and an integral, all nicely explained with examples. Highly recommended.

Essential RenderMan is a fantastic book and was (is?) used by Ian to teach first year students the concepts and application of RenderMan. Also highly recommended.

All three of these books in the versions that I have do not include the concept of co-shaders in RenderMan which is a good thing imho when you are learning to programme shaders. Mantra currently does not have a concept of co-shaders at this time but this shouldn't stop you nor confuse you.

I would focus on the chapters that deal with writing shaders and not so much on the rib side at first. Most facilities already have pipelines in place that author rib files in their own way, of which Houdini is one. The skill of rib scene assembly can wait until after you master shader writing. With Houdini, you don't have to go there that often or at all. Depends on the facility.

As for writing shaders, you can go half way or full on. Half way involves creating shaders directly in Houdini by creating a new operator type from the main menu File > New Operator Type..., placing your shader down then RMB editing it and writing your shader in the code block. Full on means writing shaders with a proper text editor and using the vcc compiler to author shader Houdini Digital Assets which are loaded in to Houdini. I believe vim rules and there is a real nice user-friendly version of vim called Cream and you can get it here: cream.sourceforge.net

Search these forums for a vim editing template for writing vex shaders and install it. Consider this part of your path to shader writing.

Yes there is emacs...

All the books cover examples for writing shaders: surface, displacement, light, fog, all of them. The Mantra REYES Microplygon render engine can be considered to be the same as RenderMan's. Same goes for 3Delight. The Advanced RenderMan book gives a good outline of the render pipeline. Master this. As far as RenderMan vs Mantra goes wrt shader writing, you can dive in to $HFS/houdini/vex/include/prman.h and read that file. Including this header file in many simple RenderMan shaders will allow you to compile it with vcc, the vex compiler and use this with Mantra. It also forms a dictionary that you can use to substitute the various variable declarations from sl to vex.

The real issue with writing shaders for PRMan and Mantra is anti-aliasing patterns so that they don't flicker. This is where using VOPs relieves you from much of this as all the patterns in VOPs are suitably anti-aliased. You can query the various pattern generator VOPs and reference those functions in your written shaders to great effect.

I second the motion for using 3Delight as a good render engine to write RenderMan sl code for. If it were me, once you learn to cobble a shader together, you can write a shader for Mantra, RenderMan or 3Delight. The similarities far outweigh the differences. Pick one and go. You can't loose either way.

Once you know how to craft shaders from code, even if they are just simplistic shaders, you will have a considerably more profound understanding of the rendering and lighting pipeline. This can only but help you using VOPs to craft shaders with a good understanding of the math and the shader code.

As for archives, sure this is required for large geometry scene assembly but has little to do with shader writing imho. something you tackle later on.

Good luck!

  • Like 2
Link to comment
Share on other sites

Hi OldSchool,

yeap, writing shaders is part of the game, because, as you suggest later, it means knowing how CG works.

Ok, I've installed Vim/Cream, but goosh, what's that?!?! :D

I'll give it a try, anyway, there are infos on fudza about vim, I was thinking to skip that, but now that you tell me, you win and I'll give it a try.

And about your kids... AHAHAH!

The trick is to teach them a bit of Vim, then garden playing, then reading a book together, then playing wii, then doing something alone, then... never getting them bored with the same task for a lot of time, but I'm sure you knew it.

About those books, you're right: they are true bibles. Especially the third one, I'm still impressed by the incredible work of mr. Perlin and his parametric texture (for who doesn't know, the perlin noise means the noise of Perlin, it's a man, you can read here interesting things)

I'll follow your suggestion about skipping all the RIB parts, because I don't need at the moment, and having deep understanding of how shaders and math work.

Especially math!!!

I didn't know about the anti-aliasing issue, I'll keep an eye on it, but I'm more oriented to do all the things in Houdini as soon as possible, like everyone here is suggesting me: writing codes for renderman, rendering some tests, then recreating the same thing in VOP or just doing everything directly with VEX/VOP and that's all.

Thanks a lot!

Link to comment
Share on other sites

  • 2 weeks later...

In reply to your first question (how to use Mantra and RenderMan alongside one another), when writing different shaders for Mantra and RenderMan you can use the Select SHOP node to switch shaders auto-magically at rendertime based on which renderer you are using. So you could pipe in a RenderMan shader (either hand written or using VOPS) into one input and a Mantra shader into another and depending on which renderer you use, Houdini will assign the correct one to the geometry without you having to do anything other than hit "Render." This is useful for making ROP node networks with Mantra, RenderMan and other ROP types mixed together and having Houdini automatically take care of the shader assignments at render time. It is also nice for easily comparing shaders between different renderers. I wish I had known of this node when I was trying to recreate the Mantra glow shader using RSL; it would have made my life much easier.

I haven't had a reason to use the node since discovering it, so if you end up using it let me know how it goes.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...