I have few thousands of polygons that represent map borders of different scales.
Borders of maps of the same scale almost don’t overlap.
There are a lot of maps that covers same Earth location at different scales, so maps of different scales overlap often.
I want to display each map border polygon only at specific range of camera height, according to map scale, e.g.
maps of scale 1:5000000 at camera height [5e8, 1e10] meters,
maps of scale 1:1000000 at camera height [1e6, 5e8] meters,
maps of scale 1:200000 at camera height [1e7, 1e6] meters,
What is the best way to display polygon at specific camera height range?
I tried to assign to entity.polygon.show custom CallbackProperty  that checks whether polygon should be displayed at current scale —
this works, but it’s slow (around 16 FPS while panning, when without check it’s about 50 FPS).
I tried to hook camera movement, and at Camera.moveEnd  event hide/show polygons according to camera height at the end of move.
This works, but with laggish effect: you need to stop navigating to make maps appear.
I would like to try change how rendering of polygons is done
(e.g. by implementing custom shader for my custom polygons):
add uniform with camera height, add attribute with polygon height range,
and check is polygon should be rendered on the current camera height in the vertex shader,
but I don’t see any documentation about how this can be done.
Looks like entire Source/Renderer/ directory is missing in public documentation which makes me think,
that these modules are implementation details and should not be used.
Is low level rendering (e.g. with custom vertex shader) is prohibited in CesiumJS?
Is there any documentation about writing custom vertex shaders with CesiumJS?
Thanks in advance,