![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Kenneth <kdw### [at] gmail com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 02/27/2013 10:04 AM, Trevor G Quayle wrote:
> James Holsenback <nom### [at] none com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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] none com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
James Holsenback <nom### [at] none com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 27/02/2013 4:14 PM, Warp wrote:
> Kenneth <kdw### [at] gmail com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Stephen <mca### [at] aol com> wrote:
> On 27/02/2013 4:14 PM, Warp wrote:
> > Kenneth <kdw### [at] gmail com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Trevor G Quayle" <Tin### [at] hotmail com> wrote:
> Stephen <mca### [at] aol com> wrote:
> > On 27/02/2013 4:14 PM, Warp wrote:
> > > Kenneth <kdw### [at] gmail com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
James Holsenback <nom### [at] none com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
James Holsenback <nom### [at] none com> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |