It might be love…
August 14th, 2009
As cool as mental ray is, when interacting with it through Maya one often feels like they’re on the wrong end of an abusive relationship.
To speak plainly, integration and workflow sucks, and once the honeymoon wears off with the bells and whistles (”Car paint! Cool! SSS! Cool! Arch Materials! Cool!”) you come to realize that the foundations of the Maya integration are buggy as hell, and quite likely never to be polished or fixed. Sometimes you just want to slap shaders on a model and hit render — particularly when you’re the entire pipeline.
MR is certainly useable in production when you’ve got dedicated lighting and render wrangling TDs… but when I’m trying to knock something out quickly at home, I find myself spending entirely too much time tuning out the grain and getting render times under control.
Again, fine if it’s my job to be the guy who gets to bake FG, and tweak sample rates to get average render times manageable, wire up rayswitches and the production shaders (poster child for sharp edges here) to get accurate shadow extraction etc… but if I’m working on a project 100% myself — man it’s a time sink that should be mostly unnecessary these days (particularly after working with PRMan, 3DLight and VRay in production environments).
Case in point… render passes? Still a completely ridiculous workflow that doesn’t work as advertised and barely works at all…. now three yearly upgrades down the road. I’ve written MEL scripts that brute force render layers and shaders to get useable passes, or I end up circumventing Maya’s pass system entirely with a 3rd party framebuffer like MegaTK or Ctrl.buffers. I can’t believe anyone has been able to use the stock render pass system in production without major modifications.
Use background? Still not working with final gather / occlusion (since the beginning of time), so awesome… I get to do channel math to extract my shadows from multiple passes, or wire up the production shaders with rayswitches and the like — which aren’t supported in Maya, and calling the setup unintuitive would be generous.
Subsurface scattering is getting slower with every update. With progress messages set to “fatal only” I routinely get 50+ gig log entries complaining about hidden lights.
And linear workflow / gamma. Dear. God. VRay lets me check a single box to gamma correct everything. PRMan just does the right thing. Max got a box like that for Mental in 2010, but no such love for Maya users.
At any rate, this isn’t a Dear John letter to nVidia/mental just yet, but I have been seeing Renderman for Maya behind its back for a while. The polish, speed, documentation and openness of the whole thing make me want to:
1. Cry
2. Spring for Renderman Studio
Consider the following test image:
Using Maya’s default fur workflow, this rendered in a fraction of Mental Ray’s time (jaw-dropping would describe it), it looked better, the fur doesn’t flicker when using FG/GI and the render passes just worked. Out of the box. No weirdness other than having to specify a deep shadow map and learn how to tune sampling rates and recursion. It’s not a final model, but I got the thing modeled, scultped, lit, furry and groomed in a day. It’s not hero model detailed, but it’s passable for a mid to long shot already.
This is the first real playing with the “lite” version of Renderman for Maya I’ve done, and I’m simply delighted to say the least. I’d always assumed it was just a pared-down version of RAT… which it is to a degree, but the simplicity is actually a strength when you’re trying to get stuff looking good with nice render times fast… generally the point when you’re trying to get a project out before it gets shelved at home.
I only really get the chance to work with PRMan within established pipelines on gigs. But with these kind of results this easily, I’m sorely tempted to make the plunge for my home office.
Time is money, yes. But time is also crucial for an artist. When you’re working on your own stuff without a deadline or paycheck, it’s entirely too easy to lose interest and shelve a project if you get mired in the tech details. And that’s something I’d love to avoid at home as much as I can.
23 Comments Add your own
1. Dave Girard | August 15th, 2009 at 4:16 pm
haha - a minute and twenty seven seconds for deep shadows and SSS. I’m so giving up on MR.
2. Trey | August 15th, 2009 at 4:43 pm
Just for shits & giggles, I just rendered that as close to apples-to-apples with MR — both with hair primitives and volume fur.
I’m looking at about 5 minutes a frame on the same machine with MR, but even after tweaking the hell out of the fur I can’t get anything that looks very good in comparison… it’s just really incredibly ugly & harsh, and the self-shadowing within the fur is abhorrent with both raytraced and map shadows.
Granted, it’s not a true 1-to-1 match, just because the same features aren’t available… but I’ve got about 5 years of experience with mental ray fur… and I just can’t get it to look anywhere near as good. I had an afternoon working with fur in RFM before that test.
The image quality vs time spent mucking with setups vs render time is skewing heavily in Pixar’s favor for me at the moment.
Working on writing my own approximations of Fast_SSS and arch materials now as RSL and I’ll share ‘em once I’m done.
It’s not like I’m going to be pitching mental for stuff like my tabletop product shots (much like you & maxwell). I’ve got studio lighting rigs and setups with awesome looking metal ready to go. But for newer work that I’ve got time for R&D on, I’m leaning heavily toward bending PRMan to my will.
–T
3. matt | September 3rd, 2009 at 7:37 pm
my thoughts exactly. i’ve always thought its because mental images work so hard to stay platform agnostic, they don’t get too involved in the integration side of things. that means its easy for lots of little things to slip between the largish gap between mi writing the renderer, and autodesk doing integration.
with every other 3rd party renderer, they’re forced to write both renderer and integration. more work for them sure, but means if there’s problem, they can fix it. much easier to get support that way.
if you like prman for maya, look at 3delight, its amazing.
4. Ruben | October 12th, 2009 at 12:49 am
Hey there Trey, i just stumbled across your site trying to learn RFM and RSL since i want to get as far away from Mental Ray as possible. Currently i’m trying to figure out how to work with fur in RFM. I use HairTK for MR which i think is really good, but your render just sold me. Do you have any suggestions or tips? Or perhaps a sample scene to off start with? Any help really would be great.
5. Trey | October 12th, 2009 at 3:01 am
Hi Ruben,
I can put a little bit of example stuff together if you’d like… might take a few days. I’ve actually been compiling a list of subsurface hints as my next big posting.
In the meantime, here are the biggest issues I’ve found to look out for:
Specular doesn’t behave as you would expect after working with Mental… it’s not a spec cheat like you’re used to, but specular reflectivity that does quite a bit more color bleeding/transmission than you might expect while you’re designing your highlights — particularly using HDRI fill light — so start low and work up slowly.
Secondly, you don’t need to use anywhere near the amount of hairs that you’re probably used to using. If you start seeing “trails” occur within your scalp like 1980s carpet, you’re actually using too many hairs. It’s better to use a few instances of fur on top of each other to fill in volume. The cat image uses four: overall fill fur, a set of longer, sparse, mutant fluff fur, a second randomized layer of fill, and a final extremely short set of fur with no shadowing for areas like the nose.
The only real deviation from the basic Mental fur workflow is that you really have to get in the habit of baking your attributes every time you make a tweak, and that the amount of visible hairs in fur feedback seem to matter a LOT more.
I think my base layer of fur was actually started based on just clicking the “wet otter” preset (heavily customized from there, obviously).
I actually laid out all of my UVs in one fur direction at 2048 pixel map sizes — this gives you a HUGE head start in grooming. From here, I actually did my color map and length maps in ZBrush, and saved my base layer as a preset starting point for all my other layers.
Posting this particular example might be rough, just because there’s a ton of baked attribute maps. I modeled the thing, and it’s even using an HDRI that I shot, so there’s no issue posting it. It’s just that Maya 2009 has a very very annoying tendency to forget links to baked attribute maps and requires you to re-link them at the drop of a hat, and posting an example that requires about 50 maps to be manually linked might prove to be not-so-fun from a support perspective!
Haven’t upgraded to 2010 just yet due to plug ins, so maybe that’s been fixed.
But, I’ll see if I can’t pull something together at least with the basics of those fur descriptions and that lighting rig. It’s actually very simple…. just be careful if your HDRIs prove too hot (due to spec), and be careful of area lights at first. As a MR guy, your first instinct will be to reach for areas for anything… they work differently and they’re kinda difficult to control with PRMan at first.
Hope this helps,
–T
6. Trey | October 12th, 2009 at 9:32 am
Another note. Under the advanced tab in your render globals, turn on Sigma hiding. It’s pure magic, and saves you from having to crank your antialiasing up to crazy numbers, or render over a background color that’s close to what you’re going to be comping on.
7. Ruben | October 14th, 2009 at 4:50 pm
Wow, awesome reply. Thanks so much for the description. Yes i noticed the same thing about specularity,when playing around with Ka and Ks in my shaders, it’s very different, sometimes even small numbers wash out my shaders.
It would be great if you could post a small sample file with the fur descriptions to see an example as im very new to furs.
8. tchoa | October 18th, 2009 at 3:45 pm
Hi Trey!
Nice image
Did you used a 32-bit displacement map for this cat?
As for me I’m having hard time to get fur on displaced animals with RfM. The offset mapping of the fur is limited to 8-bit maps so…
And the conjunction of fur and displacement on the same mesh is an issue.
- François
9. tchoa | October 18th, 2009 at 10:24 pm
would say 16-bit for the offset mapping.
You could read my question on the RfM support here:
https://renderman.pixar.com/forum/showthread.php?s=&threadid=13403
Thanks
- François
10. Trey | October 18th, 2009 at 11:14 pm
François,
I did use a 32-bit displacement map for this model, but it really didn’t push the points very far at all so I didn’t have too much trouble with the offset. Having a few layers of fur with length noise pretty much hid all of those issues.
On some heads with hair and beards that I’ve done, I’ve ended up having to do two things to get the displacement looking accurate:
- I actually wrap deform a higher res mesh as a scalp around my low res displacement cage and…
- I make sure that the fur feedback is turned up way high before I set my map resolution and start painting weights. It seems that when working with RFM that your fur feedback actually controls the interpolation of surface points. Not entirely intuitive, but try it out and see.
Interesting thought about using 16-bit offset maps. I might have to give that a try the next time I’m working with fur.
–T
11. tchoa | October 19th, 2009 at 8:10 am
Trey,
Thanks for the tip about interpolation controlled by the furFeedback. I was getting that higher when ‘first’ painting weights to have a more accurate artisan painting… and then lower it again to preserve speed in the view port insted of hidding it.
For now, I’m having a smoothed scalp too and try to have it well wrap deformed. I guess it’s the only way…
12. Ruben | October 22nd, 2009 at 5:08 am
Im in the process of sculpting my very own cat which i will soon have to approach texturing in Rfm. I’m so not looking forward to this. Hopefully your subsurface hints will bail me out =). I look forward to your next post. Thanks for the help that you have provided us.
13. Darren D'Agostino | December 19th, 2009 at 9:52 pm
I feel your pain. I’ve been using MR for almost 7 years and sometimes I want to slit my wrists. I’ve used it so long that I know workarounds, but some things are inexcusable. Like the fact that shadows passes are broken in maya 2009, only one of the most important render passes one would need.
I tried out RFM a few months back to compare certain things and some of the time differences were so drastically different, I had no words.
As an example, I wanted to see what DOF would do in RFM compared to MR because to get really nice DOF in MR you need to use the bokeh shader which is slower than anything. I was working on a print job (5kx5k images) so I made some simple geo and set up my cams adjusted my bokeh shader and hit render.
Almost 12 hours later, MR didn’t even finish rendering. Talk about crao. I took the same scene into a trial version of RFM, trashed the bokeh shader and used RFM built in DOF which just uses the cam settings (if I remember correctly).
1st, the DOF was incredibly smooth compared to MR, the way it blurred looked more realistic, and the time… get this… 1 minute. That’s right. 60 seconds compared to 12+ hours without finishing with MR.
The only thing holding me back from renderman is the price and the learning curve, because to get full use of it the way I do with mental ray I would need to learn how to edit my rib files and make custom shaders with slim. More the money than the learning though.
I definitely look forward to the day when I can leave MR behind but for now I know how to use it well enough where I can get really nice results in short time by using a few workarounds and a number of compositing tricks.
14. Trey | December 19th, 2009 at 10:12 pm
Darren,
Yeah, I do quite a lot of high res print illustration and it was really depth of field and super high res displacements that drove me to pick up PRMan in the first place… well, apart from being a skill that’s handy to have if you’re looking for feature work.
The bokeh thing looks beautiful if you can manage enough samples with your render time, but at high res sampling 5000 pixels 16 or 32 times for DOF just makes you want to kill yourself.
PRMan just blows through that and high res hair/fur. Motion blur as well.
The tradeoff is that you really need to learn RSL to match the quality of materials you can make easily with mia_mats.
Next time you try a DOF or motion blur test with MR, use the rasterizer instead of scanline or raytracing. You’ll be pleasantly surprised at the speed boost you get.
It’s not comparable to PRMan’s speed, but it will shave hours off your render times.
–T
15. Amit | January 5th, 2010 at 2:17 pm
Hi Trey,
Read your blog entry today and learnt a few very nice and useful tips about the RfM as I am doing a lil rnd on it for fur in maya 2009. Few things are yet unclear.. Can you please clarify whenever you get time…
You mentioned to use multiple layers of fur instead of high density.. do you mean to attach number of fur descriptions to the same model ? If yes then all the fur originates from the same points on the model, is there a way to offset their position ?
Secondly I did a few test render with same fur description using MR Volume fur and RfM. I realy like the soft look of the MR volume fur… but RfM always give crisp and sharp results. Though tat also looks nice but not too smooth and soft. Is there a way to get a really soft look on fur using RfM?
Cheers,
ak
16. Trey | January 5th, 2010 at 2:39 pm
Amit,
When I use multiple layers of fur, I’m using different fur densities on each layer… this mostly avoids the fur coming from the same positions on the surface.
In terms of RFM fur settings, I’ve found the opposite to be true… RFM is incredibly soft. You just have to tune the settings a little bit and tune your tip widths down pretty low.
Here’s a quick guideline based on the cat image:
Turn sigma hiding on (Advanced tab)
Sigma blur: 1 (Advanced tab)
Shading rate: 1 (Quality tab from here down)
Focus Factor: 3
Pixel Samples: 6.0 x 6.0
Filter: separable-catmull-rom
Filter size: 5.0 x 5.0
For the fur descriptions, as a baseline I’m using a base width of 0.009 and tip width of 0.007 at real world modeling scale. Each fur description is slightly different, but in the same vicinity.
Hope this helps,
–T
17. Amit | January 5th, 2010 at 6:19 pm
Hey Thank you so much for such a quick response.
Can you also please tell what is your starting number for fur densities and what you generally use in production per fur description ?
Can you also please show the UV’s of the cat… this will give a lot better understanding on laying fur apart from RfM settings.
Cheers,
ak
18. Trey | January 5th, 2010 at 7:27 pm
Amit,
For that cat model, my starting point was about 150,000 hairs per fur description at a global scale of 4 and a 2k map size. My “fuzz” description has a lot more and my “fill” layer has a lot less. I’ve also got a very sparse mutant fluff layer for longer hairs that’s set very low.
Here’s a snapshot of the UVs… basically I laid them all out so that all the hair would lay down in a singe direction using polar+curl, then I blended the seams by hand with artisan.
http://www.treyharrell.com/downloads/catuv.jpg
–T
19. Amit | January 5th, 2010 at 8:25 pm
Hey thanks a lot for the tips. I finally got a smooth and soft looking fur by basically adjusting the following settings
Pixel Samples: 6×6
Sigma Hiding: on
One more quick question though… Does U, V samples on the fur feedback shape node also affect the final fur look in renders ?
or is it just to preview fur in the viewport ?
Thanks & Have a great Day,
ak
20. Trey | January 5th, 2010 at 8:33 pm
I’ve found that when working with PRMan, the UV samples on fur feedback do in fact affect the placement, fullness and smoothness of fur on the model. This isn’t the case with MR, and it’s a bit counterintuitive as the usual workflow is to turn feedback up while grooming and then turn it back down for interactivity.
–T
21. Amit | January 6th, 2010 at 6:57 am
You are talking about PRMan… please correct me if I am wrong…PRMan is different from Renderman for Maya right ?? So basically 2 products from Pixar and RfM is a stripped and simplified version of PRMan ?
Thanks again,
ak
22. Trey | January 6th, 2010 at 12:48 pm
When I talk about PRMan, I mean Pixar’s renderer, PhotoRealistic Renderman in general. It could be either Renderman for Maya, Renderman Studio, or even Renderman ProServer. In this case, it all applies to workflows in both Renderman for Maya (RFM) and Renderman Studio (RMS).
You can think of RFM as simplified version of RMS, although RMS has a lot more tools available and is a lot more flexible.
The cat image was actually created originally with RFM. It also renders as expected in RMS either with the internal RFM Pro engine or externally via ProServer.
The reason I use “PRMan” instead of generic “Renderman” in conversation is that “Renderman” can also refer to 3Delight and other compliant/compatible rendering engines — it’s actually the term for the renderer specification, so “PRMan” is actually meant to avoid confusion and speak generally about any of Pixar’s tools.
Here’s a quick rundown on additional features in RMS:
http://renderman.pixar.com/products/tools/rms.html
But basically when I use “PRMan” I’m talking about techniques that work with pretty much any Pixar Renderman product. If a technique was product-specific (like shader creation in Slim), I’d be specific that I was talking about RMS.
Make sense?
(Yeah, it’s a little confusing at first!)
–T
23. Amit | January 9th, 2010 at 11:20 am
HI Trey,
Read your post.. yes it does make sense now and is very informative. Thanks for talking time to explain and clearing things out.
Have a great day,
ak
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed