Beispiel #1
0
def pose_based_deformation():
    smooth_mesh = get_mesh()
    rigid_mesh = get_mesh()
    skeleton = get_hierarchy()
    pose_deformers = PoseSpaceDeformer()

    # Training Part
    # Create poses from a SmoothSkinning (max_influences > 1) and RigidSkinning (max_influences = 1)
    smooth_skinning = LinearBlendSkinning(smooth_mesh, skeleton)
    smooth_skinning.attach_mesh(max_influences=4, kernel_func=KERNEL_FUNCTION)
    rigid_skinning = LinearBlendSkinning(rigid_mesh, skeleton)
    rigid_skinning.attach_mesh(max_influences=1, kernel_func=KERNEL_FUNCTION)

    for pose_id in range(NUM_POSES):
        # create a new pose
        frame_id = pose_id * (NUM_FRAMES / NUM_POSES)
        skeleton.animate(frame_id * FRAME_TIME_STEP)
        smooth_skinning.update_mesh()
        rigid_skinning.update_mesh()

        # record the new feature and mesh from the pose
        feature = pose_space_deformer.feature_from_skeleton(skeleton)
        psd_target = smooth_skinning.mesh.vertices
        underlying_surface = rigid_skinning.mesh.vertices

        pose_deformers.add_pose(feature, underlying_surface, psd_target)
        last_displacement = pose_deformers.displacements[-1]
        render.draw(rigid_mesh, skeleton, smooth_skinning.weights,
                    last_displacement, frame_id, RENDER_FOLDER_PATH)
Beispiel #2
0
def run():
    play_time = 0
    clock = pygame.time.Clock()

    while state == RUNNING:
        ms = clock.tick(60)
        play_time += ms / 1000.0

        # handle player inputs
        action = controls.process_events()
        controls.update_keys()

        # debug actions
        if action == "shoot":
            player1.shoot()
        elif action == "spawn_item":
            DroppedPerk(ab, player1.rect.move(30, 0).center)
        elif action == "spawn_gun":
            player1.add_weapon(Gun((0, 0)))
        elif action == "swap_gun":
            player1.swap_weapons()
        elif action == "host":
            if not is_host:
                init_host()
        elif action == "connect":
            if not is_host:
                init_net()
        elif action == "test_sock":
            client.send("hello")

        # update cursor
        cursor_pos_x, cursor_pos_y = pygame.mouse.get_pos()
        cursor.move((cursor_pos_x / options.scale(), cursor_pos_y / options.scale()),
                    controls.click)

        # update cursor text
        cursor.set_hover_text(examine.find_examine_text(cursor.point()))

        # update window title to show frame rate
        pygame.display.set_caption("FPS: {0:.2f}".format(clock.get_fps()))

        # update player with cursor information
        player1.update_cursor(cursor, camera)

        # flip player to face cursor
        # player1.flip(cursor.point()[0] < camera.apply(player1.rect).centerx)

        perk_collide(player1)

        # render screen
        render.draw()

        # update the camera to the player's position
        camera.follow(player1.rect)
Beispiel #3
0
def run():
    play_time = 0
    clock = pygame.time.Clock()

    while state == RUNNING:
        ms = clock.tick(60)
        play_time += ms / 1000.0

        # handle player inputs
        action = controls.process_events()
        controls.update_keys()

        # debug actions
        if action == "shoot":
            player1.shoot()
        elif action == "spawn_item":
            DroppedPerk(ab, player1.rect.move(30, 0).center)
        elif action == "spawn_gun":
            player1.add_weapon(Gun((0, 0)))
        elif action == "swap_gun":
            player1.swap_weapons()
        elif action == "host":
            if not is_host:
                init_host()
        elif action == "connect":
            if not is_host:
                init_net()
        elif action == "test_sock":
            client.send("hello")

        # update cursor
        cursor_pos_x, cursor_pos_y = pygame.mouse.get_pos()
        cursor.move((cursor_pos_x / options.scale(), cursor_pos_y / options.scale()), controls.click)

        # update cursor text
        cursor.set_hover_text(examine.find_examine_text(cursor.point()))

        # update window title to show frame rate
        pygame.display.set_caption("FPS: {0:.2f}".format(clock.get_fps()))

        # update player with cursor information
        player1.update_cursor(cursor, camera)

        # flip player to face cursor
        # player1.flip(cursor.point()[0] < camera.apply(player1.rect).centerx)

        perk_collide(player1)

        # render screen
        render.draw()

        # update the camera to the player's position
        camera.follow(player1.rect)
Beispiel #4
0
def linear_blend_skinning():
    mesh = get_mesh()
    skeleton = get_hierarchy()
    linear_blend_skinning = LinearBlendSkinning(mesh, skeleton)
    linear_blend_skinning.attach_mesh(max_influences=BIDDING_MAX_INFLUENCES,
                                      kernel_func=KERNEL_FUNCTION)

    for frame_id in range(NUM_FRAMES):
        skeleton.animate(frame_id * FRAME_TIME_STEP)
        linear_blend_skinning.update_mesh()
        render.draw(mesh, skeleton, linear_blend_skinning.weights, None,
                    frame_id, RENDER_FOLDER_PATH)
Beispiel #5
0
def draw(dt):
    window.clear()
    render.draw()
    window.flip()
Beispiel #6
0
def on_draw():
    render.draw()
    text.draw()
Beispiel #7
0
def run():
    while True:
        move()
        input(pygame.event.get())
        render.draw()
        
Beispiel #8
0
current_color_generator = color.terrain
current_height_generator = generator.land
current_detailer = detailer.shift
current_output = render.draw
current_weight_generator = weight.random
current_map_generator = g.continent_map(
    generator.ocean)  #g.ocean_map(generator.ocean)
if len(sys.argv) > 1:
    random.seed(sys.argv[1])
else:
    seed = random.randint(0, 10000)
    print "Seed is " + str(seed)
    random.seed(seed)

for y in xrange(20):

    seed = random.randint(0, 10000)
    grid = render.init(50, 30, 16, current_map_generator,
                       current_height_generator, "Map" + str(seed),
                       g.BORDER_OCEAN, g.BORDER_OCEAN)
    print "Hi!"
    render.draw(grid, current_color_generator)
    current_output(grid, current_color_generator)
    for x in xrange(4):
        grid = current_detailer(grid, current_weight_generator)
        print "Done Detailing"
        current_output(grid, current_color_generator)
        render.render_bmp(grid, current_color_generator)
    print "Done Outputting"

pygame.quit()