Jump to content
golubevcg

Forest campfire rendering in Houidini Mantra

Recommended Posts

It look nice, good job!

Share this post


Link to post
Share on other sites

looks decent. only i think it would need a bit more work on specularity/diffuse balancing, some green color tones feels a bit off too. otherwise good work thou! what render times?

Share this post


Link to post
Share on other sites
4 hours ago, davpe said:

looks decent. only i think it would need a bit more work on specularity/diffuse balancing, some green color tones feels a bit off too. otherwise good work thou! what render times?

Thanks!
Totaly agreed, later noticed that spec on grass/plants looks not so good, will try to keep up a better shading in next project!

When i gathered all together i had around 10 hrs\frame, 720p, on single old i7. BAD. But after optimisations, i was able to decrease rendertime to 5-6hrs/frame.
In first setup i had volumetric fog at distance, wich was creating a sort of great atmosphere, but it significatly increased rendertime, so decided to fake it on compositing, using z pass, little bit cheaper but much faster result. Else turned of SSS on plants, plased less detailed instances on far distances from camera, turned off additional bounces (checked out with and without them - they had a very low influence on final image (almoust none), but were taking a lot of additional rendertime).
And after tweaking a mantra settings in final got out with something around 5-6 hrs/frame.
But it still a little bet noisy.
The same, but 1080p on test frames was going around 10 hrs(+\-).
 

Share this post


Link to post
Share on other sites

uh, 10 hrs and not even hd res? that's about 10x more than I'd expect! even for not super fast cpu. i,m pretty sure it could be optimized down to about an hour or two with all the bells and whistles. 

anyways, atmosphere pass can be rendered quite cheaply with uniform volume, low ray samples, high stochastic samples, and phantom objects having constant shader applied. it typically renders between 5-15 mins, depending on scene size.

cheers.

Share this post


Link to post
Share on other sites
9 hours ago, davpe said:

uh, 10 hrs and not even hd res? that's about 10x more than I'd expect! even for not super fast cpu. i,m pretty sure it could be optimized down to about an hour or two with all the bells and whistles. 

anyways, atmosphere pass can be rendered quite cheaply with uniform volume, low ray samples, high stochastic samples, and phantom objects having constant shader applied. it typically renders between 5-15 mins, depending on scene size.

cheers.

Yes, that's what i did - box with uniform volume and stochastic samples. Can you say a little bet of optimisation, if you can?
i just researched it to make my render faster, tested out many different rendering setting and 5to6 hours is the best i can get from it.
Maybe i'm missing something?

Ended up with this mantra settings:
pixel samples 4x4;
min 1;
max 10;
noise level 0.006;
allow motion blur;
all limits at zeroes;

Five lights in scene - 3 area lights(sampling quality1), 1 enviroment(dome light - sampling 2.4 with sky enviroment map enabled) and 1 volumelight for light from fireplace(sampling quality 1.2, Point samples 32 and shading quality 0.75)
all geo instanced using instancefile to make it more efficent, shaders simple principled shaders with maps on it.

Share this post


Link to post
Share on other sites

your sampling settings don't seem to be high but i guess it would help to render some things as a separate pass and comp them together. that allows for example to sample evironment light pass differently from volume light pass. many times it helps significantly.

then the way you build your shaders can have a speed impact. if you only use principled with textures applied, without shading networks, i think this is not gonna be the case.

not sure how detailed displacement are you rendering and gow much texture data in overal, but you definitely want to check the vm_sample_data_cache limit. the default value is set ridiculously low (512 mb), and also is not exposed - so you need to access it throught Edit rendering parameters dialogue, and you want to make it at least 2048 or more. it's basically the cache size for the texture and displacement data and if it's too low you end up loading and releasing the same textures over and over again at each tile. which obviously can slow down things a lot. i bet this is part of your issue and also the reason why many people are nagging about mantra being slow.

then, if you're not converted your textures to rat image format, do it. that might also be one of the factors.

other than that it's hard to say without inspecting the scene. it can be the way you handle geometry, displacement settings, lights settings, etc... and then  hardware, of course. if you don't have enough memory for instance, it can be a bottleneck. but I'm sure you're aware of that.

Share this post


Link to post
Share on other sites
17 hours ago, davpe said:

your sampling settings don't seem to be high but i guess it would help to render some things as a separate pass and comp them together. that allows for example to sample evironment light pass differently from volume light pass. many times it helps significantly.

then the way you build your shaders can have a speed impact. if you only use principled with textures applied, without shading networks, i think this is not gonna be the case.

not sure how detailed displacement are you rendering and gow much texture data in overal, but you definitely want to check the vm_sample_data_cache limit. the default value is set ridiculously low (512 mb), and also is not exposed - so you need to access it throught Edit rendering parameters dialogue, and you want to make it at least 2048 or more. it's basically the cache size for the texture and displacement data and if it's too low you end up loading and releasing the same textures over and over again at each tile. which obviously can slow down things a lot. i bet this is part of your issue and also the reason why many people are nagging about mantra being slow.

then, if you're not converted your textures to rat image format, do it. that might also be one of the factors.

other than that it's hard to say without inspecting the scene. it can be the way you handle geometry, displacement settings, lights settings, etc... and then  hardware, of course. if you don't have enough memory for instance, it can be a bottleneck. but I'm sure you're aware of that.

Yes, that's what i'm doing - having a lot separate aov's to use them in compositing later.
About texturing, i think that's you right. There can be a problem, wich i didn't covered. I have a lot 4k/8k textures.
Maybe this is a case, I think i can easily decrease resolution of textures down to 1/2k and it will go faster with no loss in result.

And rat - yes i converted all textures in .rat to not do it during the rendering. with memory i have no problem - it far from filling up all ram, i think it even not getting a half of my 32gigs, so there is everythink fine.
First setup was created using simple instances (not instancefile, just instance attribute) and it was very very slow - i mean before even start to render frame it spend 2 hrs to evaluate everything before render. But i recreated all using instancefile attribute and it setups all in some seconds.

About sample_data_cache limit i didn't knew, will test this setting in my free time, big thanks!
i think it can really help in optimisation process.

Share this post


Link to post
Share on other sites

if you're using rat textures already there should be almost no difference if you make them smaller as rats are automatically mip-mapped (so they're always rendered at the appropriate resolution).

sample data cache i think might be your biggest slow down factor i think.

not sure about instancing process, i typically always use copy to points workflow, cached out and loaded back as packed primitives. that's i believe the most efficient way. but instance objects should render fine too.

speaking about geo, maybe if you do some SOPs magic it always pays off to cache everything out before rendering. but i guess you already do that?

Share this post


Link to post
Share on other sites
On 24.02.2019 at 2:37 AM, davpe said:

if you're using rat textures already there should be almost no difference if you make them smaller as rats are automatically mip-mapped (so they're always rendered at the appropriate resolution).

sample data cache i think might be your biggest slow down factor i think.

not sure about instancing process, i typically always use copy to points workflow, cached out and loaded back as packed primitives. that's i believe the most efficient way. but instance objects should render fine too.

speaking about geo, maybe if you do some SOPs magic it always pays off to cache everything out before rendering. but i guess you already do that?

Yes, everything is cached out, to not waste time on this during the render. When you using instancefile attribute you setting path to files on disk using string attribute

I will test out with this setting and compare how it change rendertime, hope it helps

Share this post


Link to post
Share on other sites

Hello.

...

This is a great start. Only a tweak here and there.

...

But at rendering level I suppose there is some work to do. That's too much time. I'm on a i7 2600K (with a gtx660) and I keep the render time not that high at all... I'm rendering with mantra, by the way.

...

If you find the problem - if there is one, of course - please share.

...

Cheers.

João Marco

Share this post


Link to post
Share on other sites
4 hours ago, jmarco said:

Hello.

...

This is a great start. Only a tweak here and there.

...

But at rendering level I suppose there is some work to do. That's too much time. I'm on a i7 2600K (with a gtx660) and I keep the render time not that high at all... I'm rendering with mantra, by the way.

...

If you find the problem - if there is one, of course - please share.

...

Cheers.

João Marco

Hi! Thanks for reply!

Just ended up rendering with new setting to test this out.
Ended up with nothing - it give no result.
So, there's what i did:
for testing i turned off campfire, to make test faster, and i render 10 frames of two sequences - one with default 512 vm_sample_cachesize and second with 512*10, and result was the same.

i think the main problem in this setup, "the bottleneck", as they say - is the campfire. I mean i render flames obviously separately -  and it's no problem very fast.
But, i'm talking about light from flames - volumelight, which create light from flames on plants and trees around.
I use simple area light, in witch i set flames sop path as geometry object and material (just like volumelight shelf tool can give).
A little bet higher up sample quality(1.2) and increase a point cloud setting
, from default 16 to 32. Else little bet increased shading quality to 0.75.

Attached file - this is the tiff from testing, without light from flames and without compositing, straight from Houdini and it having a great render time - 1 hour 45 mins

 

 

TEST_FIN_NO_CAMPFIRE12.jpg

Edited by golubevcg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×