public static void Run() { var scene = SeeSharp.Scene.LoadFromFile("../Data/Scenes/HomeOffice/office.json"); scene.FrameBuffer = new SeeSharp.Image.FrameBuffer(640, 480, "test.exr", SeeSharp.Image.FrameBuffer.Flags.SendToTev); scene.Prepare(); var integrator = new ClassicBidir() { NumIterations = 512, MaxDepth = 3, RenderTechniquePyramid = true, BaseSeedCamera = 971612, BaseSeedLight = 175037 }; integrator.PathLogger = new(640, 480); integrator.Render(scene); var paths = integrator.PathLogger.GetAllInPixel(150, 253, RgbColor.White * 0.1f); paths.AddRange(integrator.PathLogger.GetAllInPixel(148, 127, RgbColor.White * 100.0f)); scene.FrameBuffer = new SeeSharp.Image.FrameBuffer(640, 480, "test-paths.exr", SeeSharp.Image.FrameBuffer.Flags.SendToTev); new PathVisualizer() { Radius = 0.0025f, HeadHeight = 0.005f, TypeToColor = new Dictionary <int, RgbColor> { { 1, new RgbColor(0.9f, 0.01f, 0.01f) } }, Paths = paths, TotalSpp = 4 }.Render(scene); }
float NextEventWeight() { var computer = new ClassicBidir(); computer.LightPaths = new LightPathCache(); computer.LightPaths.PathCache = dummyPath.pathCache; computer.NumLightPaths = dummyPath.numLightPaths; var cameraPath = new CameraPath { Vertices = new List <PathPdfPair>(dummyPath.cameraVertices[1..3]),