[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4749] trunk/py/scripts/addons/ render_povray/render.py: *Another try at fixing the " multi materials with custom pov" code bug

Campbell Barton ideasman42 at gmail.com
Thu Sep 26 04:02:17 CEST 2013


Still getting this error:

  File "/src/blender/release/scripts/addons/render_povray/render.py",
line 1610, in exportMeshes
    if mater.pov.replacement_text != "":
UnboundLocalError: local variable 'mater' referenced before assignment


On Fri, Sep 13, 2013 at 4:00 AM, Maurice Raybaud
<mauriceraybaud at hotmail.fr> wrote:
> Revision: 4749
>           http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4749
> Author:   mauriceraybaud
> Date:     2013-09-12 18:00:00 +0000 (Thu, 12 Sep 2013)
> Log Message:
> -----------
> *Another try at fixing the "multi materials with custom pov" code bug
>
> Modified Paths:
> --------------
>     trunk/py/scripts/addons/render_povray/render.py
>
> Modified: trunk/py/scripts/addons/render_povray/render.py
> ===================================================================
> --- trunk/py/scripts/addons/render_povray/render.py     2013-09-12 12:13:43 UTC (rev 4748)
> +++ trunk/py/scripts/addons/render_povray/render.py     2013-09-12 18:00:00 UTC (rev 4749)
> @@ -1186,25 +1186,25 @@
>                          LocalMaterialNames = []
>                          for col, index in vertCols.items():
>                              #if me_materials:
> -                            material = me_materials[col[3]]
> +                            mater = me_materials[col[3]]
>                              if me_materials is None: #XXX working?
>                                  material_finish = DEF_MAT_NAME  # not working properly,
>                                  trans = 0.0
>
>                              else:
> -                                material_finish = materialNames[material.name]
> -                                if material.use_transparency:
> -                                    trans = 1.0 - material.alpha
> +                                material_finish = materialNames[mater.name]
> +                                if mater.use_transparency:
> +                                    trans = 1.0 - mater.alpha
>                                  else:
>                                      trans = 0.0
> -                                if (material.specular_color.r == material.specular_color.g) and (material.specular_color.r == material.specular_color.b):
> +                                if (mater.specular_color.r == mater.specular_color.g) and (mater.specular_color.r == mater.specular_color.b):
>                                      colored_specular_found = False
>                                  else:
>                                      colored_specular_found = True
>
> -                                if material.use_transparency and material.transparency_method == 'RAYTRACE':
> -                                    povFilter = material.raytrace_transparency.filter * (1.0 - material.alpha)
> -                                    trans = (1.0 - material.alpha) - povFilter
> +                                if mater.use_transparency and mater.transparency_method == 'RAYTRACE':
> +                                    povFilter = mater.raytrace_transparency.filter * (1.0 - mater.alpha)
> +                                    trans = (1.0 - mater.alpha) - povFilter
>                                  else:
>                                      povFilter = 0.0
>
> @@ -1213,7 +1213,7 @@
>                                  texturesSpec = ""
>                                  texturesNorm = ""
>                                  texturesAlpha = ""
> -                                for t in material.texture_slots:
> +                                for t in mater.texture_slots:
>                                      if t and t.texture.type == 'IMAGE' and t.use and t.texture.image:
>                                          image_filename = path_image(t.texture.image)
>                                          imgGamma = ""
> @@ -1247,24 +1247,24 @@
>                                  file.write("\n")
>                                  # THIS AREA NEEDS TO LEAVE THE TEXTURE OPEN UNTIL ALL MAPS ARE WRITTEN DOWN.
>                                  # --MR
> -                                currentMatName = string_strip_hyphen(materialNames[material.name])
> +                                currentMatName = string_strip_hyphen(materialNames[mater.name])
>                                  LocalMaterialNames.append(currentMatName)
>                                  file.write("\n #declare MAT_%s = \ntexture{\n" % currentMatName)
>
>                                  ################################################################################
>
> -                                if material.pov.replacement_text != "":
> -                                    file.write("%s\n" % material.pov.replacement_text)
> +                                if mater.pov.replacement_text != "":
> +                                    file.write("%s\n" % mater.pov.replacement_text)
>                                  #################################################################################
> -                                if material.diffuse_shader == 'MINNAERT':
> +                                if mater.diffuse_shader == 'MINNAERT':
>                                      tabWrite("\n")
>                                      tabWrite("aoi\n")
>                                      tabWrite("texture_map {\n")
>                                      tabWrite("[%.3g finish {diffuse %.3g}]\n" % \
> -                                             (material.darkness / 2.0, 2.0 - material.darkness))
> -                                    tabWrite("[%.3g\n" % (1.0 - (material.darkness / 2.0)))
> +                                             (mater.darkness / 2.0, 2.0 - mater.darkness))
> +                                    tabWrite("[%.3g\n" % (1.0 - (mater.darkness / 2.0)))
>
> -                                if material.diffuse_shader == 'FRESNEL':
> +                                if mater.diffuse_shader == 'FRESNEL':
>                                      # For FRESNEL diffuse in POV, we'll layer slope patterned textures
>                                      # with lamp vector as the slope vector and nest one slope per lamp
>                                      # into each texture map's entry.
> @@ -1276,11 +1276,11 @@
>                                          # Diffuse Fresnel value and factor go up to five,
>                                          # other kind of values needed: used the number 5 below to remap
>                                          tabWrite("[%.3g finish {diffuse %.3g}]\n" % \
> -                                                 ((5.0 - material.diffuse_fresnel) / 5,
> -                                                  (material.diffuse_intensity *
> -                                                   ((5.0 - material.diffuse_fresnel_factor) / 5))))
> -                                        tabWrite("[%.3g\n" % ((material.diffuse_fresnel_factor / 5) *
> -                                                              (material.diffuse_fresnel / 5.0)))
> +                                                 ((5.0 - mater.diffuse_fresnel) / 5,
> +                                                  (mater.diffuse_intensity *
> +                                                   ((5.0 - mater.diffuse_fresnel_factor) / 5))))
> +                                        tabWrite("[%.3g\n" % ((mater.diffuse_fresnel_factor / 5) *
> +                                                              (mater.diffuse_fresnel / 5.0)))
>                                          c += 1
>
>                                  # if shader is a 'FRESNEL' or 'MINNAERT': slope pigment pattern or aoi
> @@ -1418,7 +1418,7 @@
>                                      ##################Second index for mapping specular max value###############
>                                          tabWrite("[1 \n")
>
> -                                if texturesDif == "" and material.pov.replacement_text == "":
> +                                if texturesDif == "" and mater.pov.replacement_text == "":
>                                      if texturesAlpha != "":
>                                          # POV-Ray "scale" is not a number of repetitions factor, but its inverse,
>                                          # a standard scale factor.
> @@ -1459,7 +1459,7 @@
>                                          # Level 2 is translated specular
>                                          tabWrite("finish {%s}\n" % (safety(material_finish, Level=2)))
>
> -                                elif material.pov.replacement_text == "":
> +                                elif mater.pov.replacement_text == "":
>                                      # POV-Ray "scale" is not a number of repetitions factor, but its inverse,
>                                      # a standard scale factor.
>                                      # Offset seems needed relatively to scale so probably center of the scale is
> @@ -1518,7 +1518,7 @@
>                                      #           "{%s \"%s\" %s}%s} finish {%s}" % \
>                                      #           (imageFormat(texturesDif), texturesDif,imgMap(t_dif),
>                                      #            mappingDif, safety(material_finish)))
> -                                if texturesNorm != "" and material.pov.replacement_text == "":
> +                                if texturesNorm != "" and mater.pov.replacement_text == "":
>                                      ## scale 1 rotate y*0
>                                      # POV-Ray "scale" is not a number of repetitions factor, but its inverse,
>                                      # a standard scale factor.
> @@ -1533,16 +1533,16 @@
>                                      tabWrite("normal {uv_mapping bump_map {%s \"%s\" %s  bump_size %.4g }%s}\n" % \
>                                               (imageFormat(texturesNorm), texturesNorm, imgMap(t_nor),
>                                                t_nor.normal_factor * 10.0, mappingNor))
> -                                if texturesSpec != "" and material.pov.replacement_text == "":
> +                                if texturesSpec != "" and mater.pov.replacement_text == "":
>                                      tabWrite("]\n")
>
>                                      tabWrite("}\n")
>
>                                  #End of slope/ior texture_map
> -                                if material.diffuse_shader == 'MINNAERT' and material.pov.replacement_text == "":
> +                                if mater.diffuse_shader == 'MINNAERT' and mater.pov.replacement_text == "":
>                                      tabWrite("]\n")
>                                      tabWrite("}\n")
> -                                if material.diffuse_shader == 'FRESNEL' and material.pov.replacement_text == "":
> +                                if mater.diffuse_shader == 'FRESNEL' and mater.pov.replacement_text == "":
>                                      c = 1
>                                      while (c <= lampCount):
>                                          tabWrite("]\n")
> @@ -1554,7 +1554,7 @@
>
> @@ Diff output truncated at 10240 characters. @@
> _______________________________________________
> Bf-extensions-cvs mailing list
> Bf-extensions-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-extensions-cvs



-- 
- Campbell


More information about the Bf-extensions-cvs mailing list