public override void Update() { base.Update(); builder.Clear(); UpdateFPS(); SceneViewUI sceneView = Root.Find <SceneViewUI>(); ProgressiveRenderEngine engine = sceneView?.engine; if (engine == null) { builder.Append("Missing Engine"); AppendGap(); } else if (engine.CurrentState == ProgressiveRenderEngine.State.rendering) { long traceCount = engine.CurrentProfile.Scene.TraceCount; double rate = traceCount / engine.Elapsed.TotalSeconds; builder.Append($"Rate: {rate:F2}"); AppendGap(); builder.Append($"Epoch: {engine.Epoch:N0}"); AppendGap(); } else { builder.Append("Engine Awaiting"); AppendGap(); } label.Text = builder.ToString(); }
public SceneViewUI() { transform.LeftPercent = 0.16f; transform.RightPercent = 0.28f; transform.UniformMargins = Theme.LargeMargin; engine = new ProgressiveRenderEngine(); renderPreview = new RenderPreviewUI(); Add(renderPreview); Profile = new ProgressiveRenderProfile { Method = new BruteForceWorker(), EpochSample = 2, EpochLength = 24, AdaptiveSample = 35 }; new Thread(LoadScene <SingleBunny>) { IsBackground = true, Name = "Scene Loader" }.Start(); }