예제 #1
0
def MeshLight(name, filename, color=(1, 1, 1), exposure=0, **kwargs):
    """ Geometry light is normals meshe with Edf applied
    on its material.
    """
    color_name = name + '/color'
    color_obj = Color(color_name, values=color, alpha=1.0)

    edf = Edf(name + '_edf',
              model='diffuse_edf',
              radiance=color_name,
              exposure=exposure,
              radiance_multiplier=1)

    material = haps.Material(name + '_material', model='generic_material').add(
        haps.Parameter('edf', edf.get('name')))

    materials = (material.get('name'), )
    slots = ('default', )

    kwargs['visibility/camera'] = 'false'
    kwargs['visibility/shadow'] = 'false'

    light_objs = list(
        MeshObject(name,
                   filename=filename,
                   materials=materials,
                   slots=slots,
                   **kwargs))

    light_objs += [edf, color_obj, material]
    return light_objs
예제 #2
0
def Factory(typename, name, parms=(), **kwargs):
    # This is depracated.
    object_ = getattr(inspect.getmodule(haps), typename)(name, **kwargs)
    assert isinstance(parms, collections.Iterable)
    for parm in parms:
        k, v = parm
        object_.add(haps.Parameter(k, v))
    return object_
예제 #3
0
def Environment(name, **kwargs):
    env = haps.Environment(name, model='generic_environment')
    env.add_parms([('environment_edf', 'environment_edf'),
                   ('environment_shader', 'environment_shader')])
    shader = haps.Environment_Shader('environment_shader',
                                     model='edf_environment_shader')
    shader.add(haps.Parameter('environment_edf', 'environment_edf'))
    edf = EnvironmentEdf('environment_edf', **kwargs)
    return env, shader, edf
예제 #4
0
def MeshObject(name, filename, **kwargs):
    """Create mesh object and its instance with xform applied.
    :parm name:     Name of the object
    :parm filename: Path to file object is saved in
    :parm kwargs:   dict of optional parameters: 
                    xform object (tuple of floats of length 16)
                    or xforms (series of xform object) suitable
                    for creating series of transformation blur.
    """

    obj = haps.Object(name, model='mesh_object')
    obj.add(haps.Parameter('filename', filename))
    obj_name = '.'.join([obj.get('name'), 'default'])

    obj_inst = MeshInstance(name + "_inst", object=obj_name, **kwargs)

    return obj, obj_inst
예제 #5
0
def PhysicalSurfaceShader(name, lighting_samples=1):
    shader = haps.Surface_Shader(name, model='physical_surface_shader')
    shader.add(haps.Parameter('lighting_samples', lighting_samples))
    return shader