|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I am trying to randomise a texure in a while-loop.Is this possible,and how can I
achive this please.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
>
> I am trying to randomise a texure in a while-loop.Is this possible,and how can I
> achive this please.
>
>
First, you initiate a random stream: #declare Rand = seed(0);
seed() takes any integer value as it's argument.
Then, in your loop, you use that stream to randomly create some pigment
or switch between patterns and create random colour_map, also using your
random stream.
You can create a stream to sellect your pattern and another for the colours.
You can create a random pigment like this:
pigment{rgb<rand(Rand),rand(Rand),rand(Rand)>}
pigment{rgbft<rand(Rand),rand(Rand),rand(Rand),rand(Rand)/2,rand(Rand)/2>}
will generate pigments that are transparent to various degrees.
You can use the #switch() #case()/#range() #break #end statement to
sellect between various patterns. Read the documentation about the
#switch() statement. The #break is mandatory.
Alain
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Alain <aze### [at] qwertyorg> wrote:
> >
> > I am trying to randomise a texure in a while-loop.Is this possible,and how can I
> > achive this please.
> >
> >
> First, you initiate a random stream: #declare Rand = seed(0);
> seed() takes any integer value as it's argument.
>
> Then, in your loop, you use that stream to randomly create some pigment
> or switch between patterns and create random colour_map, also using your
> random stream.
>
> You can create a stream to sellect your pattern and another for the colours.
> You can create a random pigment like this:
> pigment{rgb<rand(Rand),rand(Rand),rand(Rand)>}
> pigment{rgbft<rand(Rand),rand(Rand),rand(Rand),rand(Rand)/2,rand(Rand)/2>}
> will generate pigments that are transparent to various degrees.
>
> You can use the #switch() #case()/#range() #break #end statement to
> sellect between various patterns. Read the documentation about the
> #switch() statement. The #break is mandatory.
>
>
> Alain
Thankyou for your reply, but still no success. Here is my code.
#declare Rand = seed(1);
#declare Count = 0;
#while (Count <10)
object{My_Column translate-x*12
// texture {My_Marble rotate <rand(Rand),rand(Rand),rand(Rand)>}
*Count rotate - 100*y
}
#declare Count=Count+1;
#end
All works untill I add the texture line, then this error:No matching } in
object',: found instead. What am I doing wrong,please.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 01/06/2012 09:39 PM, Micke wrote:
> Alain<aze### [at] qwertyorg> wrote:
>>>
>>> I am trying to randomise a texure in a while-loop.Is this possible,and how can I
>>> achive this please.
>>>
>>>
>> First, you initiate a random stream: #declare Rand = seed(0);
>> seed() takes any integer value as it's argument.
>>
>> Then, in your loop, you use that stream to randomly create some pigment
>> or switch between patterns and create random colour_map, also using your
>> random stream.
>>
>> You can create a stream to sellect your pattern and another for the colours.
>> You can create a random pigment like this:
>> pigment{rgb<rand(Rand),rand(Rand),rand(Rand)>}
>> pigment{rgbft<rand(Rand),rand(Rand),rand(Rand),rand(Rand)/2,rand(Rand)/2>}
>> will generate pigments that are transparent to various degrees.
>>
>> You can use the #switch() #case()/#range() #break #end statement to
>> sellect between various patterns. Read the documentation about the
>> #switch() statement. The #break is mandatory.
>>
>>
>> Alain
>
> Thankyou for your reply, but still no success. Here is my code.
> #declare Rand = seed(1);
> #declare Count = 0;
> #while (Count<10)
> object{My_Column translate-x*12
> // texture {My_Marble rotate<rand(Rand),rand(Rand),rand(Rand)>}
> *Count rotate - 100*y
> }
> #declare Count=Count+1;
>
> #end
> All works untill I add the texture line, then this error:No matching } in
> object',: found instead. What am I doing wrong,please.
>
>
hmmm ... first off the line *Count rotate - 100*y just looked strange
before I even started. After satisfying My_Column and My_Marble (my own
simple definition) I get this error:
Parse Error: No matching } in 'object', * found instead
that confirms my suspicion about the *Count line, so perhaps there is
something in one of those other definitions thats causing the problem
... since I'm not sure of your intent, that's my best guess.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 01/06/2012 10:26 PM, Jim Holsenback wrote:
> On 01/06/2012 09:39 PM, Micke wrote:
>> Alain<aze### [at] qwertyorg> wrote:
>>>>
>>>> I am trying to randomise a texure in a while-loop.Is this
>>>> possible,and how can I
>>>> achive this please.
>>>>
>>>>
>>> First, you initiate a random stream: #declare Rand = seed(0);
>>> seed() takes any integer value as it's argument.
>>>
>>> Then, in your loop, you use that stream to randomly create some pigment
>>> or switch between patterns and create random colour_map, also using your
>>> random stream.
>>>
>>> You can create a stream to sellect your pattern and another for the
>>> colours.
>>> You can create a random pigment like this:
>>> pigment{rgb<rand(Rand),rand(Rand),rand(Rand)>}
>>> pigment{rgbft<rand(Rand),rand(Rand),rand(Rand),rand(Rand)/2,rand(Rand)/2>}
>>>
>>> will generate pigments that are transparent to various degrees.
>>>
>>> You can use the #switch() #case()/#range() #break #end statement to
>>> sellect between various patterns. Read the documentation about the
>>> #switch() statement. The #break is mandatory.
>>>
>>>
>>> Alain
>>
>> Thankyou for your reply, but still no success. Here is my code.
>> #declare Rand = seed(1);
>> #declare Count = 0;
>> #while (Count<10)
>> object{My_Column translate-x*12
>> // texture {My_Marble rotate<rand(Rand),rand(Rand),rand(Rand)>}
>> *Count rotate - 100*y
>> }
>> #declare Count=Count+1;
>>
>> #end
>> All works untill I add the texture line, then this error:No matching } in
>> object',: found instead. What am I doing wrong,please.
>>
>>
> hmmm ... first off the line *Count rotate - 100*y just looked strange
> before I even started. After satisfying My_Column and My_Marble (my own
> simple definition) I get this error:
>
> Parse Error: No matching } in 'object', * found instead
>
> that confirms my suspicion about the *Count line, so perhaps there is
> something in one of those other definitions thats causing the problem
> ... since I'm not sure of your intent, that's my best guess.
follow up ... forgot to mention that commenting out the *Count line and
it parses just fine, so maybe if you could clarify the intent of that
line it might give us another clue ... does the *Count line belong
inside the texture definition?
This parses fine:
#declare My_Column = cylinder {<0,0,0>, <0,1,0>, 0.5 pigment { Green}}
#declare My_Marble = texture {pigment {Blue}}
#declare Rand = seed(1);
#declare Count = 0;
#while (Count <10)
object{My_Column translate-x*12
texture {My_Marble rotate <rand(Rand),rand(Rand),rand(Rand)>//}
*Count rotate - 100*y}
}
#declare Count=Count+1;
#end
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Micke wrote:
> All works untill I add the texture line, then this error:No matching } in
> object',: found instead. What am I doing wrong,please.
It looks like you accidentally inserted the texture
within the expression -x*12*Count. Such things are easier
to spot if you use more consistent spacings and indents:
#declare Rand = seed(1);
#declare Count = 0;
#while (Count <10)
object
{
My_Column
translate -12*Count*x
texture {My_Marble rotate <rand(Rand),rand(Rand),rand(Rand)>}
rotate -100*y
}
#declare Count=Count+1;
#end
Note that it can also be relevant when to apply the
texture with respect to transformations.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 01/06/2012 10:40 PM, Christian Froeschlin wrote:
> It looks like you accidentally inserted the texture
> within the expression -x*12*Count. Such things are easier
> to spot if you use more consistent spacings and indents:
yes ... being a bit religious about indents etc DOES make things easier.
I fall into that trap from time to time and lining things up ALWAYS
makes things stand out better.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Jim Holsenback <nom### [at] nomailcom> wrote:
> On 01/06/2012 10:40 PM, Christian Froeschlin wrote:
> > It looks like you accidentally inserted the texture
> > within the expression -x*12*Count. Such things are easier
> > to spot if you use more consistent spacings and indents:
>
> yes ... being a bit religious about indents etc DOES make things easier.
> I fall into that trap from time to time and lining things up ALWAYS
> makes things stand out better.
When editing complex, nested equations in Excel, whenever you cursor past a
parentheses, it highlights it, and its matching counterpart. Something like
this would be useful - not sure how tough it would be to implement.
Changing the color of defined variables would be useful for spotting misspelled
variable names.
Which brings me a question I had - POV-Ray highlights sind(theta) in purple,
even though I hadn't included the math.inc file. Why? It confused the heck out
of me!
I wound up using degrees ( sin (theta) ) until I found the problem! Arrrrgh.
I suppose that it might be possible to write a separate "spell checking" script
to check for syntax - at least the "obvious" stuff.
I almost got snagged by an extra /*
it was nested inside another /* ... */ block, and POV-Ray wanted the second */.
Concerning the original topic, the solutions proposed seem like sort of a
"cheat" or workaround. Is there a way to actually _specify_ random or varying
_textures_ rather than defining textures with random _pigments_?
It would be nice to cycle through all of the P_WoodGrain_XX textures on blocks
by varying XX.
This might be potential solution.
http://news.povray.org/518c3b60%241%40news.povray.org
and I remember coming across this:
http://news.povray.org/povray.text.tutorials/thread/%3C3f13449b$1@news.povray.org%3E/
which seemed like there could be a way to "sanitize" the string-nature of WoodA
in something like or else "fool" POV-Ray into thinking it's not a string
anymore.
#declare WoodA = concat ("P_WoodGrain", str (X, 0, 0), "A")
#declare WoodA = texture { WoodA }
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Am 28.07.2013 19:37, schrieb Bald Eagle:
> When editing complex, nested equations in Excel, whenever you cursor past a
> parentheses, it highlights it, and its matching counterpart. Something like
> this would be useful - not sure how tough it would be to implement.
It's a common feature in modern text editors geared towards software
developers and has proven its value a thousand times over, so it
shouldn't be a question of how tough it is - the POV-Ray GUI should have
it, period.
That said, the current Windows GUI - and especially the editor component
- is scheduled for demolition anyway, so it doesn't make sense to invest
any energy into implementing that feature for the old GUI.
Thorsten Froehlich has been working on an official Mac OSX GUI for quite
some time now, and I understand it is nearing completion; as it is based
on a toolkit available on Windows as well (and also Linux of course), I
suspect it will form the basis for the next generation Windows GUI.
Not sure if that GUI already has "brace matching", but I suspect it does.
> which seemed like there could be a way to "sanitize" the string-nature of WoodA
> in something like or else "fool" POV-Ray into thinking it's not a string
> anymore.
> #declare WoodA = concat ("P_WoodGrain", str (X, 0, 0), "A")
> #declare WoodA = texture { WoodA }
There is a macro in strings.inc that does exactly this:
#declare WoodA = concat ("P_WoodGrain", str (X, 0, 0), "A")
#declare WoodA = texture { Parse_String(WoodA) }
(The macro's trick is to create a temporary file, write the contents of
the string to it, and then #include it ;-))
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|