PDA

View Full Version : Renderman for Maya-- CSG Boolian Slowness


rBrady
06-30-2009, 06:58 PM
When I use csg my rendertimes skyrocket. I understand it should take longer but this might be to much to handle. I did some testing in a production scene and this is what I got.

No Raytracing
no csg 16sec
csg 40sec

Raytracing + GI
no csg 7min
csg 35min

I am on an 8 core 2.6ghz core2 system.

So it takes between 3 and 4 times as long to render when I use csg. With this scene there isn't a big difference in surface area or composition.

Is this a bug or is it just the way it is? Any thoughts anyone.

2stepdmb
07-01-2009, 12:46 AM
- Try playing with the Max Variation parameter. This is a quality/time knob (the higher the value, the faster it'll render but with less accurate results).

- I would suggest try using the point-based approach to doing occlusion/color bleeding instead of ray-tracing. Right click in the Bake Shadowing text field and select "Create RenderRadiosity".

Ian

leif3d
07-01-2009, 04:01 AM
I would suggest posting these questions in Pixar forums.
You'll get a pixar tech to answer your questions with much more accuracy and a lot faster.

I really have no idea why it's taking so long. I haven't used them in a while, but last time I did I don't recall such increases in render time.

edit:

I just did a test and I see increases of about 20%-30%, but not 300%+
It's probably best to submit your scene to pixar.

rBrady
07-01-2009, 06:11 PM
I am just working with the eval. I posted to the public pixar forum but haven't had any luck. I know pixar is awesome with support. But I wont have access to the forum until I buy. But I cant buy till I fix this. Reasonably quick booleans would cost justify a switch to renderman. That is what I am trying to figure out.

I tried out what you guys suggested. As a note, I am using a 4k hdri and my objects have 6k faces with a 500 poly object cutting into them. I am using blinns as materials. I tried your ideas and the sped things up a bit. But it didnt fix my issue. If I just have CSG enabled and my geo doesn't intersect my render-times still double.

I do tons of cross sections and this would save me a huge amount of time. I do at least 6 animations like this a year. Here is an example.

http://vimeo.com/5398314

Right now I have to do a renderlayer for each level. The last with a modeled cross section. If I can get CSG to work I wont have to fake it anymore. This animation had 64 individual renderjobs to get everything out efficiently. If I can use CSG I can cut that down to at least a third, add in fast motion blur and good AOVs and I might be able to trim that down to 1 job. Compelling.

Thanks for your thoughts help.

2stepdmb
07-02-2009, 01:13 AM
Did you try adding the subdiv scheme attribute to your polygons and see if that speed things up? Otherwise we'd have to look at your scene.

Ian

rBrady
07-02-2009, 09:23 PM
Yea, I do use a subdiv scheme on both items.

Here is the file if anyone wants to take a crack at it.

I am not including the HDRI so you might want to stick one in of your own.

Maya 2009 RM Test (download) (http://www.rbrady.com/tmp/tmp/testCross.zip)

leif3d
07-03-2009, 02:59 AM
Good news and bad news.

Bad news first.
I can't fix the CGS issue. Yes, it takes much longer when you intersect high poly counts. Therefore I don't think there is something to "fix." I'm sure Ian (2stepdmb) can shed some light on this.

Good news.
I optimized the scene so that it doesn't take 33+ minutes.
It now takes 4:23.

This is on my old 4 core Opteron 280 at work with 8 gigs of ram, so you'll do much better.
-------------------------------------------------------------------
To achieve this do the following:

-Switch off double sided for all surfaces. (W/ attribute spread sheet) you don't need this default feature unless you are rendering both sides of the object. Make sure you don't have "opposite" turned on. This is a big time saver in general in renderman.

-Under the advanced tab in the Render Globals change the Bucket size to 32X32 and the Grid size to 512. This renders larger tiles at the expense of higher Ram usage. Therefore, make sure you have a good amount of ram 4gb+. This is the way I setup all my scenes and speeds up renders considerably.

-I put the Raytracing settings higher than yours at 10/3/1, so you should get more accurate reflections.

-Turn off ENV light shadowing and make sure you use the lowest res HDRI you can possibly get away with. Although using the a point cloud it is still considerably faster than brute force GI, the result you're after can be achieved with the next method.

-Make a custom deep shadow in the spot light by adding the following custom attributes:
a) add shadow attributes
b) add custom deep shadow map (leave default values, but raise the pixel samples to 8X8)
c) you may want to raise the bias depending on your scene size (0.5)

That should get you going.

I can't upload the file. Apparently it's extremely large to upload (1mb)

rBrady
07-03-2009, 04:49 AM
whhoooo. awesome man. I cant wait to try it. I really appreciate you taking the time. If I ever see you at siggraph or something I owe you a drink.

leif3d
07-03-2009, 06:27 PM
I'll take a Sam Adams please...

Anyways...I hope the optimization works out for you.
I'm still hopeful Ian will shed some light on why CGS is taking so long.

This is the final optimized scene render. It renders in 1:04 on an 8 core Xeon 2.5 with 16gb ram.
BTW, because *I roll like that*, I upgraded your scene to Linear gamma.:thumbsup:

If you need the scene shoot me an email, because It's too large to attach.

2stepdmb
07-07-2009, 01:07 AM
Unfortunately, ray-tracing against CSG is just kinda slow (I believe we only added that ability in version 13), but I don't think it should be 300+% slower, which was what I was concerned about. Leif makes some excellent points as to how to optimize the scene, so hopefully that'll get you going.

Ian

CGTalk Moderation
07-07-2009, 01:07 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.