Exemple #1
0
    def RenderFur(self, params_dict, img_path, exportCSV=True):

        ## assign fur parameters
        Fur.SetFurDescription(self.fur_desc, params_dict)
        Fur.CopyFurBaseColor2Material(self.fur_desc, self.material)

        t_render_start = datetime.now()

        ## export single frame as image
        cmds.setAttr("defaultRenderGlobals.imageFilePrefix",
                     img_path,
                     type="string")
        mel.eval('renderWindowRenderCamera "render" renderView ' +
                 "{0}".format(self.camera) + ";")

        t_render_end = datetime.now()
        t_render_elapsed = t_render_end - t_render_start

        t_imageio_start = datetime.now()

        ## export parameter as CSV file if needed
        if exportCSV:
            csv_file = img_path + ".csv"
            FurParam.dict2csv(params_dict, csv_file)

        ## read rendered image for further processing
        img_file = img_path + "_tmp." + self.imgFileExt
        img_cv2 = cv2.imread(img_file)

        t_imageio_end = datetime.now()
        t_imageio_elapsed = t_imageio_end - t_imageio_start

        return img_cv2, t_render_elapsed, t_imageio_elapsed
Exemple #2
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),
                          export_path)

        count = count + 1
        return None
    def convert_param_func(params01_vec):
        params01_dict = {}
        for cnt, key in enumerate(FurParam.ParamsGeom):
            params01_dict[key] = params01_vec[cnt]

        params_dict = FurParam.ConvertFurParams(params01_dict, True)
        return params_dict
Exemple #4
0
 def invert_color_func(params_dict):
     params01_vec_dst = []
     for key in FurParam.ParamsColor:
         value = param_color_dict[key]
         val01 = FurParam.ConvertFurParam(key, value)
         params01_vec_dst.append(val01)
     return params01_vec_dst
            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]
Exemple #6
0
    ############################################################
    ## 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),
    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;")

    ########################################
Exemple #8
0
    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