POV-Ray : Newsgroups : povray.general : 3.2.1.6.5 in docs--clarification needed Server Time
29 Jul 2024 10:25:49 EDT (-0400)
  3.2.1.6.5 in docs--clarification needed (Message 5 to 14 of 24)  
<<< Previous 4 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Thomas de Groot
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 10:07:08
Message: <512e211c$1@news.povray.org>
On 27-2-2013 15:43, James Holsenback wrote:
> That's where I find them as well, so I don't know where Ken got his
> annotation ... perhaps 3.6 but hey that's ancient history right? It's
> usually more meaningful to say ... e.g: in the Reference 3.1.8.5
>
> As far as the content at Reference 3.1.8.5 ... user defined functions is
> an advanced technique. If you've gotten that far there does seem to be a
> build in assumption ... not that big of a leap IMHO.
>

As for me, I have not gotten that far myself.  ;-)

Thomas


Post a reply to this message

From: Warp
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 11:14:10
Message: <512e30d2@news.povray.org>
Kenneth <kdw### [at] gmailcom> wrote:
> Here are the two code lines given there:

> #declare Vec = foo(1,2,3)

> and

> #declare Val = foo(2,3,4).gray

> What do the values (1,2,3) and (2,3,4) represent?

They mean whatever the function wants them to mean. The function
constructs the vector from those values.

-- 
                                                          - Warp


Post a reply to this message

From: James Holsenback
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 12:43:19
Message: <512e45b7$1@news.povray.org>
On 02/27/2013 10:04 AM, Trevor G Quayle wrote:
> James Holsenback <nom### [at] nonecom> wrote:
>> On 02/27/2013 07:39 AM, Thomas de Groot wrote:
>>> On 27-2-2013 10:34, Kenneth wrote:
>>>> 3.2.1.6.5  "Declaring User-Defined Color Functions".
>>>
>>> A bit difficult to find ;-)
>>>
>>> in the 3.7 RC7 offline Docs: 3.3.1.8.5
>>> in the online wiki Docs: 2.3.1.8.5
>>
>> That's where I find them as well, so I don't know where Ken got his
>> annotation ... perhaps 3.6 but hey that's ancient history right? It's
>> usually more meaningful to say ... e.g: in the Reference 3.1.8.5
>>
>> As far as the content at Reference 3.1.8.5 ... user defined functions is
>> an advanced technique. If you've gotten that far there does seem to be a
>> build in assumption ... not that big of a leap IMHO.
>
> In the 3.7 RC6 help file that opens up for me it is section 3.2.1.6.5
> I suppose I should be installing RC7.

apologies Ken ... history but not so ancient ;-)


Post a reply to this message

From: James Holsenback
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 12:51:14
Message: <512e4792$1@news.povray.org>
On 02/27/2013 12:43 PM, James Holsenback wrote:
> On 02/27/2013 10:04 AM, Trevor G Quayle wrote:
>> James Holsenback <nom### [at] nonecom> wrote:
>>> On 02/27/2013 07:39 AM, Thomas de Groot wrote:
>>>> On 27-2-2013 10:34, Kenneth wrote:
>>>>> 3.2.1.6.5  "Declaring User-Defined Color Functions".
>>>>
>>>> A bit difficult to find ;-)
>>>>
>>>> in the 3.7 RC7 offline Docs: 3.3.1.8.5
>>>> in the online wiki Docs: 2.3.1.8.5
>>>
>>> That's where I find them as well, so I don't know where Ken got his
>>> annotation ... perhaps 3.6 but hey that's ancient history right? It's
>>> usually more meaningful to say ... e.g: in the Reference 3.1.8.5
>>>
>>> As far as the content at Reference 3.1.8.5 ... user defined functions is
>>> an advanced technique. If you've gotten that far there does seem to be a
>>> build in assumption ... not that big of a leap IMHO.
>>
>> In the 3.7 RC6 help file that opens up for me it is section 3.2.1.6.5
>> I suppose I should be installing RC7.
>
> apologies Ken ... history but not so ancient ;-)
>

Oh and if you guys haven't already noticed the Reference has undergone a 
bit of a re-organization


Post a reply to this message

From: Trevor G Quayle
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 13:55:02
Message: <web.512e5673ef3a5b5981c811d20@news.povray.org>
James Holsenback <nom### [at] nonecom> wrote:
> On 02/27/2013 12:43 PM, James Holsenback wrote:
> Oh and if you guys haven't already noticed the Reference has undergone a
> bit of a re-organization

Is there a reason for the reorganization?  Usually reference standards try to
preserve their organization and clause numbering where possible to maintain
continuity.  Certainly people using the newest version can use the new reference
and be followed, however, if people are reading back at old postings on various
topics, it can cause some confusion.

-tgq


Post a reply to this message

From: Stephen
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 14:07:20
Message: <512e5968$1@news.povray.org>
On 27/02/2013 4:14 PM, Warp wrote:
> Kenneth <kdw### [at] gmailcom> wrote:
>> Here are the two code lines given there:
>
>> #declare Vec = foo(1,2,3)
>
>> and
>
>> #declare Val = foo(2,3,4).gray
>
>> What do the values (1,2,3) and (2,3,4) represent?
>
> They mean whatever the function wants them to mean. The function
> constructs the vector from those values.
>

Do you mean that you could write:

#declare Vec = foo(A,B,C)
#declare Val = foo(X,Y,Z).gray
or
#declare Val = foo(1,2,3).gray
even

And that would the same as writing:

#declare Vec = foo(1,2,3)
#declare Val = foo(2,3,4).gray
?

-- 
Regards
     Stephen


Post a reply to this message

From: Trevor G Quayle
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 14:30:00
Message: <web.512e5e74ef3a5b5981c811d20@news.povray.org>
Stephen <mca### [at] aolcom> wrote:
> On 27/02/2013 4:14 PM, Warp wrote:
> > Kenneth <kdw### [at] gmailcom> wrote:
> >> Here are the two code lines given there:
> >
> >> #declare Vec = foo(1,2,3)
> >
> >> and
> >
> >> #declare Val = foo(2,3,4).gray
> >
> >> What do the values (1,2,3) and (2,3,4) represent?
> >
> > They mean whatever the function wants them to mean. The function
> > constructs the vector from those values.
> >
>
> Do you mean that you could write:
>
> #declare Vec = foo(A,B,C)
> #declare Val = foo(X,Y,Z).gray
> or
> #declare Val = foo(1,2,3).gray
> even
>
> And that would the same as writing:
>
> #declare Vec = foo(1,2,3)
> #declare Val = foo(2,3,4).gray
> ?
>
> --
> Regards
>      Stephen

Only so much as A,B,C  or X,Y,Z have defined values.
The A,B,C represent where in 3-space you want to evaluate the underlying pigment
function foo().

for the very simple example in the docs:
#declare foo = function {
  pigment {
    color red 1
    }
  }

as the pigment is red anywhere, any value will return rgb value <1,0,0>.

Where it becomes useful for one example is in building scenes.  Lets say you
want to set down a 100x100 array of spheres.  You could set up a pattern
function (bump for example), then when you go to place each sphere, evaluate the
value of foo() at the center coordinates of each sphere and size it based on
that value.

Or perhaps you have a number of different flowers in a field (lets say five).
Each time you check a spot where you want to place the flower, you can evaluate
foo() at those coordinates and: 1) pick which flower you want to use out of the
5 based on the .red value 2) scale the sizing based on the .green value 3)
roatet the flower based on the .blue value.
This can be better than just random selection, as it allows you to have some
flow and transition continuity (i.e. you'll have distinct patches of each flower
type)

-tgq


Post a reply to this message

From: Trevor G Quayle
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 14:50:00
Message: <web.512e631def3a5b5981c811d20@news.povray.org>
"Trevor G Quayle" <Tin### [at] hotmailcom> wrote:
> Stephen <mca### [at] aolcom> wrote:
> > On 27/02/2013 4:14 PM, Warp wrote:
> > > Kenneth <kdw### [at] gmailcom> wrote:
> > >> Here are the two code lines given there:
> > >
> > >> #declare Vec = foo(1,2,3)
> > >
> > >> and
> > >
> > >> #declare Val = foo(2,3,4).gray
> > >
> > >> What do the values (1,2,3) and (2,3,4) represent?
> > >
> > > They mean whatever the function wants them to mean. The function
> > > constructs the vector from those values.
> > >
> >
> > Do you mean that you could write:
> >
> > #declare Vec = foo(A,B,C)
> > #declare Val = foo(X,Y,Z).gray
> > or
> > #declare Val = foo(1,2,3).gray
> > even
> >
> > And that would the same as writing:
> >
> > #declare Vec = foo(1,2,3)
> > #declare Val = foo(2,3,4).gray
> > ?
> >
> > --
> > Regards
> >      Stephen
>
> Only so much as A,B,C  or X,Y,Z have defined values.
> The A,B,C represent where in 3-space you want to evaluate the underlying pigment
> function foo().
>
> for the very simple example in the docs:
> #declare foo = function {
>   pigment {
>     color red 1
>     }
>   }
>
> as the pigment is red anywhere, any value will return rgb value <1,0,0>.
>
> Where it becomes useful for one example is in building scenes.  Lets say you
> want to set down a 100x100 array of spheres.  You could set up a pattern
> function (bump for example), then when you go to place each sphere, evaluate the
> value of foo() at the center coordinates of each sphere and size it based on
> that value.
>
> Or perhaps you have a number of different flowers in a field (lets say five).
> Each time you check a spot where you want to place the flower, you can evaluate
> foo() at those coordinates and: 1) pick which flower you want to use out of the
> 5 based on the .red value 2) scale the sizing based on the .green value 3)
> roatet the flower based on the .blue value.
> This can be better than just random selection, as it allows you to have some
> flow and transition continuity (i.e. you'll have distinct patches of each flower
> type)
>
> -tgq

A brief scene using the grey evaluation.  Try changing the pattern type or
scaling in foo():

//START
global_settings {
  charset utf8
  ambient_light 1
  adc_bailout 0.001
  max_trace_level 25
}

camera{
  up y
  right x*image_width/image_height
  angle 60
  location <50,50,-50>
  look_at  0
}


light_source {0 rgb 1.773
  translate <50,30,20>
}


#declare foo=
function{
  pigment{
    bumps
    scale 10
  }
}


#local i=-50;#while (i<51)
  #local j=-50;#while (j<51)

  #declare height=foo(i,0,j).gray;
  cylinder{<i,0,j> <i,10+height*5,j> 0.25 pigment {rgb <1,0,0>}}

  #local j=j+1; #end
#local i=i+1; #end
//END

-tgq


Post a reply to this message

From: Kenneth
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 15:45:00
Message: <web.512e6dc9ef3a5b59c2d977c20@news.povray.org>
James Holsenback <nom### [at] nonecom> wrote:

> On 02/27/2013 07:39 AM, Thomas de Groot wrote:
> > On 27-2-2013 10:34, Kenneth wrote:
> >> 3.2.1.6.5  "Declaring User-Defined Color Functions".
> >
> > A bit difficult to find ;-)
> >
> > in the 3.7 RC7 offline Docs: 3.3.1.8.5
> > in the online wiki Docs: 2.3.1.8.5
>
> That's where I find them as well, so I don't know where Ken got his
> annotation ... perhaps 3.6...

Sorry, I should have mentioned that. It's in the help files that come with
v3.62 (and in a few earlier versions IIRC.)


Post a reply to this message

From: Kenneth
Subject: Re: 3.2.1.6.5 in docs--clarification needed
Date: 27 Feb 2013 15:50:00
Message: <web.512e6f59ef3a5b59c2d977c20@news.povray.org>
James Holsenback <nom### [at] nonecom> wrote:

>
> As far as the content at Reference 3.1.8.5 ... user defined functions is
> an advanced technique. If you've gotten that far there does seem to be a
> build in assumption ...

Yeah, that's probably true; I wish I could say so in my case :-/  I've never
used functions in the way those examples indicate.


Post a reply to this message

<<< Previous 4 Messages Goto Latest 10 Messages Next 10 Messages >>>

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