Which rendering engine should I get myself familiar with in terms of shader programming? Renderman or mental ray? Which one does jobs that hire new programmers use?
jan walter
Both ... and probably some more: MetaSL, VEX (Houdini), some hardware shading languages, etc.
For RenderMan there are obviously free alternatives to learn the basics and get started. And the start will be easier than with a C/C++ based shading language(s).
An outdated introduction can be found here:
http://www.janwalter.com/ShaderWriting/Filmakademie/index.html
or
http://www.janwalter.com/ShaderWriting/filmakademie.pdf
For RenderMan I would suggest reading:
Anthony A. Apodaca; Larry Gritz. Advanced RenderMan: Creating CGI for Motion Pictures. Morgan Kaufmann, 1999.
and (also outdated):
Steve Upstill. The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics. Addison Wesley, 1990.
For mental ray I would suggest Andy Kopra's excellent book:
Andy Kopra. Writing mental ray shaders: A perceptual introduction. Springer-Verlag (first edition), 2007. http://www.writingshaders.com/
He will publish another book an MetaSL (I can't really say how long it will take to be published but I trust him to write another great book, which talks not just about mental ray, but about rendering and shader languages in general) ...
The other HW related languages I suggest to get familiar with just to get a feeling for the need to have ONE shading language which serves several purposes. I'm not saying that MetaSL will be the answer, but I'm saying that there is a need for such a thing and that me (and others in this industry) are open to discuss what would be needed.
I have experience with a LOT of renderers, but I would suggest to look at least at RenderMan, mental ray, and Mantra's shading language(s) to get started. GI and other algorithms will change what can be done in HW today (and tomorrow) and a future shading language which can solve all remaining problems is not in sight (yet).
The RenderMan world is very established in film production but as a newbie it's very unlikely that you will be hired for something else than maintaining code (shaders) somebody else wrote and probably nobody understands anymore ;)
But it's worth to learn it anyway and if you are lucky you will be hired for some more rewarding tasks. Experiment with as many renderers you can get you hand on. You can also learn a lot from OpenSource renderers which do not really provide a shading language ...
C/C++ is very powerful if you think about shader writing more in terms of writing "plug-ins" for a renderer, instead of a very specific domain language, and will help you to get into the industry because you can use it for other "plug-ins" (Maya, XSI, Houdini, 3DS Max, etc.) as well.
I would also suggest to look at something like Houdini's VEX Builder or mental mill (or Vshade for AIR) or similar approaches to get a feeling for programming vs. GUI based shader networks ...
My 2 cents ...
Cheers,
Jan
you said I’d be lucky to be hired. Is there any other graphics programming categories you recommend for a newbie?
