POV-Ray : Newsgroups : povray.pov4.discussion.general : Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0) Server Time
2 Dec 2024 17:39:13 EST (-0500)
  Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0) (Message 1 to 7 of 7)  
From: William F Pokorny
Subject: Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0)
Date: 8 Nov 2024 09:33:26
Message: <672e2136@news.povray.org>
The yuqk fork does this and more in the next release.

The global_settings{} noise_generator option was removed. It was never 
truly global! The old set up added overhead for all patterns. It left a 
situation where sharing SDL was exposed to differences in behavior, any 
time the user sharing did not lock all the noise generator use. It 
limited flexibility with options like fog{} and irid{}.

Created a new 'ip_noise_generator' keyword for the patterns / 
perturbations: agate, bozo, bumps, dents, granite, marble, noise_cubed, 
spiral1, spiral2 and wrinkles. Made changes so the two remaining uses of 
'noise_generator' now set values local to 'fog{}' and 'irid{}'. The 
patterns and features mentioned here are the only ones ever affected by 
'noise_generator' settings, global and not

The attached image is a bit contrived, but does show the updated 
capability with fog{} and irid{}.

In the top row changing the irid{} noise generators with 
'noise_generator' keyword. Left to right, 1, 2 and 3.

In the bottom row playing with fog{}'s new 'noise_generator' setting as 
follows left to right. Maybe a Holiday fog on the right...

// Left
//fog { Fog01_wTurb color <0.9,0.9,0.9>}

// Middle
//fog { Fog01_wTurb color <0.9,0.0,0.0> noise_generator 2}
//fog { Fog01_wTurb color <0.0,0.9,0.0> noise_generator 2}
//fog { Fog01_wTurb color <0.0,0.0,0.9> noise_generator 2}

// Right
fog { Fog01_wTurb color <0.9,0.0,0.0> noise_generator 3}
fog { Fog01_wTurb color <0.0,0.9,0.0> noise_generator 2}
fog { Fog01_wTurb color <0.0,0.0,0.9> noise_generator 3}

Bill P.


Post a reply to this message


Attachments:
Download 'ng_yuqk_changes.png' (506 KB)

Preview of image 'ng_yuqk_changes.png'
ng_yuqk_changes.png


 

From: Cousin Ricky
Subject: Re: Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0)
Date: 8 Nov 2024 19:50:00
Message: <web.672ea57f91d2d43c60e0cc3d949c357d@news.povray.org>
William F Pokorny <ano### [at] anonymousorg> wrote:
> The yuqk fork does this and more in the next release.
>
> The global_settings{} noise_generator option was removed. It was never
> truly global! The old set up added overhead for all patterns. It left a
> situation where sharing SDL was exposed to differences in behavior, any
> time the user sharing did not lock all the noise generator use. It
> limited flexibility with options like fog{} and irid{}.
>
> Created a new 'ip_noise_generator' keyword for the patterns /
> perturbations: agate, bozo, bumps, dents, granite, marble, noise_cubed,
> spiral1, spiral2 and wrinkles. Made changes so the two remaining uses of
> 'noise_generator' now set values local to 'fog{}' and 'irid{}'. The
> patterns and features mentioned here are the only ones ever affected by
> 'noise_generator' settings, global and not

Sounds reasonable.  I presume there will be a default 'ip_noise_generator'
value, and a warning for pre-4.0 scenes that use the global_settings()?


Post a reply to this message

From: William F Pokorny
Subject: Re: Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0)
Date: 9 Nov 2024 05:52:39
Message: <672f3ef7$1@news.povray.org>
On 11/8/24 19:45, Cousin Ricky wrote:
>> Created a new 'ip_noise_generator' keyword for the patterns /
>> perturbations: agate, bozo, bumps, dents, granite, marble, noise_cubed,
>> spiral1, spiral2 and wrinkles. Made changes so the two remaining uses of
>> 'noise_generator' now set values local to 'fog{}' and 'irid{}'. The
>> patterns and features mentioned here are the only ones ever affected by
>> 'noise_generator' settings, global and not

> Sounds reasonable.  I presume there will be a default 'ip_noise_generator'
> value, and a warning for pre-4.0 scenes that use the global_settings()?

The 'ip_noise_generator' internal pattern settings are defaulted in yuqk 
- the effective noise generator defaulting(2) is unchanged from v3.8 
beta 2. The pre-yuqk (4.0 playpen) scenes see an error on invalid use of 
'noise_generator' in global_settings{}.

I believe a v4.0 release of POV-Ray should be something new. The yuqk 
fork - as my playpen for v4.0 changes / ideas - is breaking away from 
official POV-Ray v3.8 over time.

Aside: The maintenance of v3.8 and/or v3.7 versions can be continued 
indefinitely - if there is someone to do what would be tedious work over 
time, keeping those versions compiling as environmental stuff changes.

We can maintain the bridge to our old scenes with an officially 
maintained pre-v4.0 version - without crippling v4.0 development with 
the need to stay backward compatible with the old scenes.

Bill P.


Post a reply to this message

From: Bald Eagle
Subject: Re: Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0)
Date: 29 Nov 2024 09:20:00
Message: <web.6749cd1a91d2d43c6563700825979125@news.povray.org>
I had something bouncing around in the back of my head this morning, and since
this thread concerns the PRNG, I'll drop this here.

If you look at my issue here:
https://news.povray.org/web.650c19af5bb87ec31f9dae3025979125%40news.povray.org

this exposed what I believe to be a long-standing non-uniformity in the returned
values from POV-Ray's built-in PRNG.

Have we taken a deep look at the values that the PRNG returns?

I was examining this from a color_map point of view way back, and I think it
would be good to have something uniform/linear unless otherwise specified.

- BW


Post a reply to this message

From: William F Pokorny
Subject: Re: Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0)
Date: 29 Nov 2024 21:08:09
Message: <674a7389$1@news.povray.org>
On 11/29/24 09:18, Bald Eagle wrote:
> I had something bouncing around in the back of my head this morning, and since
> this thread concerns the PRNG, I'll drop this here.
> 
> If you look at my issue here:
> https://news.povray.org/web.650c19af5bb87ec31f9dae3025979125%40news.povray.org
> 
> this exposed what I believe to be a long-standing non-uniformity in the returned
> values from POV-Ray's built-in PRNG.
> 
> Have we taken a deep look at the values that the PRNG returns?
> 
> I was examining this from a color_map point of view way back, and I think it
> would be good to have something uniform/linear unless otherwise specified.
> 
> - BW
> 

Due the noise_generator changes in yuqk, I've been working on 
documentation which I think will help. See the attached text file.

I believe the noise you were trying to use is a smoothed noise which in 
addition to not being locally random at all, roughly follows a normal / 
Gaussian centered distribution over all values returned.

The yuqk fork has implemented a few different methods for uniform random 
noise in a range beyond what we can do with seed() and random() at parse 
time.

Bill P.


Post a reply to this message


Attachments:
Download 'ip_noise_generator.txt' (10 KB)

From: William F Pokorny
Subject: Re: Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0)
Date: 30 Nov 2024 06:20:48
Message: <674af510$1@news.povray.org>
On 11/29/24 21:08, William F Pokorny wrote:
> Due the noise_generator changes in yuqk, I've been working on 
> documentation which I think will help. See the attached text file.

Still refining it, but an updated version of the ip_noise_generator 
documentation is attached.

Bill P.


Post a reply to this message


Attachments:
Download 'ip_noise_generator.txt' (11 KB)

From: William F Pokorny
Subject: Re: Suggest v4.0 drop global noise_generator. (yuqk R17 v0.6.11.0)
Date: 30 Nov 2024 07:14:03
Message: <674b018b@news.povray.org>
On 11/30/24 06:20, William F Pokorny wrote:
> Still refining it, but an updated version of the ip_noise_generator 
> documentation is attached.

I read it again after posting. One of the points I'm still not making 
well in the "background noise" section is that with f_hash() you can 
roll your own uniform random noise code in SDL.

The following code was used to generate the attached image 
(file_gamma=1.0). No AA used on the left image. Heavy method 3 AA used 
in the middle. No AA, but changing the Step value from 0.0 to 0.02 on 
the right.

#include "functions.inc"
#declare Seed00 = 7834.5540283051168443;
#declare Step = 0.00; // 0.02 for right image
#declare Fn00 = function {
     f_hash(
         (
         f_hash(x+pi, Seed00  ,Step,0)+
         f_hash(y+tau,Seed00*2,Step,0)+
         f_hash(z+e,  Seed00*4,Step,0)
         ),
     Seed00,Step,0)
}
#declare Pigm00 = pigment {
     function { Fn00(x,y,z) }
}

Bill P.


Post a reply to this message


Attachments:
Download 'f_hashuniformrndnoise.jpg' (253 KB)

Preview of image 'f_hashuniformrndnoise.jpg'
f_hashuniformrndnoise.jpg


 

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