POV-Ray : Newsgroups : povray.documentation.inbuilt : Default values in v3.8.0 : Default values in v3.8.0 Server Time
6 Dec 2021 07:06:31 EST (-0500)
  Default values in v3.8.0  
From: clipka
Date: 19 Sep 2018 16:46:58
Message: <5ba2b5c2$1@news.povray.org>
In POV-Ray v3.8.0, default values will be chaned as follows:


- The default pigment is now plain white (rgb <1,1,1>) instead of black.

- The `ambient` setting now defaults to zero instead of 0.1.

- The camera `right` vector length now defaults to the output image
aspect ratio (presuming square pixels; for example, at 1280x1024 the
vector will have a length of 1,25) instead of 1.33. The rules governing
the direction of the vector remain unaffected.


The new defaults require that the language version is explicitly set to
3.8 or higher via the `#version` directive, the `Version=n.n` INI
setting or the `+MVn.n` command-line option, otherwise POV-Ray will fall
back to legacy defaults for backwards compatibility.

The `#version` directive can be used to switch back and forth between
the defaults, as long as no explicit `default` statement is specified.
However, as soon as the first `default` statement is encountered, any
subsequent `#version` directives that would normally affect the defaults
will instead just cause a warning.


For example, consider the following scene:

    #version 3.7;
    #declare LegacyTexture = texture { ... }
    #version 3.8;
    #declare ModernTexture = texture { ... }
    default { pigment { color rgb <1,0,0> } }
    #version 3.7;
    #declare OtherTexture = texture { ... }

The first `#version` directive switches to v3.7 defaults, so if
`LegacyTexture` does not explicitly specify an ambient value, it will
have an ambient value of 0.1.

The second `#version` directive switches to v3.8 defaults, so if
`ModernTexture` does not explicitly specify an ambient value, it will
have an ambient value of zero.

The thirst `#version` directive just creates a warning, because the
earlier `default` statement has "locked" the v3.8 defaults (overriding
the pigment in the process)., so if `OtherTexture` does not explicitly
specify an ambient value, it will also have an ambient value of zero.


---------------------------------------------------------------------

Notes NOT intended for the docs:

- The current v3.8.0-alpha releases do not yet allow switching back and
forth between defaults after the first `#version` statement; this will
be changed in the next development releases.

- As soon as that behaviour is released, users may experience lots of
warnings regarding `#version` and `default` in standard include files.
This is to be expected for any v3.8 scenes that place a `default`
statement before the standard include files, and will be fixed later
(probably with the first beta) by changes to the standard include files.


Post a reply to this message

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