diff --git a/render_povray/render.py b/render_povray/render.py index 6150cc4f730b5b3177f0a935e2c3c451224fc4a8..e6c65758f2b4c7e5ff4d4eed8fe5008cdb4df31c 100644 --- a/render_povray/render.py +++ b/render_povray/render.py @@ -391,7 +391,7 @@ def write_pov(filename, scene=None, info_callback=None): raytrace_mirror = material.raytrace_mirror if raytrace_mirror.reflect_factor: tabWrite('reflection {\n') - tabWrite('rgb <%.3g, %.3g, %.3g>' % tuple(material.mirror_color)) + tabWrite('rgb <%.3g, %.3g, %.3g>' % material.mirror_color[:]) if material.pov_mirror_metallic: tabWrite('metallic %.3g' % (raytrace_mirror.reflect_factor)) if material.pov_mirror_use_IOR: #WORKING ? @@ -693,8 +693,8 @@ def write_pov(filename, scene=None, info_callback=None): vcol_layer = None faces_verts = [f.vertices[:] for f in me_faces] - faces_normals = [tuple(f.normal) for f in me_faces] - verts_normals = [tuple(v.normal) for v in me.vertices] + faces_normals = [f.normal[:] for f in me_faces] + verts_normals = [v.normal[:] for v in me.vertices] # quads incur an extra face quadCount = sum(1 for f in faces_verts if len(f) == 4) @@ -708,7 +708,7 @@ def write_pov(filename, scene=None, info_callback=None): for v in me.vertices: file.write(',\n') - tabWrite('<%.6f, %.6f, %.6f>' % tuple(v.co)) # vert count + tabWrite('<%.6f, %.6f, %.6f>' % v.co[:]) # vert count file.write('\n') tabWrite('}\n') @@ -795,7 +795,7 @@ def write_pov(filename, scene=None, info_callback=None): else: if material: - diffuse_color = tuple(material.diffuse_color) + diffuse_color = material.diffuse_color[:] key = diffuse_color[0], diffuse_color[1], diffuse_color[2], material_index vertCols[key] = [-1] @@ -805,7 +805,7 @@ def write_pov(filename, scene=None, info_callback=None): for i, material in enumerate(me_materials): if material: - diffuse_color = tuple(material.diffuse_color) + diffuse_color = material.diffuse_color[:] key = diffuse_color[0], diffuse_color[1], diffuse_color[2], i # i == f.mat vertCols[key] = [-1] @@ -1187,13 +1187,13 @@ def write_pov(filename, scene=None, info_callback=None): if not world.use_sky_blend: #Non fully transparent background could premultiply alpha and avoid anti-aliasing display issue: if render.alpha_mode == 'PREMUL' or render.alpha_mode == 'PREMUL' : - tabWrite('background {rgbt<%.3g, %.3g, %.3g, 0.75>}\n' % (tuple(world.horizon_color))) + tabWrite('background {rgbt<%.3g, %.3g, %.3g, 0.75>}\n' % (world.horizon_color[:])) #Currently using no alpha with Sky option: elif render.alpha_mode == 'SKY': - tabWrite('background {rgbt<%.3g, %.3g, %.3g, 0>}\n' % (tuple(world.horizon_color))) + tabWrite('background {rgbt<%.3g, %.3g, %.3g, 0>}\n' % (world.horizon_color[:])) #StraightAlpha: else: - tabWrite('background {rgbt<%.3g, %.3g, %.3g, 1>}\n' % (tuple(world.horizon_color))) + tabWrite('background {rgbt<%.3g, %.3g, %.3g, 1>}\n' % (world.horizon_color[:])) worldTexCount=0 @@ -1234,14 +1234,14 @@ def write_pov(filename, scene=None, info_callback=None): tabWrite('gradient y\n')#maybe Should follow the advice of POV doc about replacing gradient for skysphere..5.5 tabWrite('color_map {\n') if render.alpha_mode == 'STRAIGHT': - tabWrite('[0.0 rgbt<%.3g, %.3g, %.3g, 1>]\n' % (tuple(world.horizon_color))) - tabWrite('[1.0 rgbt<%.3g, %.3g, %.3g, 1>]\n' % (tuple(world.zenith_color))) + tabWrite('[0.0 rgbt<%.3g, %.3g, %.3g, 1>]\n' % (world.horizon_color[:])) + tabWrite('[1.0 rgbt<%.3g, %.3g, %.3g, 1>]\n' % (world.zenith_color[:])) elif render.alpha_mode == 'PREMUL': - tabWrite('[0.0 rgbt<%.3g, %.3g, %.3g, 0.99>]\n' % (tuple(world.horizon_color))) - tabWrite('[1.0 rgbt<%.3g, %.3g, %.3g, 0.99>]\n' % (tuple(world.zenith_color))) #aa premult not solved with transmit 1 + tabWrite('[0.0 rgbt<%.3g, %.3g, %.3g, 0.99>]\n' % (world.horizon_color[:])) + tabWrite('[1.0 rgbt<%.3g, %.3g, %.3g, 0.99>]\n' % (world.zenith_color[:])) #aa premult not solved with transmit 1 else: - tabWrite('[0.0 rgbt<%.3g, %.3g, %.3g, 0>]\n' % (tuple(world.horizon_color))) - tabWrite('[1.0 rgbt<%.3g, %.3g, %.3g, 0>]\n' % (tuple(world.zenith_color))) + tabWrite('[0.0 rgbt<%.3g, %.3g, %.3g, 0>]\n' % (world.horizon_color[:])) + tabWrite('[1.0 rgbt<%.3g, %.3g, %.3g, 0>]\n' % (world.zenith_color[:])) tabWrite('}\n') tabWrite('}\n') tabWrite('}\n') @@ -1261,7 +1261,7 @@ def write_pov(filename, scene=None, info_callback=None): if mist.use_mist: tabWrite('fog {\n') tabWrite('distance %.6f\n' % mist.depth) - tabWrite('color rgbt<%.3g, %.3g, %.3g, %.3g>\n' % (tuple(world.horizon_color) + (1 - mist.intensity,))) + tabWrite('color rgbt<%.3g, %.3g, %.3g, %.3g>\n' % (world.horizon_color[:] + (1 - mist.intensity,))) #tabWrite('fog_offset %.6f\n' % mist.start) #tabWrite('fog_alt 5\n') #tabWrite('turbulence 0.2\n') @@ -1304,7 +1304,7 @@ def write_pov(filename, scene=None, info_callback=None): once=0 #In POV-Ray, the scale factor for all subsurface shaders needs to be the same if world: - tabWrite('ambient_light rgb<%.3g, %.3g, %.3g>\n' % tuple(world.ambient_color)) + tabWrite('ambient_light rgb<%.3g, %.3g, %.3g>\n' % world.ambient_color[:]) if material.pov_photons_refraction or material.pov_photons_reflection: tabWrite('photons {\n')