Page 1 of 2

vdb fire render time question

Unread postPosted: Mon Sep 09, 2019 5:08 am
by jili0808
i use scatterer to scatter my vdb fire. vdb size 1.7Mb,use single frame to scatter.no lights, use volume emission.
render resolution:1569x1200.
scattering point count 200 takes 4min per frame.
scattering point count 1000 takes 23min per frame.

is that normal?
I think it takes too longer.
and How do I optimize render setting?

here is my computer info :
intel Xeon CPU E5-2667/3.2GHz
CPU threads 32
Memory 64GB

here is my file.

Re: vdb fire render time question

Unread postPosted: Mon Sep 09, 2019 7:38 am
by sam
Hi there,

I'd love to know what you expect. You are multiplying the number of visible/reflected instances by 5 and the rendering time is about 5 times slower. That seems pretty expected to me.

Then you have 2 diffuse bounces and your volume material has some scattering component despite being a strong emitter. So you get multiple scattering in the volumes (and in the reflections on the ground) which is VERY expensive.

You can try to set the Diffuse Depth of your volume material to 0. While you will lose some energy, indirect illumination contribution on a pure emissive volume is rather low on the final render but the render times is very high.

Use the AOV diagnostics_ray-count you will see where you rays goes specially that you are using adaptive anti-aliasing. BTW, set your AA filter to Gaussian 2.0 2.0 to speed things up slighty instead of Blackman-Harris 3.0 3.0.
Capture.PNG

On the left Diffuse Depth on the volume material is set to 0 and on the right it is left by default (2 here)
On the left, we can clearly see that the most of the rays are spent on the ground. However on the right, most of the rays are spent on the fire. So the more fire you have on screen the slower the render gets.

Re: vdb fire render time question

Unread postPosted: Mon Sep 09, 2019 12:30 pm
by jili0808
sam wrote:Hi there,

I'd love to know what you expect. You are multiplying the number of visible/reflected instances by 5 and the rendering time is about 5 times slower. That seems pretty expected to me.

Then you have 2 diffuse bounces and your volume material has some scattering component despite being a strong emitter. So you get multiple scattering in the volumes (and in the reflections on the ground) which is VERY expensive.

You can try to set the Diffuse Depth of your volume material to 0. While you will lose some energy, indirect illumination contribution on a pure emissive volume is rather low on the final render but the render times is very high.

Use the AOV diagnostics_ray-count you will see where you rays goes specially that you are using adaptive anti-aliasing. BTW, set your AA filter to Gaussian 2.0 2.0 to speed things up slighty instead of Blackman-Harris 3.0 3.0.
Capture.PNG

On the left Diffuse Depth on the volume material is set to 0 and on the right it is left by default (2 here)
On the left, we can clearly see that the most of the rays are spent on the ground. However on the right, most of the rays are spent on the fire. So the more fire you have on screen the slower the render gets.


Diffuse Depth set to 0.
What if I need a fire reaction layer?

Re: vdb fire render time question

Unread postPosted: Mon Sep 09, 2019 12:35 pm
by sam
What is a fire reaction layer?

Re: vdb fire render time question

Unread postPosted: Mon Sep 09, 2019 1:06 pm
by jili0808
sam wrote:What is a fire reaction layer?


It's shown in the picture below.

Re: vdb fire render time question

Unread postPosted: Mon Sep 09, 2019 1:51 pm
by sam
I said to set the Diffuse Depth of the volume material to 0 and not the Diffuse Depth of the path tracer.

Re: vdb fire render time question

Unread postPosted: Mon Sep 09, 2019 2:11 pm
by jili0808
sam wrote:I said to set the Diffuse Depth of the volume material to 0 and not the Diffuse Depth of the path tracer.


opps~

thanks

Re: vdb fire render time question

Unread postPosted: Wed Sep 11, 2019 10:40 am
by jili0808
I have VDBs fire sequence.(130GB,0f-150f,about 1GB per frame)
copy paste the VDBs then time offset each one of them and scatter these copies.(copy 5 ,scatter 22)
Rendering on my local computer,it takes 10min per frame.
but when i put the cache on another computer and rendered it on the local computer,it takes 3 hours per frame.
so i do the same job in Houdini(use houdini instance).
I found that there was not much difference in rendering time between the two methods.
The first one is 50 minutes a frame and the second one is an hour a frame.
I'm a little confused.

Re: vdb fire render time question

Unread postPosted: Wed Sep 11, 2019 1:07 pm
by mdkai
Hi,

First i suggest you test the bandwidth of your setup, caches have to be loaded.
If you use 5 sequences as offset and a single frame is about 1GB it take a 5GB transfer minimum per frame. Thats is not so much overall and rendering should still be fast enough.

Second, is the machine identical to the one you render local ? Are textures located on your machine or on a server ?
Did you use tx with streaming texture file nodes ? If so did you increase the cache maximum limit in Clarisse from 4 GB to something higher ?

Cheers
Kai

Re: vdb fire render time question

Unread postPosted: Thu Sep 12, 2019 2:45 am
by jili0808
mdkai wrote:Hi,

First i suggest you test the bandwidth of your setup, caches have to be loaded.
If you use 5 sequences as offset and a single frame is about 1GB it take a 5GB transfer minimum per frame. Thats is not so much overall and rendering should still be fast enough.

Second, is the machine identical to the one you render local ? Are textures located on your machine or on a server ?
Did you use tx with streaming texture file nodes ? If so did you increase the cache maximum limit in Clarisse from 4 GB to something higher ?

Cheers
Kai


Bandwidth is the same. Why does it affect Clarisse so much and Houdini so little?
What special settings does Clarisse need?

The rendering machine is the same. The difference test is that one cache is stored locally and the other is stored on another machine.
no textures.