POV-Ray : Newsgroups : povray.general : Windows beta 37 Server Time
26 Nov 2024 16:30:20 EST (-0500)
  Windows beta 37 (Message 1 to 9 of 9)  
From: Chris Cason
Subject: Windows beta 37
Date: 26 Apr 2010 12:39:36
Message: <4bd5c1c8@news.povray.org>
A windows binary for beta 37 is up at http://www.povray.org/beta/,
source is available via http://www.povray.org/beta/source/.

--------------------------------------------
Changes between 3.7.beta.35 and 3.7.beta.37
--------------------------------------------

  Partially fixed the following bugs:

    http://bugs.povray.org/task/81   FS#81  (sphere_sweep generating artifacts)
    http://bugs.povray.org/task/93   FS#93  (Photons are unnaturally amplified by
pass_through objects)
    http://bugs.povray.org/task/102  FS#102 (#switch directive parsing problem)

  Fixed the following bugs:

    http://bugs.povray.org/task/67   FS#67  (Alpha channel in image map is ignored for
shadows)
    http://bugs.povray.org/task/78   FS#78  (Wrong rendering of BeamTest-Scene in
3.7.beta.35a)
    http://bugs.povray.org/task/83   FS#83  (Redundant code in pvengine.cpp) (removed
apparently duplicate 
    http://bugs.povray.org/task/88   FS#88  (File output code does not properly handle
negative color values)
    http://bugs.povray.org/task/89   FS#89  (PPM output garbled for bit depths other
than 8 bits)
    http://bugs.povray.org/task/90   FS#90  (POV-Ray accepts additional patterns after
(slope))
    http://bugs.povray.org/task/92   FS#92  (Sphere_Sweep Bug)
    http://bugs.povray.org/task/94   FS#94  (Unexpected refraction angle in interfaces
with changing IOR <> 1.0)
    http://bugs.povray.org/task/95   FS#95  (Photons are over-attenuated by
semi-transparent surfaces)
    http://bugs.povray.org/task/97   FS#97  (Forward-slash pathnames not fully
supported in Windows version)
    http://bugs.povray.org/task/100  FS#100 (cutaway_textures)

  Implemented the following enhancement requests:

    http://bugs.povray.org/task/84    FS#84  (A for-loop construct)
  
  Photon changes
  --------------
	
    Refer FS#93 (Photons are unnaturally amplified by pass_through objects)
	
    As the error is also present in POV-Ray 3.6, behavior has necessarily 
    changed with this fix; pass_through objects will now affect the color of 
    photons on their way to their target, according to pigment filter/transmit, 
    interior fade, and media (which implies that opaque objects will block 
    photons even when declared pass_through); it needs to be seen whether this 
    new behavior will be accepted by the users, or whether some additional 
    mechanism will have to be implemented to choose between old and new 
    behavior for compatibility with legacy scenes. At present, behavior can 
    only be changed at compile time with the preprocessor defines
PT_FILTER_BEFORE_TARGET
    and PT_AMPLIFY_BUG in photons.cpp.
	
  Radiosity changes
  -----------------
	
    When a new sample has been gathered after sample lookup returned insufficient
    samples, sample lookup is no longer run again; instead, the new sample is
    interpolated with the results of the earlier lookup.
	
    The actual number of samples required to satisfy the reuse_count setting is 
    now influenced by sample quality, with high-quality samples reducing the 
    effective number of samples required (down to 1/4 of the parameter value in 
    extreme cases) and low-quality samples increasing the number. Note that this 
    may change the balance between speed and quality for some scenes.

    The maximum_reuse parameter now governs the maximum effective radius of a 
    sample more directly.

    Trimmed down radiosity sample memory footprint a bit.

    Improved pretrace "pixel" coordinates computation

  New features
  ------------
  
    AOI Pattern:

      Implemented AOI pattern (thanks to Grimbert Jerome for most of the code); 
      the syntax is as follows:
	
        pigment { aoi pigment_map { ... } }
        normal { aoi normal_map { ... } }
        texture { aoi texture_map { ... } }
	
      The pattern gives a value proportional to the angle between the ray and the 
      surface; for consistency with the slope pattern, values range from 0.5 where 
      ray is tangent to the suftace, to 1.0 where perpendicular; in practice, 
      values below 0.5 may occur in conjunction with smooth triangles or meshes.
	
      (Note that this differs from the current MegaPOV implementation, where the
values
      range from 0.5 down to 0.0 instead.)
	
    Slope Pattern extension:

      Extended slope pattern to specify a reference point instead of a direction; 
      the new syntax is as follows:
	
        slope { point_at <ReferencePoint> [, Lo_Slope, Hi_Slope] }
	
      (Note that this variant currently does *not* allow for the "altitude" keyword to
be used.)
	
      The functionality is similar to MegaPOV's "aoi <ReferencePoint>" pattern, 
      except that the values are reversed, i.e. range from 0.0 for surfaces 
      facing away from the point in question, to 1.0 for surfaces facing towards 
      that point; thus, "slope { <Vector> }" and "slope { point_at 
      <Vector>*VeryLargeNumber }" have virtually the same effect.
	
  Other SDL changes
  -----------------
  
    Modified #break semantics; the #break directive can now be used:

        - anywhere within a #case or #range block, to skip to the end of the 
          #switch directive (previously, #break was only useful right before the next 
          #case, #range or #else directive, to indicate that a slip-through was not 
          desired);

        - anywhere within a loop block (both #while and #for), to preliminarily 
          terminate the loop; and

        - anywhere within a #macro block, to preliminarily terminate the macro.
	
      Example for the use in a loop:
	
        #local R = seed(4711);
        #for (I, 1, 100)
          #if (rand(R) < I/1000)
            #break // terminate loop early
          #end
          #debug concat(str(I,0,0), " iterations and counting\n")
        #end
	
      Where multiple #switch, loop and/or #macro blocks are nested, #break will 
      leave only the innermost of these.

    Implemented a #for loop construct (see FS#84); the following syntax -
	
        #for (Identifier, Start, End [, Step])
          //...
        #end
	
      is now available for simple loops incrementing Identifier from Start to End 
      (inclusive) with the given Step size (default: +1.0). Basically, it works the 
      same as the classic #while pattern:
	
        #local Identifier = Start;
        #while (Identifier <= End)
          //...
          #local Identifier = Identifier + Step;
        #end
	
      Some additional notes:

        - If Step is negative, comparison will be automatically adjusted to match a 
          "countdown" pattern.

        - Start, End and Step are evaluated only *once*.
  
        - The loop counter is a full-fledged local variable. Any local variable of 
          the same name already defined before the loop *will* be overwritten without 
          warning (note that in the main scene file, all local variables outside of 
          macros are effectively global); inside the loop, any tampering with the 
          variable is possible for effect, as long as it is defined as a local numeric

          variable at the end of each iteration.
  
        - After the loop has terminated, the variable will remain defined, typically 
          holding the value End+Step.
  
        - The loop counter must *not* be an array element.

  Image output changes
  --------------------

    Image file output now uses the GammaCurve mechanism already in use for 
    image file input, to allow for arbitrary transfer functions (e.g. as used by 
    sRGB) in the future.

    Output/histogram file type is now identified by the command line / INI 
    options parser, removing some uglies from the code and allowing for easier 
    maintenance of file type letters.
	
    Radiance HDR image output no longer writes the proprietary GAMMA header field.
  
    PPM image output now supports 16-bit greyscale output (effectively writing a 
    PGM file instead), to be activated via the "Greyscale_Output=on" option or 
    the "+FPg" file type switch.


Post a reply to this message

From: Warp
Subject: Re: Windows beta 37
Date: 26 Apr 2010 13:29:21
Message: <4bd5cd71@news.povray.org>
In povray.general Chris Cason <del### [at] deletethistoopovrayorg> wrote:
>       Implemented AOI pattern (thanks to Grimbert Jerome for most of the code); 
>       the syntax is as follows:
>         
>         pigment { aoi pigment_map { ... } }
>         normal { aoi normal_map { ... } }
>         texture { aoi texture_map { ... } }

  Can a pattern function be created using aoi? In other words,
#declare MyFunc = function { pattern { aoi } };

  If yes, what values will that function return?

  If you #declare a pigment which uses the aoi pattern, what happens if
you evaluate that pigment?

  Is the aoi pattern limited to be used with pigment_map, normal_map and
texture_map, or can it also be used with eg. color_map, slope_map or
density_map?

  Can the aoi pattern be modified with regular pattern modifiers such as
turbulence and warps? What happens if you scale it unevenly or rotate it?

-- 
                                                          - Warp


Post a reply to this message

From: clipka
Subject: Re: Windows beta 37
Date: 26 Apr 2010 14:35:29
Message: <4bd5dcf1$1@news.povray.org>
Am 26.04.2010 19:29, schrieb Warp:

>>          pigment { aoi pigment_map { ... } }
>>          normal { aoi normal_map { ... } }
>>          texture { aoi texture_map { ... } }
>
>    Can a pattern function be created using aoi? In other words,
> #declare MyFunc = function { pattern { aoi } };

No.

>    If you #declare a pigment which uses the aoi pattern, what happens if
> you evaluate that pigment?
>
>    Is the aoi pattern limited to be used with pigment_map, normal_map and
> texture_map, or can it also be used with eg. color_map, slope_map or
> density_map?
>
>    Can the aoi pattern be modified with regular pattern modifiers such as
> turbulence and warps? What happens if you scale it unevenly or rotate it?

Why don't you just give it a try? ;-)

I didn't test the code for such things, but I can guarantee you that it 
was /not/ designed to do anything particularly useful in such situations :-P

 From how I implemented it, the limitations should be the same as for 
the slope pattern:

- eval_pigment should always return 0.0;

- it should work fine with color_map and slope_map as well;

- it should /not/ work with density_map (but the parser will probably 
not give any warning, and instead silently give you whatever density you 
have mapped to 0.0);

- it should ignore any transformations and warps (note that for the 
slope pattern, this is only true if you're not using the altitude feature).


Post a reply to this message

From: Tim Cook
Subject: Re: Windows beta 37
Date: 26 Apr 2010 17:21:51
Message: <4bd603ef@news.povray.org>
Chris Cason wrote:
>     As the error is also present in POV-Ray 3.6, behavior has necessarily 
>     changed with this fix; pass_through objects will now affect the color of 
>     photons on their way to their target, according to pigment filter/transmit, 
>     interior fade, and media (which implies that opaque objects will block 
>     photons even when declared pass_through)

Will a no_photons flag for objects be added, for consistency with 
no_image/no_shadow/no_reflection?

--
Tim Cook
http://empyrean.freesitespace.net


Post a reply to this message

From: clipka
Subject: Re: Windows beta 37
Date: 26 Apr 2010 17:36:06
Message: <4bd60746$1@news.povray.org>
Am 26.04.2010 23:21, schrieb Tim Cook:
> Chris Cason wrote:
>> As the error is also present in POV-Ray 3.6, behavior has necessarily
>> changed with this fix; pass_through objects will now affect the color
>> of photons on their way to their target, according to pigment
>> filter/transmit, interior fade, and media (which implies that opaque
>> objects will block photons even when declared pass_through)
>
> Will a no_photons flag for objects be added, for consistency with
> no_image/no_shadow/no_reflection?

I guess that will depend on user feedback. Implementation of such a flag 
should be no big deal, but I currently don't see what it would be good 
for; it would also open up the question how the flag should actually 
work: For instance, should it affect only interaction with photons 
/before/ the target, or also /after/ the target?


Post a reply to this message

From: Tim Cook
Subject: Re: Windows beta 37
Date: 26 Apr 2010 18:11:55
Message: <4bd60fab@news.povray.org>
clipka wrote:
> I guess that will depend on user feedback. Implementation of such a flag 
> should be no big deal, but I currently don't see what it would be good 
> for; it would also open up the question how the flag should actually 
> work: For instance, should it affect only interaction with photons 
> /before/ the target, or also /after/ the target?

I would imagine a no_photons would just make the object not there as far 
as photon calculation is concerned.  The correction noted for 
pass_through for photons doesn't really make much sense to be called 
pass_through, though, if the photons are still being affected by the object.

--
Tim Cook
http://empyrean.freesitespace.net


Post a reply to this message

From: Jim Holsenback
Subject: Re: Windows beta 37
Date: 26 Apr 2010 18:50:57
Message: <4bd618d1$1@news.povray.org>
On 04/26/2010 07:11 PM, Tim Cook wrote:
> The correction noted for
> pass_through for photons doesn't really make much sense to be called
> pass_through, though, if the photons are still being affected by the
> object.

Cool ... then I'm not the only one. I was struggling with how to add
changes into 3.7 documentation for this and all I could come up with was
WTF!!! Needless to say I put it on my to-do list and moved onto
something else. I've got a feeling that this is a WIP and anything that
I would have been able to come up with is going to change ;-)

Jim


Post a reply to this message

From: Tim Cook
Subject: Re: Windows beta 37
Date: 26 Apr 2010 18:58:24
Message: <4bd61a90$1@news.povray.org>
Jim Holsenback wrote:
> Cool ... then I'm not the only one. I was struggling with how to add
> changes into 3.7 documentation for this and all I could come up with was
> WTF!!! Needless to say I put it on my to-do list and moved onto
> something else. I've got a feeling that this is a WIP and anything that
> I would have been able to come up with is going to change ;-)

Does pass_through simply make photons not reflect or refract, but remain 
affected by all other object properties?  If so, that's a fairly easy 
thing to explain in the documentation, but an additional no_photons flag 
in that case would still be useful.  :)

--
Tim Cook
http://empyrean.freesitespace.net


Post a reply to this message

From: Jim Holsenback
Subject: Re: Windows beta 37
Date: 26 Apr 2010 19:13:49
Message: <4bd61e2d@news.povray.org>
On 04/26/2010 07:58 PM, Tim Cook wrote:
> Does pass_through simply make photons not reflect or refract, but remain
> affected by all other object properties? 

Ah yes ... that was my take on it, but hey it's been a long day and more
coffee isn't an option. Perhaps it will make more sense with a little
shut-eye.

Jim


Post a reply to this message

From: clipka
Subject: Re: Windows beta 37
Date: 26 Apr 2010 20:13:45
Message: <4bd62c39$1@news.povray.org>
Am 27.04.2010 00:51, schrieb Jim Holsenback:
> On 04/26/2010 07:11 PM, Tim Cook wrote:
>> The correction noted for
>> pass_through for photons doesn't really make much sense to be called
>> pass_through, though, if the photons are still being affected by the
>> object.
>
> Cool ... then I'm not the only one. I was struggling with how to add
> changes into 3.7 documentation for this and all I could come up with was
> WTF!!! Needless to say I put it on my to-do list and moved onto
> something else. I've got a feeling that this is a WIP and anything that
> I would have been able to come up with is going to change ;-)

As mentioned, "it needs to be seen whether this new behavior will be 
accepted by the users"...

Okay, first feedback sounds pretty much like it won't be ;-)

Back to the drawing board... suggestions on this whole smash, anyone?


One idea I had already pondered was to allow for "pass_through" to 
optionally be followed by "filter" to indicate that the object should 
still attenuate light passing through.

Note that currently non-pass_through objects block photons /entirely/ 
when encountered before the target, even if they have their pigment set 
to "rgbt 1".


Post a reply to this message

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