a handy tip for speedy renders (when testing a subsystem)

Started by shadowphile, January 25, 2010, 04:11:15 AM

Previous topic - Next topic

shadowphile

I did a crop render of my scene with lots of nodes not in the path, like extra cameras, some function nodes trees not connected to anything.
4 minutes.
I then deleted all the extra nodes not relevant to my render.
3:17 minutes.

For some reason some nodes not relevant to the render still take up cpu time.  Disable them for faster renders.

reck

That sounds like a bug, why would nodes not connected to anything slow down the render otherwise?

Tangled-Universe

Quote from: reck on January 27, 2010, 08:03:30 AM
That sounds like a bug, why would nodes not connected to anything slow down the render otherwise?

I'd not consider it a bug, rather a little mistake.
The reason is probably that the connected nodes form a flow/chain of calculations which are followed by the renderer.
I guess it (pre-)computes the nodes until a dead end is found, or not. Perhaps the renderer is not able to "see" if (parts of) the chain lead to a dead end or eventually at the planet-object.
Therefore deleting unused nodes might speed things up.
Just an uneducated guess though.

Cheers,
Martin

nikita

Also, there are nodes that aren't connected to anything and still affect the scene -  objects for example. So you can't just skip all unconnected nodes - you have to look at them at least once to determine that they don't do anything.
Also: Why would you as a user have unconnected nodes if you know they don't do anything?

I'd call it  "room for optimization".

Seth

Quote from: nikita on January 27, 2010, 01:55:29 PM

Also: Why would you as a user have unconnected nodes if you know they don't do anything?


because it can be useful for tweaking, saving tgc that can be used in different scales,  animation, and several other reasons I don't think about ^^

shadowphile

QuoteAlso: Why would you as a user have unconnected nodes if you know they don't do anything?
I occasionally (er, often) need to re-tweak the results of a subsection and temporarily disabling the rest of my setup makes that faster, if my whole setup is getting cumbersome and slow renders.

I sometimes get the impression that many of the artists on here who actually produce for others have certain set approaches to creating images that works for them.  I often see the response "Why would you bother doing that?"  and I want to reply, "Why would I NOT want to do anything I want?".  Being an explorer, an envelope-pusher, and not tied to customer demands,  I tend to spend a lot more time exploring what I can do with the program.  That often means seeing if I can make it work the way that I think, rather than learning to do it the 'TG' way.  YMMV.

nikita

Yes - my point is:
"Why does TG2 evaluate those nodes?"
"Well, why do you have them in the first place?"
You might as well blame the user for not deactivating his nodes. Which is one reason I don't call it a bug. That is all.

In fact, my networks have plenty of unused nodes too.  ;D

Henry Blewer

I disconnect things when I discover problems. When I have worked it out, I delete the unused nodes.
http://flickr.com/photos/njeneb/
Forget Tuesday; It's just Monday spelled with a T

dandelO

My default project has MANY unused nodes, these can be disabled/enabled at the drop of a hat. If they are greyed out(disabled), then they should not be calculated at point of render. Simply select and hit key 'D' to disable any unused nodes completely before rendering. Couldn't be simpler.
Usually when I get to the point of rendering a final scene, I'll delete unused nodes anyway, so it doesn't really matter to me whether I have nodes or not that are being used, since my defaults use nodes of all sorts that are probably un-needed. It isn't hard to hit key 'D', or whatever shortcut you have assigned for the disable function.
Seemples.com.meerkat/market.com. :D

Oshyan

Indeed, Disable should be used in combination with, or in some cases even instead of disconnecting. It would be interesting for you to test whether disabling will give you the same performance benefit as deleting.

- Oshyan

jo

Hi,

When you disable a node the values from further up the chain pass through it like it wasn't there, so you don't need to disconnect nodes just to stop them having an effect on the scene. Technically I suppose there is some overhead, but I would surprised if it made any sort of noticeable difference.

I'm not sure why disconnected nodes would be contributing to render time, that's Matts domain.

Regards,

Jo

nikita

Quote from: jo on January 28, 2010, 06:28:53 AMWhen you disable a node the values from further up the chain pass through it like it wasn't there
Except for the water shader, unless this has been fixed in 2.1.

dandelO

Quote from: nikita on January 28, 2010, 06:48:40 AM
Quote from: jo on January 28, 2010, 06:28:53 AMWhen you disable a node the values from further up the chain pass through it like it wasn't there
Except for the water shader, unless this has been fixed in 2.1.

It hasn't, I noticed this the other day. The water shader doesn't react to being disabled. It'll still render water.

Markal

Sometimes I delete a node like a shader that did not produce the desired effect...the problem is the associated or add on nodes are not deleted...i.e.  the distribution shader or an image map shader or nodes added to control the color function or luminosity function.....(that I had connected to the deleted node)....they set there unconnected and unused....hmmm...don't know if they add to the render time or not....or if it is a bug?....it would be hard to delete the added on or connected nodes with the selected node you want deleted without deleating all connections.  Does that make sense....to anyone???  What did I just say??? :) I will test it on a small render and post the results...give me some time :)

dandelO

I'd delete or disable all nodes that aren't specifically required for the scene before doing a final render. If it's final, unused nodes are really not required. Why even bother with 'em? Delete everything unused, save your project as an incremental file and render that instead of the working project.

I think that most times, even this will be negligible. ??? Unless you have some really complicated node setups in there.