예제 #1
0
파일: hpms_lua.py 프로젝트: Ray1184/HPMSAll
def create_room(path, room_name, clean_placeholders):
    import shutil
    template = hpms_utils.get_current_dir() + "/templates/template_room.txt"
    script = path + "/" + room_name + ".lua"
    shutil.copyfile(template, script)
    if clean_placeholders:
        remove_user_placeholders(path, room_name)
예제 #2
0
def export_room_data(output_path, room_list, update_all, do_render, preview):
    import hpms_utils
    scripts_path = output_path + "/data/scripts"
    maps_path = output_path + "/data/maps"
    screens_path = output_path + "/data/screens"
    depth_path = output_path + "/data/masks"
    rooms = bpy.context.scene.hpms_room_list
    import hpms_lua
    import hpms_maps
    import hpms_render
    for cam in bpy.data.cameras:
        hpms_render.config_cam(cam)
    if do_render:
        hpms_render.configure_renderer(preview)
        import os
        if not os.path.isdir(hpms_utils.get_current_dir() + "/../syslogs"):
            os.mkdir(hpms_utils.get_current_dir() + "/../syslogs")
        open(hpms_utils.get_current_dir() + "/../syslogs/blender_render.log",
             "w+")
        open(hpms_utils.get_current_dir() + "/../syslogs/blender_export.log",
             "w+")

    for room in rooms:
        room_name = str(room.name)
        if room_name.rstrip() == "":
            hpms_utils.warn("Found a room with no name, skipping to next")
            continue
        hpms_lua.create_or_update_room_script(scripts_path, room_name,
                                              room_list, update_all)

        import hpms_filters
        sectors = hpms_filters.filter_sectors(room_name)

        hpms_maps.create_or_update_room_map(maps_path, room_name, sectors,
                                            room_list, update_all)
        if do_render:
            hpms_render.create_or_update_screens(screens_path, depth_path,
                                                 room_name, room_list,
                                                 update_all)
예제 #3
0
def render_image(path, cam_name):
    bpy.context.scene.render.filepath = path + "/" + cam_name + ".png"

    img_type = "view"
    if "/masks/" in path:
        img_type = "depth mask"

    import hpms_utils
    hpms_utils.debug("Rendering " + img_type + " " + cam_name)

    from os import open, close, dup, O_WRONLY

    old = dup(1)
    close(1)
    open(hpms_utils.get_current_dir() + "/../syslogs/blender_render.log",
         O_WRONLY)
    bpy.ops.render.render(write_still=True)
    close(1)
    dup(old)
    close(old)
예제 #4
0
def create_map(path, room_name, sectors):
    bpy.ops.object.select_all(action='DESELECT')
    bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
    [sector.select_set(True) for sector in sectors]
    from os import open, close, dup, O_WRONLY
    import hpms_utils
    old = dup(1)
    close(1)
    open(hpms_utils.get_current_dir() + "/../syslogs/blender_export.log",
         O_WRONLY)

    bpy.ops.export_scene.obj(filepath=path + "/" + room_name + ".hfdat.raw",
                             check_existing=False,
                             axis_forward='-Z',
                             axis_up='Y',
                             filter_glob="*.obj;*.mtl",
                             use_selection=True,
                             use_animation=False,
                             use_mesh_modifiers=False,
                             use_edges=False,
                             use_smooth_groups=False,
                             use_smooth_groups_bitflags=False,
                             use_normals=False,
                             use_uvs=False,
                             use_materials=False,
                             use_triangles=True,
                             use_nurbs=False,
                             use_vertex_groups=False,
                             use_blen_objects=True,
                             group_by_object=False,
                             group_by_material=False,
                             keep_vertex_order=False,
                             global_scale=1,
                             path_mode='AUTO')
    bpy.ops.render.render(write_still=True)
    close(1)
    dup(old)
    close(old)
예제 #5
0
파일: main.py 프로젝트: Ray1184/HPMSBatch
def unzip_templates(output_path):
    shutil.unpack_archive(hpms_utils.get_current_dir() + "/templates/data.zip", output_path, 'zip')