I’d like to disable render until the last render has completely finished (object has been rendered on canvas), since WebGLRenderer.render has no finish callback, can I use Object3D.onAfterRender to simulate WebGLRenderer.render finish callback like this:
const promises = [];
obj.traverse((child) => {
if (child?.isMesh && child?.visible) {
promises.push(
new Promise((resolve) => {
child.onAfterRender = () => {
resolve(child.name);
};
}),
);
}
});
Promise.allSettled(promises).then(() => {
// render finished, the object has been rendered on canvas
});
However, I find that not all onAfterRender is called, when will onAfterRender will be called?