Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }