POV-Ray : Newsgroups : povray.advanced-users : Micro- vs. Macronormals Server Time
3 Jul 2024 05:49:36 EDT (-0400)
  Micro- vs. Macronormals (Message 6 to 15 of 15)  
<<< Previous 5 Messages Goto Initial 10 Messages
From: clipka
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 12:05:01
Message: <web.49b93269d9a6b98f708085d0@news.povray.org>
"Cousin Ricky" <ric### [at] yahoocom> wrote:
> "clipka" <nomail@nomail> wrote:
> > Just of curiosity: Is there any benefit of the "big normals" approach at blurred
> > reflections over the "micronormals" approach?
>
> Pardon my ignorance, but what is the "big normals" approach?

To generate blurred reflections or refractions with standard POV, the most
common approach is to define *some* normal pertubation on the surface, and make
sure POV renders each pixel multiple times with differently pertubed normal,
averaging the results.

The "micronormals" approach uses a very fine-grained bump map for this purpose -
smaller than a pixel in size. Rendering such a scene with strong anti-aliasing
automatically causes POV to sample each pixel multple times and also take care
of the averaging, with the slight offsets in the ray resulting in different
pertubation.

The "big normals" approach instead uses very large-scale bump maps - e.g. larger
than the whole picture. Multiple sampling is achieved by rendering the shot
multiple times, while the variations in pertubation are generated by
translating the bump map by a (large) random offset. Averaging is done in a
post-processing step.


Post a reply to this message

From: Warp
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 12:23:53
Message: <49b93718@news.povray.org>
clipka <nomail@nomail> wrote:
> The "big normals" approach instead uses very large-scale bump maps - e.g. larger
> than the whole picture. Multiple sampling is achieved by rendering the shot
> multiple times, while the variations in pertubation are generated by
> translating the bump map by a (large) random offset. Averaging is done in a
> post-processing step.

  I think you should read this:

http://tag.povray.org/povQandT/languageQandT.html#blurredreflection

-- 
                                                          - Warp


Post a reply to this message

From: clipka
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 14:30:00
Message: <web.49b9537bd9a6b98f708085d0@news.povray.org>
Warp <war### [at] tagpovrayorg> wrote:
> clipka <nomail@nomail> wrote:
> > The "big normals" approach instead uses very large-scale bump maps - e.g. larger
> > than the whole picture. Multiple sampling is achieved by rendering the shot
> > multiple times, while the variations in pertubation are generated by
> > translating the bump map by a (large) random offset. Averaging is done in a
> > post-processing step.
>
>   I think you should read this:
>
> http://tag.povray.org/povQandT/languageQandT.html#blurredreflection

Did already a while ago.

The averaged textures approach didn't stick though. Maybe because it's *fatal*
if you have a lot of reflecting surfaces: The rays POV needs to trace will
explode exponentially with each reflection.

In contrast, if you do the averaging via multiple renders + post-processing, the
number of rays is only increased by a constant factor; at each reflection, the
number of rays multiplies only by the same amount as if the scene used sharp
reflections.

If you let adaptive Anti-aliasing do the job, you still can go with a relatively
low number of rays per pixel in areas that don't have blurred reflective
surfaces. Let alone that you'll usually use Anti-aliasing (or focal blur) for a
final shot anyway.

After the first blurred reflection, there's actually not much benefit in
multiplying the number of rays even more.


Post a reply to this message

From: Alain
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 14:38:59
Message: <49b956c3$1@news.povray.org>
Cousin Ricky nous illumina en ce 2009-03-12 08:13 -->
> "clipka" <nomail@nomail> wrote:
>> Just of curiosity: Is there any benefit of the "big normals" approach at blurred
>> reflections over the "micronormals" approach?
> 
> Pardon my ignorance, but what is the "big normals" approach?
> 
> 

The "big normals" is done by averaging several normals that are scaled to a 
lagre value. Each averaged normal pattern is randomly translated by an egualy 
large value. A typical scale and translations is around 1000 to 1000000.
Benefit: don't need antialiasing. Often give beter results without antialiasing.
But: Often requires the averaging of more normals, often the alowed maximum of 
255 in a normal_map.

The micronormal use an average of normal patterns scaled very small and 
translated by a tiny random value. A typical scale and translate is around 0.001 
or smaller.
Benefit: usualy require the averaging of only a few normals, in some cases, only 
one normal can be used.
But: Work beter when using at least some antialiasing or the image can looks to 
grainy.

-- 
Alain
-------------------------------------------------
Don't waste your time on a man/woman, who isn't willing to waste their time on you.


Post a reply to this message

From: Alain
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 17:37:31
Message: <49b9809b$1@news.povray.org>
clipka nous illumina en ce 2009-03-12 14:24 -->
> Warp <war### [at] tagpovrayorg> wrote:
>> clipka <nomail@nomail> wrote:
>>> The "big normals" approach instead uses very large-scale bump maps - e.g. larger
>>> than the whole picture. Multiple sampling is achieved by rendering the shot
>>> multiple times, while the variations in pertubation are generated by
>>> translating the bump map by a (large) random offset. Averaging is done in a
>>> post-processing step.
>>   I think you should read this:
>>
>> http://tag.povray.org/povQandT/languageQandT.html#blurredreflection
> 
> Did already a while ago.
> 
> The averaged textures approach didn't stick though. Maybe because it's *fatal*
> if you have a lot of reflecting surfaces: The rays POV needs to trace will
> explode exponentially with each reflection.
> 
> In contrast, if you do the averaging via multiple renders + post-processing, the
> number of rays is only increased by a constant factor; at each reflection, the
> number of rays multiplies only by the same amount as if the scene used sharp
> reflections.
> 
> If you let adaptive Anti-aliasing do the job, you still can go with a relatively
> low number of rays per pixel in areas that don't have blurred reflective
> surfaces. Let alone that you'll usually use Anti-aliasing (or focal blur) for a
> final shot anyway.
> 
> After the first blurred reflection, there's actually not much benefit in
> multiplying the number of rays even more.
> 
> 
> 
A work around for that problem:
For the objects that have blured reflection, make two copies.
The first one will have the blured reflection AND the no_reflection attribute.
The second will only have normal relfection AND no_image.

That way, the object with blured reflection will not show in the reflections, 
but the one with no_image will.

-- 
Alain
-------------------------------------------------
Congregationalist: Shit that happens to one person is just as good as shit that 
happens to another.


Post a reply to this message

From: clipka
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 18:25:00
Message: <web.49b98b10d9a6b98f708085d0@news.povray.org>
Alain <ele### [at] netscapenet> wrote:
> A work around for that problem:

(Hum... such things keep making me go, "why can't POV support this natively
instead of all these work-arounds?" I mean, it's not like this was something
exotic. Even it was just an SDL statement that under the hood would use the
same work-arounds, I'd still appreciate it.)


Post a reply to this message

From: Edouard Poor
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 20:40:01
Message: <web.49b9aafcd9a6b98506891550@news.povray.org>
"clipka" <nomail@nomail> wrote:
>
> > http://tag.povray.org/povQandT/languageQandT.html#blurredreflection
>
> [Read that] already a while ago.
>
> The averaged textures approach didn't stick though. Maybe because it's *fatal*
> if you have a lot of reflecting surfaces: The rays POV needs to trace will
> explode exponentially with each reflection.

That was exactly the problem I found.

> In contrast, if you do the averaging via multiple renders + post-processing, the
> number of rays is only increased by a constant factor; at each reflection, the
> number of rays multiplies only by the same amount as if the scene used sharp
> reflections.

And that's the same answer I came up with, and I also use the multiple passes to
do anti-aliasing, focal blur, soft shadows, lightdome IBL lighting and I'm just
starting to try putting media in there too. And the render time stays almost
constant with each new effect, as the "quality" for each comes from the
multiple renders you are already committed to.

> After the first blurred reflection, there's actually not much benefit in
> multiplying the number of rays even more.

If the POV team wants to keep the current way of allowing blurred reflection,
then I would suggest having some sort of reflection control to say how many
rays are propagated at each reflection. That way you could have 100 rays at the
first object, but only the first 10 of those reflect themselves. Sort of a
max_trace that varies based on whether the ray is reflection 1, 10 or 100.

Cheers,
Edouard.


Post a reply to this message

From: Edouard Poor
Subject: Re: Micro- vs. Macronormals
Date: 12 Mar 2009 20:45:00
Message: <web.49b9ab9bd9a6b98506891550@news.povray.org>
"clipka" <nomail@nomail> wrote:
> Alain <ele### [at] netscapenet> wrote:
> > A work around for that problem:
>
> (Hum... such things keep making me go, "why can't POV support this natively
> instead of all these work-arounds?" I mean, it's not like this was something
> exotic. Even it was just an SDL statement that under the hood would use the
> same work-arounds, I'd still appreciate it.)

Megapov added blurred reflection via a keyword a long time ago, but the patch
was never rolled back into POV as the averaged normals/textures trick did more
or less the same thing. Or so I've read - someone can correct me if I've
understood that wrong.

Cheers,
Edouard.


Post a reply to this message

From: Christian Froeschlin
Subject: Re: Micro- vs. Macronormals
Date: 13 Mar 2009 12:49:04
Message: <49ba8e80$1@news.povray.org>
clipka wrote:

> Even it was just an SDL statement that under the hood would use the
> same work-arounds, I'd still appreciate it.)

Furthermore, this would allow opimizations such as specifying
a max_trace_level for the blurred reflection (similar to the
corresponding cut-off in Mega-POVs light source), to prevent
excessive render times with little effect when the scene
contains other reflective objects.


Post a reply to this message

From: Warp
Subject: Re: Micro- vs. Macronormals
Date: 14 Mar 2009 11:44:55
Message: <49bbd0f7@news.povray.org>
Edouard Poor <pov### [at] edouardinfo> wrote:
> If the POV team wants to keep the current way of allowing blurred reflection,
> then I would suggest having some sort of reflection control to say how many
> rays are propagated at each reflection.

  That sounds like something which could be done easily in POV-Ray 4 with
its new scripting/shader language.

-- 
                                                          - Warp


Post a reply to this message

<<< Previous 5 Messages Goto Initial 10 Messages

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