shutil.copy2(img_ref_path, folder_root+"/_ref_image.{0}".format(imgFileExt)) furRenderer.Init(folder_root) ############################################################ ## get default colors for initialization ############################################################ init_params_dict = FurParam.ParamsColor ## get .csv if exists csv_ref_path = os.path.splitext(img_ref_path)[0]+".csv" if True==os.path.isfile(csv_ref_path): shutil.copy2(csv_ref_path, folder_root+"/_ref_image.csv") ## read .csv and add to init_params_dict init_params_dict_file = FurParam.csv2dict(csv_ref_path) from collections import OrderedDict init_params_dict = OrderedDict( list(init_params_dict.items()) + list(init_params_dict_file.items()) ) ## assign the initial color parameters before optimization furRenderer.RenderFur(init_params_dict, folder_root+"/temp", False) ## we don't need this parameter ############################################################ ## invert initial parameter dictionary as vector ############################################################ ## 1) random initial parameters [NOT SO USEFUL]
image_H = 640 ######################################## ## default setting for rendering ######################################## ## default values for 3D scene fur_desc = "MyFurDescription" material = "lambert1" ######################################## ## load parameters & render images ######################################## ## read parameters from csv files params_dict_geom = FurParam.csv2dict( os.path.join(folderPath, "_best_geom.csv")) params_dict_color = FurParam.csv2dict( os.path.join(folderPath, "_best_color.csv")) ## set fur description Fur.SetFurDescription(fur_desc, params_dict_geom) Fur.SetFurDescription(fur_desc, params_dict_color) Fur.CopyFurBaseColor2Material(fur_desc, material) ## render images renderPath = "{0}/render/render".format(folderPath) RenderSetting.SetImageSize(image_W, image_H) RenderSetting.SetExportPath(renderPath, imgFileExt) mel.eval("RenderSequence;") ########################################
############################################################ ## load initial parameters from csv file ############################################################ ''' params01_vec = [0.5]*15 def convert_param_geom_func(params01_vec): params01_dict = {} for cnt, key in enumerate(FurParam.ParamsGeom): params01_dict[key] = params01_vec[cnt] return params01_dict params01_dict = convert_param_geom_func(params01_vec) ''' params_dict = FurParam.csv2dict(initial_csv) params01_dict = FurParam.ConvertFurParams(params_dict, False) ############################################################ ## ############################################################ global count count = 0 def write_csv(kv_id1, kv_id2): global count params01_dict[kv_id1[0]] = kv_id1[1] params01_dict[kv_id2[0]] = kv_id2[1] export_path = "{0}/Space{1:04}.csv".format(folder_path, count) FurParam.dict2csv(FurParam.ConvertFurParams(params01_dict, True),
cam = cmds.ls(cam_name) RenderSetting.Snapshot(cam) # activate RenderView ############################################################ ## 3) rendering routine ############################################################ ## set progress bar for abort abort = False cmds.progressWindow(isInterruptable=1, minValue=0, maxValue=len(csv_list)) for n in range(0, len(csv_list)): csv_file = csv_list[n] ## load csv file & set fur parameters params_dict = FurParam.csv2dict(csv_file) Fur.SetFurDescription(fur_desc, params_dict) Fur.CopyFurBaseColor2Material(fur_desc, material) ## extract file filePrefix = os.path.splitext(csv_file)[0] RenderSetting.SetExportPath(filePrefix, imgFileExt) ## render fur image mel.eval("RenderSequence;") ## abort the process by user interruption (ESC) cmds.progressWindow(edit=True, progress=(n + 1)) if cmds.progressWindow(query=1, isCancelled=1): abort = True break