POV-Ray : Newsgroups : povray.unofficial.patches : MegaPOV 1.2.1 and reflection blur Server Time
13 May 2024 22:45:26 EDT (-0400)
  MegaPOV 1.2.1 and reflection blur (Message 11 to 12 of 12)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Warp
Subject: Re: MegaPOV 1.2.1 and reflection blur
Date: 14 Jan 2006 17:23:24
Message: <43c979dc@news.povray.org>
zuegs <zue### [at] bluewinch> wrote:
> I tried the blur-trick and it works. At least for small blurring with
> BlurAmount < 1. But if I like to do really strong blurred surfaces (big
> BlurAmount ex: > 5) then the result tend to look as fully reflectiv (like
> BlurAmount = 0) which seems to come from the self-reflection effect.

  Did you scale the normals very large or very small?

-- 
                                                          - Warp


Post a reply to this message

From: zuegs
Subject: Re: MegaPOV 1.2.1 and reflection blur
Date: 14 Jan 2006 18:25:00
Message: <web.43c9879ee28d2549504224b0@news.povray.org>
Warp <war### [at] tagpovrayorg> wrote:
>
>   Did you scale the normals very large or very small?
>
> --
>                                                           - Warp

Hi Warp

Many thanks for reply.
I tried large and small normals. The effect happens with flat viewing angles
(ex: at border of spheres) and looks like varnished.

In following source-code this happens on line 15 when "reflected inside rear
virtual surface, Reflect Ray using Raw_Normal". As Raw_Normal is
indipendent of blur normals the reflection looks unblurred :(

Isn't there another possibility to deal this condition... as doing same as
on line 23 -> double reflection...

Thanks for all comments
regards
zuegs

-----------
01    VDot(n,Ray->Direction, Jitter_Normal);
02    n *= -2.0;
03    VAddScaled(New_Ray.Direction, Ray->Direction, n, Jitter_Normal);
04    /* Nathan Kopp & CEY 1998 - Reflection bugfix
05      if the new ray is going the opposet direction as raw normal, we
06      need to fix it.
07      */
08    VDot(n, New_Ray.Direction, Jitter_Raw_Normal);
09    if (n < 0.0)
10    {
11      /* It needs fixing.  Which kind? */
12      VDot(n2,New_Ray.Direction,Jitter_Normal);
13      if (n2 < 0.0)
14      {
15        /* reflected inside rear virtual surface. Reflect Ray using
16 Raw_Normal */
17        VDot(n,Ray->Direction,Jitter_Raw_Normal);
18        n *= -2.0;
19        VAddScaled(New_Ray.Direction, Ray->Direction,
n,Jitter_Raw_Normal);
20      }
21      else
22      {
23        /* Double reflect NRay using Raw_Normal */
24        /*VDot(n,New_Ray.Direction,Jitter_Raw_Normal); - kept the old n
25 around */
26        n *= -2.0;
27        VAddScaledEq(New_Ray.Direction, n, Jitter_Raw_Normal);
28      }
29    }
30    VNormalizeEq(New_Ray.Direction);
-------------


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

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