Skip to content

Expose rendering stats via API #779

@xeolabs

Description

@xeolabs

Expose the rendering statistics object, which gives us some stats on what happened during the last frame render.

Perhaps we can use this to help adaptively configure the FastNavPlugin, like below?

import {
    Viewer,
    FastNavPlugin,
    stats,
} from "@xeokit/xeokit-sdk/dist/xeokit-sdk.es.js";

const viewer = new Viewer({ canvasId: "myCanvas" });

//...

const dynamicEdgesMaxDrawCount = 5; // FastNavPlugin enables dynamic edges when xeokit draw count is below this
const dynamicFullResolutionMaxDrawCount = 15; // FastNavPlugin enables dynamic full canvas resolution when xeokit draw count is below this

const fastNavPlugin = new FastNavPlugin(viewer, {
    dynamicEdges: false,
    dynamicSAO: false,
    dynamicPBR: false,
    dynamicTransparent: true,
    dynamicCanvasResolution: false,
    dynamicCanvasResolutionScale: 0.6
});

viewer.scene.on("rendered", ()=> {
    const fastNavPlugin = this._fastNavPlugin;
    fastNavPlugin.dynamicEdges = ((stats.frame.drawElements + stats.frame.drawArrays) < dynamicEdgesMaxDrawCount);
    fastNavPlugin.dynamicCanvasResolution = ((stats.frame.drawElements + stats.frame.drawArrays) > dynamicFullResolutionMaxDrawCount);
});

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions