Bufferless rendering #6791
Labels
cross-platform 📺
Requires coordination with Mapbox GL Native (style specification, rendering tests, etc.)
needs discussion 💬
needs investigation 🔍
Issues that require further research (e.g. it's not clear whether it's GL JS or something else)
performance ⚡
Speed, stability, CPU usage, memory usage, or power usage
refactoring 🏗️
Currently, vector tile buffers are important for rendering in GL because:
A
may be rendered partially or wholly outside ofA
's bounds, in some neighboring tileB
. For example, a line insideA
may have a line-width that extends past the boundary intoB
.A
, the part of the rendered line that bleeds outside of its boundaries is masked away. Thus, when we draw tileB
, we must have access to the geometry of that feature fromA
so that we can draw the portion of it that falls withinB
's bounds.This approach also help us avoid the problem of clipping detection, distinguishing "real" vertices from clipping artifacts. If a line that crossed a tile boundary were clipped hard to its edge, we wouldn't know whether to draw a line cap there or not. This problem can be pretty easily solved if we distinguish real vertices and clipping artifacts in VT3, so the focus of this ticket is on the rendered vs. source geometry issue.
Downsides of the current approach:
The purpose of this ticket is to track the question: can come up with an approach to rendering that doesn't rely on buffers, using [version 3 of the vector tile spec] as an opportunity to introduce any changes that such an approach might require?
cc @kkaefer @ansis @mourner @jfirebaugh
The text was updated successfully, but these errors were encountered: