text: # Graphs
  from falcor import *
  
  def render_graph_StandardRichVXL():
      g = RenderGraph('StandardRichVXL')
      loadRenderPassLibrary('AccumulatePass.dll')
      loadRenderPassLibrary('SceneDebugger.dll')
      loadRenderPassLibrary('BSDFViewer.dll')
      loadRenderPassLibrary('ReSTIRPass.dll')
      loadRenderPassLibrary('Antialiasing.dll')
      loadRenderPassLibrary('DepthPass.dll')
      loadRenderPassLibrary('BlitPass.dll')
      loadRenderPassLibrary('DebugPasses.dll')
      loadRenderPassLibrary('CSM.dll')
      loadRenderPassLibrary('DirectLighting.dll')
      loadRenderPassLibrary('EnrichPass.dll')
      loadRenderPassLibrary('ErrorMeasurePass.dll')
      loadRenderPassLibrary('ForwardLightingPass.dll')
      loadRenderPassLibrary('GBuffer.dll')
      loadRenderPassLibrary('SampleEliminatePass.dll')
      loadRenderPassLibrary('GBufferSlim.dll')
      loadRenderPassLibrary('SkyBox.dll')
      loadRenderPassLibrary('ImageLoader.dll')
      loadRenderPassLibrary('MegakernelPathTracer.dll')
      loadRenderPassLibrary('MinimalPathTracer.dll')
      loadRenderPassLibrary('SVGFPass.dll')
      loadRenderPassLibrary('PassLibraryTemplate.dll')
      loadRenderPassLibrary('PhotonGenerationPass.dll')
      loadRenderPassLibrary('PixelInspectorPass.dll')
      loadRenderPassLibrary('TemporalDelayPass.dll')
      loadRenderPassLibrary('PrepareLights.dll')
      loadRenderPassLibrary('RelaxationPass.dll')
      loadRenderPassLibrary('RichVPL.dll')
      loadRenderPassLibrary('RISPass.dll')
      loadRenderPassLibrary('SimplePathTracer.dll')
      loadRenderPassLibrary('SSAO.dll')
      loadRenderPassLibrary('ToneMapper.dll')
      loadRenderPassLibrary('Utils.dll')
      loadRenderPassLibrary('VirtualLightEstimatePass.dll')
      loadRenderPassLibrary('VirtualLightGeneratePass.dll')
      loadRenderPassLibrary('VirtualLightVisPass.dll')
      loadRenderPassLibrary('WhittedRayTracer.dll')
      VirtualLightVisPass = createPass('VirtualLightVisPass', {'radius': 0.004000000189989805, 'visMode': 0, 'visType': 0, 'enable': False})
      g.addPass(VirtualLightVisPass, 'VirtualLightVisPass')
      PhotonGenerationPass = createPass('PhotonGenerationPass', {'PhotonPathCount': 2500000, 'state': 1})
      g.addPass(PhotonGenerationPass, 'PhotonGenerationPass')
      RelaxationPass = createPass('RelaxationPass', {'targetCount': 141000, 'radius': 0.029999999329447746, 'radiusScalerForASBuilding': 1.100000023841858, 'useDMaxForASBuilding': True, 'Texture Item Size': 16, 'MegaTexture Capacity': 100000, 'Relaxation Factor': 1.0, 'standardEnrich': True, 'KNNRadiusScaler': 5})
      g.addPass(RelaxationPass, 'RelaxationPass')
      ReSTIRPass = createPass('ReSTIRPass', {'enableVSLEvaluation': True, 'enableTemporalResampling': True, 'enableSpatialResampling': True, 'GroundtruthMode': 2, 'enableDirectLighting': True, 'needUsageCount': False, 'enablePresampling': True, 'VSLRadiusFactor': 3.0, 'enableSpecularGathering': False, 'tileSearchRadius': 0, 'biasCompensation': False, 'maxHistoryLength': 2, 'improveCorner': False, 'visibilityMode': 0, 'numMinConeSamples': 1, 'useTileSampling': False})
      g.addPass(ReSTIRPass, 'ReSTIRPass')
      AccumulatePass = createPass('AccumulatePass', {'enableAccumulation': True, 'autoReset': True, 'precisionMode': AccumulatePrecision.Single, 'subFrameCount': 0, 'enableSubFrameCount': False})
      g.addPass(AccumulatePass, 'AccumulatePass')
      ToneMapper = createPass('ToneMapper', {'exposureCompensation': 2.0, 'autoExposure': False, 'filmSpeed': 100.0, 'whiteBalance': False, 'whitePoint': 6500.0, 'operator': ToneMapOp.Aces, 'clamp': True, 'whiteMaxLuminance': 1.0, 'whiteScale': 11.199999809265137, 'fNumber': 1.0, 'shutter': 1.0, 'exposureMode': ExposureMode.AperturePriority})
      g.addPass(ToneMapper, 'ToneMapper')
      GBufferSlim = createPass('GBufferSlim')
      g.addPass(GBufferSlim, 'GBufferSlim')
      VirtualLightGeneratePass = createPass('VirtualLightGeneratePass', {'TileSize': 1, 'TileSampleNum': 4, 'boundBoxRadius': 0.006000000052154064, 'StartFromLights': False, 'PhotonPathCount': 20000, 'DirectLightingOnly': True, 'StartFromView': True, 'NeedRelaxation': False})
      g.addPass(VirtualLightGeneratePass, 'VirtualLightGeneratePass')
      PrepareLights = createPass('PrepareLights')
      g.addPass(PrepareLights, 'PrepareLights')
      g.addEdge('PrepareLights.output', 'VirtualLightGeneratePass.input')
      g.addEdge('PhotonGenerationPass.output', 'RelaxationPass.input')
      g.addEdge('VirtualLightGeneratePass.output', 'PhotonGenerationPass.input')
      g.addEdge('RelaxationPass.output', 'ReSTIRPass.input')
      g.addEdge('ReSTIRPass.output', 'AccumulatePass.input')
      g.addEdge('AccumulatePass.output', 'ToneMapper.src')
      g.addEdge('RelaxationPass.output', 'VirtualLightVisPass.dummy')
      g.addEdge('GBufferSlim.output', 'PrepareLights.input')
      g.markOutput('ToneMapper.dst')
      g.markOutput('VirtualLightVisPass.output')
      return g
  m.addGraph(render_graph_StandardRichVXL())
  
  # Scene
  m.loadScene('VPLMedia/sib/sibnew.pyscene')
  m.scene.renderSettings = SceneRenderSettings(useEnvLight=True, useAnalyticLights=True, useEmissiveLights=True, useVolumes=True)
  m.scene.camera.position = float3(-2.577263,-2.598699,0.081675)
  m.scene.camera.target = float3(-1.608893,-2.842602,0.029042)
  m.scene.camera.up = float3(-0.001076,0.999999,0.000058)
  m.scene.cameraSpeed = 1.0
  
  # Window Configuration
  m.resizeSwapChain(1600, 900)
  m.ui = True
  
  # Clock Settings
  m.clock.time = 0
  m.clock.framerate = 0
  # If framerate is not zero, you can use the frame property to set the start frame
  # m.clock.frame = 0
  
  # Frame Capture
  m.frameCapture.outputDir = '.'
  m.frameCapture.baseFilename = 'Mogwai'
  
  