I'm dealing with some work involving packed Alembic objects (animated motion cycles) copied to a large number of particles (almost 50,000).
We've got one version of our Alembic object that's fully opaque, and that renders in approximately 6 minutes/frame.
In an effort to resolve some creative concerns and improve some quality, I've made another version of the Alembic object that has an Alpha point attribute baked into it, to add transparency to part of the object. As you could probably imagine, all hell breaks loose when I try to render 50,000 of those in a frame. Render times go up past an hour per frame, presumably because of all that transparency stacking going on in there.
We don't have a lot of firepower here to brute-force our way through rendering this, does anyone have any good tips on optimizing this sort of render? Lowering mantra's opacity limit doesn't seem to help at all… Right now I'm using mantra w/ Micropolygon rendering.
I feel like we're probably just screwed in this regard but I thought I'd send out a shout in case anyone has any secret ninja tips to share… many thanks for any help you can provide!
-JS-
tips for speeding up rendering w/ transparency?
4220 5 2- JasonS
- Member
- 37 posts
- Joined: 7月 2005
- Offline
- tamte
- Member
- 8833 posts
- Joined: 7月 2007
- Online
- JasonS
- Member
- 37 posts
- Joined: 7月 2005
- Offline
sure enough, switching to raytracing turns out to be much faster, and also uses way less RAM! I was expecting the opposite. Our mantra process was using about 16GB with micropolygon rendering, now it's using about 1.8 GB with raytracing! I'm guessing maybe the raytracer supports some things with packed prims that micropoly rendering doesn't?
Thanks Tomas!
-JS-
Thanks Tomas!
-JS-
- old_school
- スタッフ
- 2540 posts
- Joined: 7月 2005
- Offline
- Ankit_Pruthi
- Member
- 3 posts
- Joined: 2月 2011
- Offline
Just out of curiosity, what was the bucket size while using micropoly engine?
The reason for raytracing using less ram i guess is instancing. Packed primitives are a form of instance and hence, it would be loaded in memory only once and transformed as and when required. Micropoly engine would dice everything and then render it.
Another reason for slowdown was micropoly running surface shaders on micropolygons rather than at ray hits. In case of surfaces with opacity stacking, micropoly will probably always be slower than raytrace here (esp with stochastic transparency). But for some reason if you do want to use micropoly (displacements and motion blur perhaps), try lowering the opacity limit on render tab.
The reason for raytracing using less ram i guess is instancing. Packed primitives are a form of instance and hence, it would be loaded in memory only once and transformed as and when required. Micropoly engine would dice everything and then render it.
Another reason for slowdown was micropoly running surface shaders on micropolygons rather than at ray hits. In case of surfaces with opacity stacking, micropoly will probably always be slower than raytrace here (esp with stochastic transparency). But for some reason if you do want to use micropoly (displacements and motion blur perhaps), try lowering the opacity limit on render tab.
- JasonS
- Member
- 37 posts
- Joined: 7月 2005
- Offline
Thanks all for the help, I feel like a stupe. I've been in the rendering world of Arnold and 3Delight for too long, finally back to rendering my own stuff again instead of “throwing it over the fence” to a lighting team! I'm sure it was all the micropoly dicing that was killing me, never crossed my mind. Clearly my mantra skills need freshening.
-JS-
-JS-
-
- Quick Links