POV-Ray : Newsgroups : povray.general : Frame-Dependant Antialias-Values in an Animation Server Time
5 Jul 2024 11:44:12 EDT (-0400)
  Frame-Dependant Antialias-Values in an Animation (Message 1 to 9 of 9)  
From: Sereib
Subject: Frame-Dependant Antialias-Values in an Animation
Date: 8 Jul 2014 09:15:00
Message: <web.53bbee14fb5e560153733660@news.povray.org>
Hi,

I have an animation where it would be helpful to define different
Antialias-values (Sampling_Method, Antialias_Depth, Antialias_Threshold) for
different frames. Without going much into detail: Only some parts of the
animation require rather "good" Antialias-values to look satisfying, which - if
applied for all frames - would make the rendering time for the entire animation
much too long.

Of course I could stop the rendering several times and adjust the ini-file, but
is there any other way?

Can I set frame-dependant antialias-options in the ini- or scene file, such as:

#if(frame_number < 240)
  Antialias_Depth=3
#else
  Antialias_Depth=2
#end

or any other idea?

Thank you!


Post a reply to this message

From: scott
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 8 Jul 2014 09:33:49
Message: <53bbf33d$1@news.povray.org>
> Of course I could stop the rendering several times and adjust the ini-file, but
> is there any other way?
>
> Can I set frame-dependant antialias-options in the ini- or scene file, such as:
>
> #if(frame_number < 240)
>    Antialias_Depth=3
> #else
>    Antialias_Depth=2
> #end
>
> or any other idea?

You could write a simple script in your favourite language (even POV?) 
to create a separate ini file for every frame. Then just queue up all 
the ini files to render.


Post a reply to this message

From: Sereib
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 8 Jul 2014 10:05:01
Message: <web.53bbfa1cf8c7b228314e88a40@news.povray.org>
Hi,

thank yo for your fast reply!

You mean, I let my scene-file write an ini-file which is used for the next
frame? Does POV-Ray check each time (before rendering the next frame) if a new
(changed) ini-file exists? Or does it just read the ini-file once for the first
frame, and then work through all frames with these settings?

Or maybe I did you understand you suggestion right?

scott <sco### [at] scottcom> wrote:
> > Of course I could stop the rendering several times and adjust the ini-file, but
> > is there any other way?
> >
> > Can I set frame-dependant antialias-options in the ini- or scene file, such as:
> >
> > #if(frame_number < 240)
> >    Antialias_Depth=3
> > #else
> >    Antialias_Depth=2
> > #end
> >
> > or any other idea?
>
> You could write a simple script in your favourite language (even POV?)
> to create a separate ini file for every frame. Then just queue up all
> the ini files to render.


Post a reply to this message

From: scott
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 8 Jul 2014 11:40:57
Message: <53bc1109$1@news.povray.org>
> You mean, I let my scene-file write an ini-file which is used for the next
> frame? Does POV-Ray check each time (before rendering the next frame) if a new
> (changed) ini-file exists? Or does it just read the ini-file once for the first
> frame, and then work through all frames with these settings?

I'm not sure if that will work or not.

> Or maybe I did you understand you suggestion right?

I meant write out all ini files, one for every frame, before you start 
rendering (using a separate POV file, or another language if you 
prefer). In that code you can select the antialias parameters based on 
frame number.

So you will end up with a folder with one copy of your scene file(s), 
and a *.ini file for every frame (eg frame0001.ini, frame0002.ini, etc). 
ini files are small so it shouldn't matter to have one for each frame. 
You can then queue up all the ini files to render in sequence.


Post a reply to this message

From: Alain
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 8 Jul 2014 23:03:06
Message: <53bcb0ea@news.povray.org>

> Hi,
>
> I have an animation where it would be helpful to define different
> Antialias-values (Sampling_Method, Antialias_Depth, Antialias_Threshold) for
> different frames. Without going much into detail: Only some parts of the
> animation require rather "good" Antialias-values to look satisfying, which - if
> applied for all frames - would make the rendering time for the entire animation
> much too long.
>
> Of course I could stop the rendering several times and adjust the ini-file, but
> is there any other way?
>
> Can I set frame-dependant antialias-options in the ini- or scene file, such as:
>
> #if(frame_number < 240)
>    Antialias_Depth=3
> #else
>    Antialias_Depth=2
> #end
>
> or any other idea?
>
> Thank you!
>
>

Often, a scene, or frame, that don't need high antialias settings also 
have lower contrasts or softer boundaries. That mean that, even when 
using high or very high quality antialias options, if you don't reatch 
the antialias thresshold, then no antialiasing will be done. Just don't 
use +aa0.0...

Another option to consider is to use antialias method 2 (use +am2 on the 
command line or in the .ini file), or adaptive, recursive subsampling. 
Using that, if, after the first level of recursion you are under the 
thresshold, no further subsampling will be done. Even if you go down to 
the final recursion level, it will only be done for a small part of the 
pixel usualy saving you lot of rendering time.



Alain


Post a reply to this message

From: Warp
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 10 Jul 2014 03:50:59
Message: <53be45e3@news.povray.org>
The short answer is that unfortunately there's currently no way in
POV-Ray itself to do that.

-- 
                                                          - Warp


Post a reply to this message

From: Anthony D  Baye
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 10 Jul 2014 14:05:01
Message: <web.53bed519f8c7b22877ac193c0@news.povray.org>
Warp <war### [at] tagpovrayorg> wrote:
> The short answer is that unfortunately there's currently no way in
> POV-Ray itself to do that.
>
> --
>                                                           - Warp


You could make a simple batch script to render the same file X number of times:

A.bat -- or A.sh, depending on your system.
for X times do:
   if file B.<foo> exists do
       ./B.bat -- or ./B.sh...
   else
       povray <initialargs>
   end
end

B.bat -- ...
   // <iterationcount>
   povray <args>

and each time your file is run, your povray file checks the contents of file B
and rewrites it with an updated iteration count and a new command line.

if file B doesn't exist, assume the count is 0 and create a new file.  You could
do this in the same step as the overwrite procedure, since overwriting and
creating a new file are done the same way.

of course, you'd have to simulate the clock inside your pov file, because you
wouldn't be able to use the built-in animation arguments.

Just remember to
Regards,
A.D.B.


Post a reply to this message

From: Sereib
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 17 Jul 2014 03:15:00
Message: <web.53c77683f8c7b22887d075460@news.povray.org>
Dear all,

thank you for your sugegstions! Please let me comment on them in the following:

1)

The suggestion to use "intelligent" antialias-options, so each frame only takes
the rendering time really required is difficult for my animation. This clip
starts with a huge number of particles in front of a black background, which -
at the beginning of the animation - are such far away from the camera that their
visible size is much less than the size of a pixel in the animation. So all
particles together should appear as a kind of fog. In order to avoid flickering
in the animation which would stem from the fact, that most of the rays don't hit
the particles, but sometimes incidentally do, I need to use these values:

Sampling_Method=2
Antialias_Depth=3
Antialias_Threshold=0

The zero-threshold is required to force POV-Ray to apply many rays even if the
brightness difference between the test rays is zero, since most test rays hit
the black background, and only a very small fraction would hit the particle
inside this pixel. Or do you have a better idea? Such slow antialias-options
would strongly slow down the rendering in the ongoing animation, when big
isosurfaces dominate the scene, which could perfectly and much faster be
rendered with e. g.

Sampling_Method=1
Antialias_Depth=2
Antialias_Threshold=0.75

2) Writing different ini-files will work, but is not a very "smart" way

3) What about the suggestion, that I can put the commands of the ini-file
alternatively into the scene-file, such as:

ini_settings{Sampling_Method=2 Antialias_Depth=3
Antialias_Threshold=frame_number/1000}

Would this be an idea for future development?


Post a reply to this message

From: Alain
Subject: Re: Frame-Dependant Antialias-Values in an Animation
Date: 17 Jul 2014 13:11:44
Message: <53c803d0$1@news.povray.org>

> Dear all,
>
> thank you for your sugegstions! Please let me comment on them in the following:
>
> 1)
>
> The suggestion to use "intelligent" antialias-options, so each frame only takes
> the rendering time really required is difficult for my animation. This clip
> starts with a huge number of particles in front of a black background, which -
> at the beginning of the animation - are such far away from the camera that their
> visible size is much less than the size of a pixel in the animation. So all
> particles together should appear as a kind of fog. In order to avoid flickering
> in the animation which would stem from the fact, that most of the rays don't hit
> the particles, but sometimes incidentally do, I need to use these values:
>
> Sampling_Method=2
> Antialias_Depth=3
> Antialias_Threshold=0
>
> The zero-threshold is required to force POV-Ray to apply many rays even if the
> brightness difference between the test rays is zero, since most test rays hit
> the black background, and only a very small fraction would hit the particle
> inside this pixel. Or do you have a better idea? Such slow antialias-options
> would strongly slow down the rendering in the ongoing animation, when big
> isosurfaces dominate the scene, which could perfectly and much faster be
> rendered with e. g.
>
> Sampling_Method=1
> Antialias_Depth=2
> Antialias_Threshold=0.75
>
> 2) Writing different ini-files will work, but is not a very "smart" way
>
> 3) What about the suggestion, that I can put the commands of the ini-file
> alternatively into the scene-file, such as:
>
> ini_settings{Sampling_Method=2 Antialias_Depth=3
> Antialias_Threshold=frame_number/1000}
>
> Would this be an idea for future development?
>
>
>
>
>

My proposition:

When your particles are very far and visualy very small, replace them 
with some scattering media with extinction 0. After all, at that moment, 
your particles are suposed to act as such.


As the particles get closer, progressively reduce the media density and 
introduce the particles that are the closest. It can be done by placing 
them in an union and apply a gradient pigment, properly scalled, that 
goes from rgbt 1 to the actual pigment that you use now. Make the 
particles hollow so that the media can exist inside of them. This will 
prevent most flickering. Use a container for the media. Use some 
pattern, like spherical, to modulate your media.

Once all particles are in the visible range, remove the media whitch 
should have it's density reduced to zero by that time.

Use:
Sampling_Method=2
Antialias_Depth=3
Antialias_Threshold=0.2
or +a0.2 +am2 +r3
for the whole animation.


Alain


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.