POV-Ray : Newsgroups : povray.general : Texture maps different in 3.5 even when using #version : Re: Texture maps different in 3.5 even when using #version Server Time
4 Aug 2024 22:18:23 EDT (-0400)
  Re: Texture maps different in 3.5 even when using #version  
From: Not My Real Email Address
Date: 4 Feb 2003 08:08:08
Message: <3e3fbb38@news.povray.org>
/*
On Sun, 02 Feb 2003 01:13:40 +1100, Thorsten Froehlich wrote:

> In article <3e3bbb51@news.povray.org> , "Tim Nikias" <tim### [at] gmxde>
> wrote:
> 
>> AFAIK, the noise-generator was changed from 3.1 to 3.5, not to mention
>> the new one added to avoid some "plateaus" in number-distribution or
>> what-not. I'm not so sure about thise topic, but I DO know that the new
>> noise-generator is default in 3.5, and AFAIK you have to set that
>> manually to overcome the problem, just a #version won't help.
> 
> Indeed.  Reading section "2.6.14 Changed features that may 'break' old
> scenes" in the manual explains all this.
> 
>     Thorsten

Sorry in advance for the rude tone of this post.

1) I am not inclined to ignore the documentation. The documentation does
not 'explain all this' ...

    2.6.14  Changed features that may 'break' old scenes

    ...

    Noise:
    New noise functions have been added in POV-Ray 3.5. Noise functions 
    are internaly used in patterns. The default function in 3.5 is not 
    the same as it was in 3.1 and earlier. This may affect the appearence
    of textures in old scenes.
    Solution: put noise_generator 1 in global_settings{}.

    ...

'noise and pigment functions' in the TOC takes me to

    3.6.3.6  noise and pigment functions

    Some of the internal functions have a random or noise-like structure

    Together with the pigment functions they are one of the most powerful
    tools for designing isosurfaces. We can add real surface displacement
    to the objects rather than only normal perturbation known from the 
    normal{} statement.

    The relevant internal functions are:

    * f_noise3d(x,y,z)
      uses the noise generator specified in global_settings{} and 
      generates structures like the bozo pattern.

    ...

The words 'noise generator' above link to

    6.7.12.4  Noise Generators

    There are three noise generators implemented. Changing the 
    noise_generator will change the appearence of noise based patterns, 
    like bozo and granite.

    * noise_generator 1 the noise that was used in POV_Ray 3.1
    * noise_generator 2 'range corrected' version of the old noise, it 
      does not show the plateaus seen with noise_generator 1
    * noise_generator 3 generates Perlin noise

    The default is noise_generator 2

    Note: The noise_generator can also be set in global_settings

    ...

So it looks like indeed the 'noise generator' MAY be the culprit, but
I need to verify what exactly uses these 'noise generator's and what
doesn't.

So I go back to '3.6.3.6  noise and pigment functions' and this time
click on the words 'internal functions'.

    3.6.3.4  internal functions

    There are a lot of internal functions available in POV-Ray. For 
    example a sphere could also be generated with function 
    { f_sphere(x, y, z, 2) } These functions are declared in the 
    functions.inc include file. Most of them are more complicated and 
    it's usually faster to use them instead of a hand coded equivalent.
    See the complete list for details.

    ...

The words 'complete list' are hyperlinked, supposedly to 
povdoc_082.html#target_141 but in fact this is a dead link. It refers to 
the exact paragraph of text that it appears in.

So I am still in the dark of whether the 'noise generator' parameter is
theoretically supposed to fix the problem. But I can tell you it does not
in practice.

And in my opinion, it should NOT be necessary. What is #version 3.0 or
#version 3.1 supposed to do, if not set values like this to the necessary
values to recreate a scene made using a previous version of povray?

So there are three bugs for you for the price of one.

1) documentation: dead link at 'complete list' in paragraph at 
povdoc_082.html#target_141

2) #version does not set correct value of noise_generator in order to 
recreate images from source code created with previous versions of 
povray (if I am to believe what I hear here).

3) povray 3.5 does not recreate image correctly from my source code
generated for previous version of povray (3.0, 3.1-compatible megapov0.5)
even with global_settings { noise_generator 1 }, optionally also with 
#version 3.0 or #version 3.1.


Thanks for replying, I hope this can be easily sorted. Thanks povray team
for many years of joy (and frustration! ;)

I did not bother attaching the output from the changed source, since it
is exactly the same output as generated previously using povray 3.5, but
here below is my source code amended to include the 'noise_generator'
setting, so that you can verify that I have not made a typo.

In fact, it makes no difference whatsoever to the output generated
whether noise_generator is set to 1, 2 or 3, nor whether I remove the
#version directive.

Simeon

*/


/*
I find the following texture renders markedly differently in 3.5 compared
with both 3.0.20-10 debian and megapovplus 0.5.0.2.5a-1, which both
render the images similarly.

I haven't played much with 3.5, but have checked that if I use a plain
pigment it is the same color.

Can someone tell me this is a bug, or is expected behaviour and why?

Simeon
*/

#include "colors.inc"
#version 3.0

//test.pov                  
//bah there is some bug in the 3.5 textures i think         
//Simeon Scott 2003-02-01 ////////////////////////
//Something like a blue agate.
/////////////////////////////


background
  { color White }

global_settings
{
  ambient_light 0.05
  assumed_gamma 1
  noise_generator 1
}

camera
{
  location <0, 0, -3>
  look_at <0, 0, 0>
  scale 0.2
}

light_source
  {  <2, 4, -3> color White scale 0.4 }

#declare Sim_Blue_Agate = texture
{
  waves
  texture_map	
  {
    [  0.15 pigment { color White }        ]
    [  1.0  pigment { color <0, 0, 0.3> }  ]
  }
  turbulence <10, 10, 0.3>
  scale 0.1
}

sphere
  {  <0, 0, 0>, 0.3	texture {  Sim_Blue_Agate } }


Post a reply to this message

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