|
|
Alright, it seems to be only when using them within a layered texture
Otherwise it can parse okay when within a regular single texture somewhere.
Try this out, it fails even in official POV-Ray so it's not a topic of the
UVpov or Super patches alone. And as I said before I think it does so with
#while, #switch, #ifdef, or any other "#" directive, even '#declare'.
#declare IFBUG=yes;
#declare GoldR_M =
texture {
pigment {radial frequency 24 color_map {
[0 color rgb<1.6,.9,.3>*3]
[.25 color rgb<.99,.4,.2>]
[.5 color rgb<.5,.3,.1>*.1]
[.75 color rgb<.99,.4,.2>]
[1 color rgb<1.6,.9,.3>*3]
} cubic_wave rotate 90*x }
normal {radial 1
#if(IFBUG=no) // here's the trouble!
frequency 24 cubic_wave
#end
rotate 90*x}
finish {ambient .05 diffuse .8 phong .4 phong_size 150 specular .6
roughness .007
reflection .3 reflection_exponent .3
metallic .6 brilliance 2 crand .036}
}
texture {
pigment {radial frequency 24 color_map {
[0 color rgbf<1.5,.9,.2,.9>]
[.25 color rgbf<1,.35,.4,.8>]
[.5 color rgbf<.4,.3,.2,.99>*.2]
[.75 color rgbf<1,.35,.4,.8>]
[1 color rgbf<1.5,.9,.2,.9>]
} cubic_wave rotate 90*x }
normal {radial .9 frequency 24 triangle_wave rotate 90*x}
finish {
#if(IFBUG=yes) // here's the trouble!
ambient .15 diffuse .4 phong .5 phong_size 200 specular .5 roughness .009
#end
reflection .5 reflection_exponent .7
metallic .9 brilliance 4 crand .03}
}
//Bob
news:380F805F.76228F79@kolumbus.fi...
> omniVERSE wrote:
> >
> > When something doesn't work like I want I usually work around it, just
> > thought I'd ask what others thought and see if I'm doing things right in
the
> > first place.
> > When a '#if' or '#switch' directive (others possibly?) is applied within
a
> > 'pigment' or 'finish' statement for example, the parser errors on it.
The
> > same thing is apparently okay in official POV 3.1g yet not so in 3.1e
> > (UVPov, Super Patch).
> > Like:
> >
> > object {TestIf
> > pigment {
> > #if (DoThis)
> > rgb<1,1,1>
> > #else
> > rgb<0,0,0>
> > #end
> > }
> > finish {ambient .1
> > #if (DoThis)
> > diffuse .6
> > #else
> > diffuse 0
> > #end
> > }
> > }
> >
>
> I had no problem parsing the following in Superpatch
> file://Start code
> #declare Test=0;
> sphere { 0,1 pigment { #if(Test) rgb <1,0,1> #else rgb <0,1,0> #end } }
> // End code
>
> Maybe you haven't declared DoThis or TestIf.
>
Post a reply to this message
|
|