POV-Ray : Newsgroups : povray.windows : Parsing error with Pov Ray addon for blender. "No matching } in 'texture'" : Re: Parsing error with Pov Ray addon for blender. "No matching } in 'textur= Server Time
25 Apr 2024 22:36:44 EDT (-0400)
  Re: Parsing error with Pov Ray addon for blender. "No matching } in 'textur=  
From: Mr
Date: 14 Sep 2019 17:25:01
Message: <web.5d7d582fa2069978cbc80c940@news.povray.org>
"tylerm8101" <tyl### [at] gmailcom> wrote:
> Thomas de Groot <tho### [at] degrootorg> wrote:
> > Op 10/09/2019 om 05:10 schreef tylerm8101:
> > > Hi.
> > >
> > > I'm using the Pov ray addon for Blender 2.79. On windows 10.
> > >
> > > Yesterday I ran into an issue where it wouldn't parse correctly. So... I looked
> > > at what Pov ray said:
> > >
> > > "Parse error: No matching } in 'texture', undeclared identifier 'Material_051'
> > > found instead."
> > >
> > > It also highlighted a line of text:
> > >
> > > "texture{Material_051}"
> > >
> > > This text was apart of a larger group of text:
> > >
> > > #declare MAT_Material_034 =
> > > texture{
> > >          slope { lampTarget1 }
> > >          texture_map {
> > >              [0.98 finish {diffuse 0.72}]
> > >              [0.002
> > >                  pigment {rgbft<1, 0.638, 0.716, 0, 0>}
> > >                  finish {shader_Material_034}
> > >              ]
> > >          }
> > >      }
> > >      texture_list {
> > >          9
> > >   texture{Material_051}
> > >
> > >   texture{Material_052}
> > >
> > >   texture{Material_034}
> > >
> > >   texture{Material_035}
> > >
> > >   texture{Material_038}
> > >
> > >   texture{Material_059}
> > >
> > >   texture{Material_015}
> > >
> > > Im not sure if I needed to show more, I dont know what influences what. Sorry.
> > >
> > >
> > >
> >
> > Those types of errors are often difficult to track down. At first guess
> > I would suggest to check:
> >
> > - is Material_51 included somewhere in the scene or in another include
> > file, and if yes, is its built consistent? If no, include the texture
> > and see if everything works.
> >
> > - what happens if you comment out texture{Material_051} (and change the
> > preceding '9' into '8')? Is the error gone? if not, does the error now
> > mention Material_052? i.d. the next texture in the list?
> >
> > - if no remedy, copy here the complete MAT_Material_034 texture so that
> > we may look at it.
> >
> > - as last resort (or first one) a successful testing involves to
> > gradually build up the texture from simple to complex and each time test
> > the result. If it works, add a new element until the error appears: you
> > then know where the problem arises from.
> >
> > --
> > Thomas
>
> Hi.
>
> Sorry this is a late reply but I was contacted by a dude named Alain Martel who
> emailed me and said this...
>
>
> " This looks highly suspicious to me :
>   #declare MAT_Material_034 =
>

>
> Look if you have a
> #dedclare MAT_Material_051
> somewhere in your scene.
>
> If that's the case, look in the settings if you can prevent prepending

>
> Alternately, do a search and replace to replace all instances of

>
>
>
> I couldn't ask him anything because google can't recognize his address, Ill ask
> them here...
>
>
> I have a #declare MAT_Material_051 in the file, what exactly does this do and
> why is it bad?
>
> If I change the MAT_Material to just Material, would It need the same amount of
> indentation?
>
> And... how could I possibly prevent materials having MAT_ prepended by using the
> settings?

Anything after declare can be arbitrary provided it's written the same way when

"MAT" prefix, it appeared to us, in a way, safer, as it avoided confusion with
POV syntax reserved keywords such as "texture" or "material" and here "MAT" also
specifies the hierarchy of the translated Blender
item to be a material (in Blender terms), as opposed to a texture (in Blender
terms) that can be nested into the said materials. Since users of the graphical
interface could perfectly have given them the same names, this explains our way
of thinking as a disambiguation.  Now, this does not mean that you should not go
over your scene and check whether every named #declare MAT_something is also
called as MAT_something later in the scene. And, if not, you could indeed rename
them with the same name (but it can be whatever you want). To do this it is
required that you first fully grasp what is attempted by a stable working
version of the script (before Blender 2.8 broke everything leaving us with huge
rewriting tasks(2.78 should do)). Namely and as explained in my previous link,
try to understand:
*POV-Ray "finish map" trick that is used to create specular maps,
*layered textures, as they are used to overlay various textures that could have
transparencies,
*what the "metallic" keyword does since it is used to emulate the colored
specular feature of previous Blender versions by specifying a colored but
trasparent finish to put over a simpler form of pigment,
* normal and image_map to be used into the respective bump and diffuse Blender
influence channels from texture slots (Blender 2.8 broke texture slots)
*Finally the replacement of a texture by a function to be able to call its
components (whatever.s to get its saturation or .v for value) and this allows it
to be used equally in grey level expecting keywords or other channels with just
one initial declaration.

You will find all of this, and even more, into the excellent POV-Ray
documentation which is objectively the best in the world, Thanks mostly to Jim
Holsenback ! (...and the rest of this lovely community :-))
I hope you do get there, so you can help us to get the exporter back on its feet
after the earthquake through which we managed to hold what remains together ;-)
Thanks for your patience.


Post a reply to this message

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