Rendering intances with Mantra, huge speed issues new H11 ma

   11227   9   2
User Avatar
Member
88 posts
Joined: March 2010
Offline
Hi

I am trying to render some models via instancing. I am instancing 50000 copies of a model over a plane(using instance object). The object is made up of 3k polygons. When I render my scene without materials and with a single distant light Mantra`s speeds are below

-Micropolygon: 47 sec
-Raytrace: 16 sec

Now when I add the new H11 material(everything else is same) the render speed drops dramatically and the memory uses increases dramatically(over 6GB) . Basically I could not wait that longm so ended up canceling all my renders.

To make sure I have disabled reflection fo any kind, no opacity no SSS etc in the material.

The other issue is that I thought that MP renderer should be more memory efficient but after seeing that the memory usage passing 7gb for this scene I am rather questioning the efficiency of the MP considering that I do not have any raytracing enabled, at least not in the material.

I will do more tests with other materials but I was wondering if anyone have tips for rendering massive amounts of instances.In some cases I even need to use SSS and raytracing with instances. Now that I saw the speed issues, I am not going to try it for a while


thanks
User Avatar
Member
12629 posts
Joined: July 2005
Online
Yeah – the new material defines a displacement shader even if you're doing no displacement at all — and a displacement shader will cause havoc with performance, both RAM and speed. And especially with instancing!

So: To your material add the following (new-ish) property: “Mantra 11.0 > Shaders > Disable Displace Shader Rendering (shop_disable_displace_shader)”, and turn it On.


I'd recommend that SESI add support for this to their Mantra Surface shader because it's quite unexpected that displacement shaders will be generated even if unused. The performance impact is terrible since displacement is used quite rarely. I shudder to think of all the less-than-ideal experiences people are having with Mantra out there due to this being set up the way it is.

In fact, I'd suggest to SESI that they add this parm to the Material Shader Builder and check in On by default too.
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
88 posts
Joined: March 2010
Offline
Hi Jason

Thanks for the pointing out. I suspected that something was fishy with the material but I did not have time to delve into the material. For some reason I thought that the default H11 material would have been thought out more “properly” in a way

I second your suggestion regarding the default material. At some point it was going to crash my computer because it already passed my 8gb limit and the computer was crazy irresponsive for quite sometime until I managed to kill Mantra manually.


cheers
k
User Avatar
Member
7046 posts
Joined: July 2005
Offline
Slight hijack, but related: There are SSS perfomance boosting toggles on the SSS node buried inside the Mantra Material, that default to off and aren't exposed. Unfortunately, SSS is too slow to use without these toggles turned on, so you have to unlock everything, dive inside, and turn the toggles on.

If you know about them!

The uber material has a chance at being a great single point of entry, but these sorts of things (the displace, the SSS usability toggle being “off”, the fact there is no texture map for emission!) really put people off.

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
12629 posts
Joined: July 2005
Online
I agree, Peter.

On our project we created our own bastardized version of the SurfaceModel VOP, and our own Mantra Surface on top of that.

I will say that there are great things about the Mantra Surface Material design, though – in particular the separation of specular reflection from lights (direct) versus specular reflection of objects (indirect). However we did modify it to suit our production which has hundreds of objects of all manner of surfaces from ceramics, woods, various glasses, metals from patina'd brass to anisotropic steel to colourful anodized metal. It managed to solve them all pretty nicely at the end of the day.

We hope to share the overall shader design with SESI soon and maybe they'll see value in extending the Mantra Surface to incorporate some of these things. We have plenty of custom things in it to support quirks of our pipeline, along with debugging and optimization tools that obviously aren't applicable in a standard commercial shader.

Anyhow; good to speak to you again! And a note: we got this our show under control and it's performing quite nicely now…

Take care,
Jason
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
7046 posts
Joined: July 2005
Offline
Hi Jason,

Sounds encouraging! It's great you'll be able to share back with SESI, for sure.

Obviously, I could also base our own custom Surface VOP on the SESI one, but we don't have the resources to do that and maintain it, like you do

Anyway, hopefully it'll keep moving forward in the H11 codebase, since a lot of the bits that need changing are simply exposing controls (SSS) or adding texture map slots (emission) which should be “safe” additions.

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
94 posts
Joined: Dec. 2008
Offline


THANKS A LOT for bringing up this issue !!!

I was close to believe, H11 was somehow mad at me….

Had a render with roundabout 20k instanced objects, that ran, slooowly, but ran to the end. But when I wanted to render a close-up the only thing that came to an end was my RAM (and my Patience). Now knowing it is an issue with iomplicit displacement it makes sense how it behaved….

Now it starts rendering, at RAM is just moderately used (mantra uses ~400MB on average per frame)


Phew!! Thanks again for the pointer!!

If you can't script/program it, it's no good at all !
User Avatar
Member
334 posts
Joined: July 2007
Offline
Cant you just toggle off true displace one the shader? Wont that dissable displacements?

Seems to work here
www.gimpville.no
User Avatar
Member
15 posts
Joined: Feb. 2009
Offline
So: To your material add the following (new-ish) property: “Mantra 11.0 > Shaders > Disable Displace Shader Rendering (shop_disable_displace_shader)”, and turn it On.

I just don´t find that property. Could anyone point me in the right direction. Would love to see if disabling the displacement reduces memory usage and rendering time.

Lu-Tze
User Avatar
Member
30 posts
Joined: Aug. 2010
Offline
I just don´t find that property. Could anyone point me in the right direction. Would love to see if disabling the displacement reduces memory usage and rendering time.

Lu-Tze

You find this under “Edit rendering parameters”. It helps to filter by “displace”. Have a look at the attached screenshot. Right click on the parameter and choose “Install parameter”. After that, you have the parameter available on the interface of the material.

Regards,
Carsten

Attachments:
disable_displace_shader.png (79.0 KB)

  • Quick Links