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
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_
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
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
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