Extracting framebuffers from rendering passes

Hi everyone,

Looking through the code, I cannot find a good way (or any way for that matter) to extract non-composited framebuffers. Specifically, I need to extract rendered billboards, polylines and points without any of the terrain or tiles around them. Afterwards I want to “apply” the rendered pixels onto a image taken with a camera.

The scene object (https://github.com/CesiumGS/cesium/blob/main/Source/Scene/Scene.js) has pre and post rendering events that I can easily hook into. I also have no problems with solutions that patch Cesium. I’m aware I’ll need to keep maintaining this “fork” afterwards.

The only documentation I could find on the inner workings of the rendering engine is this not very detailed blog post Graphics Tech in Cesium - The Graphics Stack – Cesium. The github wiki is quite old (over 6 years) and the referenced github issue is not of much help either.

Thank you for your time,

TL;DR: Any docs on how the rendering stack works and how to get data from the rendering passes?


It looks like there may have been other (also very old) blog posts like the one you linked to – I read through most of Graphics Tech in Cesium - Renderer Architecture – Cesium at one point, but all this 3D engine internals stuff is a little over my head. It does cite a book that @patrick and @Kevin_Ring wrote at the end (now a full decade old!), so if you’re really committed to get deep into the guts perhaps that would be the place to start?