POV-Ray : Newsgroups : povray.windows : Parsing error with Pov Ray addon for blender. "No matching } in 'texture'" Server Time: 15 Sep 2019 22:01:28 GMT
  Parsing error with Pov Ray addon for blender. "No matching } in 'texture'" (Message 1 to 9 of 9)  
From: tylerm8101
Subject: Parsing error with Pov Ray addon for blender. "No matching } in 'texture'"
Date: 10 Sep 2019 03:15:01
Message: <web.5d7713e0fb556019394e73420@news.povray.org>
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.


Post a reply to this message

From: Thomas de Groot
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in 'texture'"
Date: 10 Sep 2019 06:49:44
Message: <5d774788$1@news.povray.org>
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


Post a reply to this message

From: Bald Eagle
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in 'textur=
Date: 10 Sep 2019 10:30:01
Message: <web.5d777a7a42e6e46e4eec112d0@news.povray.org>
"tylerm8101" <tyl### [at] gmailcom> wrote:

> "Parse error: No matching } in 'texture', undeclared identifier 'Material_051'
> found instead."
>
> It also highlighted a line of text:
>
> "texture{Material_051}"

Right.   So there's supposed to be a thing called Material_051 that gets
#declared somewhere for use in your layered texture.

PoseRay does the same thing and usually creates an include file   "Filename.inc"
that contains all of that info.

See if you have any .inc files in the directory where Blender exports your stuff
to, and somewhere before that group of text add

#include "Filename.inc"

for each of the .inc files and see if that works.

if one .inc file depends on what's in another, then that one needs to be after
the one it depends on, so you may have to reorder them if you get [new] errors.

If you can't get that to work, and just need to render the scene, you can just
define simple place-holder textures for those things or comment them out.




> Im not sure if I needed to show more, I dont know what influences what. Sorry.

Maybe some of the beginning of the scene to show any #include statements, and
the list of filenames in your Blender export directory.


Post a reply to this message

From: William F Pokorny
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in 'texture'"
Date: 10 Sep 2019 12:06:04
Message: <5d7791ac$1@news.povray.org>
On 9/9/19 11:10 PM, tylerm8101 wrote:
...
> 
> 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.
> 

As others have said the undeclared identifier means POV-Ray didn't know 
what that token meant, at the point it saw it, while parsing a texture 
block.

The SDL text posted is confusing to me. I doubt it's aligned well with 
the error message. The texture_list keyword is used only within meshes(1).

I'm pretty sure a texture_list {...} hanging in space won't itself 
parse. I don't know how we reached the token, Material_051, if this the 
SDL text causing the error.

Hmm, I guess it all could be inside a mesh/mesh2 block not shown, but 
declaring MAT_Material_034 inline/on the fly within a mesh like that 
would be odd - if such a thing works at all.

Bill P.


(1) There is a concept of TEXTURE_LIST which gets used with block 
patterns as in:

#declare TextureChecker = texture {
     checker
     texture { Tred }
     texture { Tgreen }
     scale 0.2
     warp {turbulence 0.5}
}


Post a reply to this message

From: Bald Eagle
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in 'textur=
Date: 10 Sep 2019 18:25:01
Message: <web.5d77e9e742e6e46e4eec112d0@news.povray.org>
William F Pokorny <ano### [at] anonymousorg> wrote:
> The texture_list keyword is used only within meshes(1).

Well, let's just chalk up another thing that I don't think I've ever even heard
of...  :O

http://wiki.povray.org/content/Documentation:Tutorial_Section_3.9

Very cool.   [X] I have learned something new today.

> (1) There is a concept of TEXTURE_LIST which gets used with block
> patterns as in:
>
> #declare TextureChecker = texture {
>      checker
>      texture { Tred }
>      texture { Tgreen }
>      scale 0.2
>      warp {turbulence 0.5}
> }

I suppose that's implied...   Always good to go back and sift through the very
basics.   I kind of just dove in and probably just skipped over a lot   ;)


Post a reply to this message

From: Thomas de Groot
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in'texture'"
Date: 11 Sep 2019 06:36:39
Message: <5d7895f7$1@news.povray.org>
Op 10/09/2019 om 14:06 schreef William F Pokorny:
> The SDL text posted is confusing to me. I doubt it's aligned well with 
> the error message. The texture_list keyword is used only within meshes(1).
> 

As this is linked to Blender, I assume that the involved object is 
indeed a mesh.

-- 
Thomas


Post a reply to this message

From: Mr
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in'texture=
Date: 11 Sep 2019 13:50:01
Message: <web.5d78fa2a383465d316086ed00@news.povray.org>
Thomas de Groot <tho### [at] degrootorg> wrote:
> Op 10/09/2019 om 14:06 schreef William F Pokorny:
> > The SDL text posted is confusing to me. I doubt it's aligned well with
> > the error message. The texture_list keyword is used only within meshes(1).
> >
>
> As this is linked to Blender, I assume that the involved object is
> indeed a mesh.
>
> --
> Thomas

Indeed we used texture_list to assign different materials to different faces of
a mesh. that's the only way to support this former Blender feature (which might
no longer be available in Blender 2.8 afaik) This choice has led us to give up
the use of the POV-Ray material(texture+interior) wrapper as one object can have
only one interior while textures, on the other hand could be better modularized
and applied several at a time on one mesh object that way.

Here's a memo on guidelines for what we did :
https://archive.blender.org/wiki/index.php/Dev:2.6/Py/Scripts/Render/POV-Ray/#texture_list


Post a reply to this message

From: tylerm8101
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in 'textur=
Date: 14 Sep 2019 20:35:06
Message: <web.5d7d4dbb42e6e46ef8be68120@news.povray.org>
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 =

It looks like there is a «MAT_» prepended to the material's name.

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
material's names with that «MAT_».

Alternately, do a search and replace to replace all instances of
«MAT_Material» to just «Material». "



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?


Post a reply to this message

From: Mr
Subject: Re: Parsing error with Pov Ray addon for blender. "No matching } in 'textur=
Date: 14 Sep 2019 21: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 =
>
> It looks like there is a «MAT_» prepended to the material's name.
>
> 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
> material's names with that «MAT_».
>
> Alternately, do a search and replace to replace all instances of
> «MAT_Material» to just «Material». "
>
>
>
> 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
invoked into the objects that follow this definition, it´s just a name, with the
"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-2008 Persistence of Vision Raytracer Pty. Ltd.