def soho_render(): control_parms = { # The time at which the scene is being rendered 'now': SohoParm('state:time', 'real', [0], False, key='now'), 'fps': SohoParm('state:fps', 'real', [24], False, key='fps'), 'camera': SohoParm('camera', 'string', ['/obj/cam1'], False), } parms = soho.evaluate(control_parms) now = parms['now'].Value[0] camera = parms['camera'].Value[0] fps = parms['fps'].Value[0] options = {'state:precision': 6} if not soho.initialize(now, camera, options): soho.error("Unable to initialize rendering module with given camera") object_selection = { # Candidate object selection 'vobject': SohoParm('vobject', 'string', ['*'], False), 'alights': SohoParm('alights', 'string', ['*'], False), 'forceobject': SohoParm('forceobject', 'string', [''], False), 'forcelights': SohoParm('forcelights', 'string', [''], False), 'excludeobject': SohoParm('excludeobject', 'string', [''], False), 'excludelights': SohoParm('excludelights', 'string', [''], False), 'sololight': SohoParm('sololight', 'string', [''], False), } for cam in soho.objectList('objlist:camera'): break else: soho.error('Unable to find viewing camera for render') objparms = cam.evaluate(object_selection, now) stdobject = objparms['vobject'].Value[0] stdlights = objparms['alights'].Value[0] forceobject = objparms['forceobject'].Value[0] forcelights = objparms['forcelights'].Value[0] excludeobject = objparms['excludeobject'].Value[0] excludelights = objparms['excludelights'].Value[0] sololight = objparms['sololight'].Value[0] forcelightsparm = 'forcelights' if sololight: stdlights = excludelights = None forcelights = sololight forcelightsparm = 'sololight' # First, we add objects based on their display flags or dimmer values soho.addObjects(now, stdobject, stdlights, '', True) soho.addObjects(now, forceobject, forcelights, '', False) soho.removeObjects(now, excludeobject, excludelights, '') # Lock off the objects we've selected soho.lockObjects(now) with hou.undos.disabler(), scene_state: PBRTscene.render(cam, now) return
def soho_render(): control_parms = { # The time at which the scene is being rendered "now": SohoParm("state:time", "real", [0], False, key="now"), "camera": SohoParm("camera", "string", ["/obj/cam1"], False), } parms = soho.evaluate(control_parms) now = parms["now"].Value[0] camera = parms["camera"].Value[0] options = {} if not soho.initialize(now, camera, options): soho.error("Unable to initialize rendering module with given camera") object_selection = { # Candidate object selection "vobject": SohoParm("vobject", "string", ["*"], False), "alights": SohoParm("alights", "string", ["*"], False), "forceobject": SohoParm("forceobject", "string", [""], False), "forcelights": SohoParm("forcelights", "string", [""], False), "excludeobject": SohoParm("excludeobject", "string", [""], False), "excludelights": SohoParm("excludelights", "string", [""], False), "sololight": SohoParm("sololight", "string", [""], False), } for cam in soho.objectList("objlist:camera"): break else: soho.error("Unable to find viewing camera for render") objparms = cam.evaluate(object_selection, now) stdobject = objparms["vobject"].Value[0] stdlights = objparms["alights"].Value[0] forceobject = objparms["forceobject"].Value[0] forcelights = objparms["forcelights"].Value[0] excludeobject = objparms["excludeobject"].Value[0] excludelights = objparms["excludelights"].Value[0] sololight = objparms["sololight"].Value[0] forcelightsparm = "forcelights" if sololight: stdlights = excludelights = "" forcelights = sololight forcelightsparm = "sololight" # First, we add objects based on their display flags or dimmer values soho.addObjects( now, stdobject, stdlights, "", True, geo_parm="vobject", light_parm="alights", fog_parm="", ) soho.addObjects( now, forceobject, forcelights, "", False, geo_parm="forceobject", light_parm=forcelightsparm, fog_parm="", ) soho.removeObjects( now, excludeobject, excludelights, "", geo_parm="excludeobject", light_parm="excludelights", fog_parm="", ) # Lock off the objects we've selected soho.lockObjects(now) with hou.undos.disabler(), scene_state: if "SOHO_PBRT_DEV" in os.environ: # pragma: no coverage import cProfile pr = cProfile.Profile() pr.enable() try: PBRTscene.render(cam, now) finally: pr.disable() pr.dump_stats("hou-prbt.stats") else: PBRTscene.render(cam, now) return
soho.addObjects(now=now, geometry=stdobject, lights="", fog="", do_culling=True, geo_parm='vobject') soho.addObjects(now=now, geometry=forceobject, lights="", fog="", do_culling=False, geo_parm='forceobject') soho.removeObjects(now=now, geometry=excludeobject, lights="*", fog="*", geo_parm='excludeobject', light_parm='excludelights', fog_parm='excludefog') attributeControlParms = { 'z_sorting_method': soho.SohoParm('z_sorting_method', 'string', ['avg'], False), 'fill_color_attribute': soho.SohoParm('fill_color_attribute', 'string', ['Cd'], False), 'fill_alpha_attribute': soho.SohoParm('fill_alpha_attribute', 'string', ['Alpha'], False), 'stroke_color_attribute': soho.SohoParm('stroke_color_attribute', 'string', ['Cd'], False), 'stroke_alpha_attribute': soho.SohoParm('stroke_alpha_attribute', 'string', ['Alpha'], False),
geo_parm='matte_objects', light_parm='', fog_parm='') if phantom_objects: soho.addObjects(now, phantom_objects, '', '', False, geo_parm='phantom_objects', light_parm='', fog_parm='') soho.removeObjects(now, excludeobject, excludelights, excludefog, geo_parm='excludeobject', light_parm='excludelights', fog_parm='excludefog') # site-wide customization hook # IFDhooks.call('pre_lockObjects', parmlist, objparms, now, camera) # Lock off the objects we've selected soho.lockObjects(now) # import IFDsettings # IFDsettings.clearLists() # IFDsettings.initializeFeatures() # IFDsettings.setMattePhantomOverrides(now, matte_objects, phantom_objects) # IFDmisc.initializeMotionBlur(cam, now)
def soho_render(): control_parms = { # The time at which the scene is being rendered "now": SohoParm("state:time", "real", [0], False, key="now") } parms = soho.evaluate(control_parms) now = parms["now"].Value[0] camera = None options = {} if not soho.initialize(now, camera, options): soho.error("Unable to initialize rendering module with given camera") object_selection = { # Candidate object selection "vobject": SohoParm("vobject", "string", ["*"], False), "forceobject": SohoParm("forceobject", "string", [""], False), "excludeobject": SohoParm("excludeobject", "string", [""], False), } objparms = soho.evaluate(object_selection, now) stdobject = objparms["vobject"].Value[0] forceobject = objparms["forceobject"].Value[0] excludeobject = objparms["excludeobject"].Value[0] # First, we add objects based on their display flags or dimmer values soho.addObjects(now, stdobject, "", "", True, geo_parm="vobject", light_parm="", fog_parm="") soho.addObjects( now, forceobject, "", "", False, geo_parm="forceobject", light_parm="", fog_parm="", ) soho.removeObjects(now, excludeobject, "", "", geo_parm="excludeobject", light_parm="", fog_parm="") # Lock off the objects we've selected soho.lockObjects(now) with hou.undos.disabler(), scene_state: if "SOHO_PBRT_DEV" in os.environ: # pragma: no coverage import cProfile pr = cProfile.Profile() pr.enable() try: PBRTscene.archive(now) finally: pr.disable() pr.dump_stats("hou-prbtarchive.stats") else: PBRTscene.archive(now) return
excludelights = objparms['excludelights'].Value[0] excludefog = objparms['excludefog'].Value[0] sololight = objparms['sololight'].Value[0] forcelightsparm = 'forcelights' if sololight: stdlights = excludelights = '' forcelights = sololight forcelightsparm = 'sololight' # First, we add objects based on their display flags or dimmer values soho.addObjects(now, stdobject, stdlights, stdfog, True, geo_parm='vobject', light_parm='alights', fog_parm='vfog') soho.addObjects(now, forceobject, forcelights, forcefog, False, geo_parm='forceobject', light_parm=forcelightsparm, fog_parm='forcefog') soho.removeObjects(now, excludeobject, excludelights, excludefog, geo_parm='excludeobject', light_parm='excludelights', fog_parm='excludefog') # Lock off the objects we've selected soho.lockObjects(now) ############################## Camara stuff ################### # Parameters we evaluate on the camera to determine the viewing # frustum camParms = { 'space:world':SohoParm('space:world', 'real', [], False), 'focal' :SohoParm('focal', 'real', [0.050], False), 'aperture' :SohoParm('aperture', 'real', [0.0414214], False), 'orthowidth' :SohoParm('orthowidth', 'real', [2], False), 'near' :SohoParm('near', 'real', [0.001], False), 'far' :SohoParm('far', 'real', [1000], False), 'res' :SohoParm('res', 'int', [640,480], False),