Esempio n. 1
0
def quaternion(cfg):
    '''Animated quaternion used to rotate a plane'''
    cfg.duration = 10.
    step = cfg.duration / 5.
    x = math.sqrt(0.5)
    quat_animkf = [
        ngl.AnimKeyFrameQuat(0 * step, (0, 0, 0, 1)),
        ngl.AnimKeyFrameQuat(1 * step, (0, 0,-x, x)),
        ngl.AnimKeyFrameQuat(2 * step, (0, 1, 0, 0)),
        ngl.AnimKeyFrameQuat(3 * step, (1, 0, 0, 0)),
        ngl.AnimKeyFrameQuat(4 * step, (x, 0, 0, x)),
        ngl.AnimKeyFrameQuat(5 * step, (0, 0, 0, 1)),
    ]
    quat = ngl.AnimatedQuat(quat_animkf, as_mat4=True)

    q = ngl.Quad((-1, -1, 0), (2, 0, 0), (0, 2, 0))
    m = ngl.Media(cfg.medias[0].filename)
    t = ngl.Texture2D(data_src=m)
    p = ngl.Program(vertex=cfg.get_vert('uniform-mat4'))
    render = ngl.Render(q, p)
    render.update_textures(tex0=t)
    render.update_uniforms(transformation_matrix=quat)

    camera = ngl.Camera(render)
    camera.set_eye(0.0, 0.0, 4.0)
    camera.set_center(0.0, 0.0, 0.0)
    camera.set_up(0.0, 1.0, 0.0)
    camera.set_perspective(45.0, cfg.aspect_ratio_float)
    camera.set_clipping(1.0, 10.0)

    return camera
def quaternion(cfg):
    """Animated quaternion used to rotate a plane"""
    cfg.duration = 10.0
    step = cfg.duration / 5.0
    x = math.sqrt(0.5)
    quat_animkf = [
        ngl.AnimKeyFrameQuat(0 * step, (0, 0, 0, 1)),
        ngl.AnimKeyFrameQuat(1 * step, (0, 0, -x, x)),
        ngl.AnimKeyFrameQuat(2 * step, (0, 1, 0, 0)),
        ngl.AnimKeyFrameQuat(3 * step, (1, 0, 0, 0)),
        ngl.AnimKeyFrameQuat(4 * step, (x, 0, 0, x)),
        ngl.AnimKeyFrameQuat(5 * step, (0, 0, 0, 1)),
    ]
    quat = ngl.AnimatedQuat(quat_animkf, as_mat4=True)

    q = ngl.Quad((-1, -1, 0), (2, 0, 0), (0, 2, 0))
    m = ngl.Media(cfg.medias[0].filename)
    t = ngl.Texture2D(data_src=m)
    p = ngl.Program(vertex=cfg.get_vert("uniform-mat4"),
                    fragment=cfg.get_frag("texture"))
    p.update_vert_out_vars(var_normal=ngl.IOVec3(),
                           var_uvcoord=ngl.IOVec2(),
                           var_tex0_coord=ngl.IOVec2())
    render = ngl.Render(q, p)
    render.update_frag_resources(tex0=t)
    render.update_vert_resources(transformation_matrix=quat)

    camera = ngl.Camera(render)
    camera.set_eye(0.0, 0.0, 4.0)
    camera.set_center(0.0, 0.0, 0.0)
    camera.set_up(0.0, 1.0, 0.0)
    camera.set_perspective(45.0, cfg.aspect_ratio_float)
    camera.set_clipping(1.0, 10.0)

    return camera
Esempio n. 3
0
def transform_rotate_quat_animated(cfg, quat0=(0, 0, -0.474, 0.880), quat1=(0, 0, 0, 0)):
    cfg.aspect_ratio = (1, 1)
    shape = _transform_shape(cfg)
    anim = [
        ngl.AnimKeyFrameQuat(0, quat0),
        ngl.AnimKeyFrameQuat(cfg.duration / 2., quat1),
        ngl.AnimKeyFrameQuat(cfg.duration, quat0),
    ]
    return ngl.RotateQuat(shape, anim=ngl.AnimatedQuat(anim))
Esempio n. 4
0
     ngl.AnimKeyFrameFloat, data)),
 animated_vec2=lambda data: ngl.AnimatedVec2(keyframes=_get_anim_kf(
     ngl.AnimKeyFrameVec2, data)),
 animated_vec3=lambda data: ngl.AnimatedVec3(keyframes=_get_anim_kf(
     ngl.AnimKeyFrameVec3, data)),
 animated_vec4=lambda data: ngl.AnimatedVec4(keyframes=_get_anim_kf(
     ngl.AnimKeyFrameVec4, data)),
 animated_buffer_float=lambda data: ngl.AnimatedBufferFloat(
     keyframes=_get_anim_kf(ngl.AnimKeyFrameBuffer, data)),
 animated_buffer_vec2=lambda data: ngl.AnimatedBufferVec2(
     keyframes=_get_anim_kf(ngl.AnimKeyFrameBuffer, data)),
 animated_buffer_vec3=lambda data: ngl.AnimatedBufferVec3(
     keyframes=_get_anim_kf(ngl.AnimKeyFrameBuffer, data)),
 animated_buffer_vec4=lambda data: ngl.AnimatedBufferVec4(
     keyframes=_get_anim_kf(ngl.AnimKeyFrameBuffer, data)),
 animated_quat_mat4=lambda data: ngl.AnimatedQuat(
     keyframes=_get_anim_kf(ngl.AnimKeyFrameQuat, data), as_mat4=True),
 animated_quat_vec4=lambda data: ngl.AnimatedQuat(
     keyframes=_get_anim_kf(ngl.AnimKeyFrameQuat, data), as_mat4=False),
 array_float=lambda data: ngl.BufferFloat(data=data),
 array_int=lambda data: ngl.BufferInt(data=data),
 array_ivec2=lambda data: ngl.BufferIVec2(data=data),
 array_ivec3=lambda data: ngl.BufferIVec3(data=data),
 array_ivec4=lambda data: ngl.BufferIVec4(data=data),
 array_mat4=lambda data: ngl.BufferMat4(data=data),
 array_vec2=lambda data: ngl.BufferVec2(data=data),
 array_vec3=lambda data: ngl.BufferVec3(data=data),
 array_vec4=lambda data: ngl.BufferVec4(data=data),
 single_bool=lambda data: ngl.UniformBool(data),
 single_float=lambda data: ngl.UniformFloat(data),
 single_int=lambda data: ngl.UniformInt(data),
 single_ivec2=lambda data: ngl.UniformIVec2(data),