diff --git a/render_povray/render.py b/render_povray/render.py index 433172894fcfed0924ad77a3f6ff7b02bdb7f6ff..f4c8042b3ff2ba5fd86560cb443b79d517f1cd71 100644 --- a/render_povray/render.py +++ b/render_povray/render.py @@ -29,41 +29,24 @@ import re ##############################SF########################### ##############find image texture -# XXX There’s a python func for that, IMO… --mont29 -def splitExt(path): - dotidx = path.rfind(".") - if dotidx == -1: - return path, "" - else: - return path[dotidx:].upper().replace(".", "") - # XXX A simple dict would be much simpler for this… --mont29 def imageFormat(imgF): - ext = "" - ext_orig = splitExt(imgF) - if ext_orig == 'JPG' or ext_orig == 'JPEG': - ext = "jpeg" - elif ext_orig == 'GIF': - ext = "gif" - elif ext_orig == 'TGA': - ext = "tga" - elif ext_orig == 'IFF': - ext = "iff" - elif ext_orig == 'PPM': - ext = "ppm" - elif ext_orig == 'PNG': - ext = "png" - elif ext_orig == 'SYS': - ext = "sys" - elif ext_orig in ('TIFF', 'TIF'): - ext = "tiff" - elif ext_orig == 'EXR': - ext = "exr" # POV3.7 Only! - elif ext_orig == 'HDR': - ext = "hdr" # POV3.7 Only! --MR - - print(imgF) + ext = { + 'JPG': "jpeg", + 'JPEG': "jpeg", + 'GIF': "gif", + 'TGA': "tga", + 'IFF': "iff", + 'PPM': "ppm", + 'PNG': "png", + 'SYS': "sys", + 'TIFF': "tiff", + 'TIF': "tiff", + 'EXR': "exr", # POV3.7 Only! + 'HDR': "hdr", # POV3.7 Only! --MR + }.get(os.path.splitext(imgF)[-1].upper(), "") + if not ext: print(" WARNING: texture image format not supported ") @@ -123,23 +106,6 @@ def imgMapBG(wts): return image_mapBG -# XXX There’s a python func for this… --mont29 -def splitFile(path): - idx = path.rfind("/") - if idx == -1: - idx = path.rfind("\\") - return path[idx:].replace("/", "").replace("\\", "") - - -# XXX There’s a python func for this… --mont29 -def splitPath(path): - idx = path.rfind("/") - if idx == -1: - return path, "" - else: - return path[:idx] - - def findInSubDir(filename, subdirectory=""): pahFile = "" if subdirectory: @@ -160,7 +126,7 @@ def path_image(image): fn = bpy.path.abspath(image) fn_strip = os.path.basename(fn) if not os.path.isfile(fn): - fn = findInSubDir(splitFile(fn), splitPath(bpy.data.filepath)) + fn = findInSubDir(os.path.basename(fn), os.path.dirname(bpy.data.filepath)) fn = os.path.realpath(fn) return fn @@ -331,7 +297,7 @@ def write_pov(filename, scene=None, info_callback=None): # (variable) dispersion_samples (constant count for now) tabWrite("}\n") - + tabWrite("photons{") if not ob.pov.collect_photons: tabWrite("collect off\n") @@ -342,7 +308,6 @@ def write_pov(filename, scene=None, info_callback=None): tabWrite("reflection on\n") tabWrite("}\n") - materialNames = {} DEF_MAT_NAME = "Default" @@ -1048,7 +1013,7 @@ def write_pov(filename, scene=None, info_callback=None): # 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 * + (material.diffuse_intensity * ((5.0 - material.diffuse_fresnel_factor) / 5)))) tabWrite("[%.3g\n" % ((material.diffuse_fresnel_factor / 5) * (material.diffuse_fresnel / 5.0)))