-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GPU Aggregation (4/8): ScreenGridLayer #8942
Conversation
}, | ||
// Evaluate domain at draw() time | ||
colorDomain: () => this.props.colorDomain || aggregator.getResultDomain(0), | ||
// Extensions are already handled by the GPUAggregator, do not pass it down |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this always going to be true? Could there not be extensions which CellLayer
will need?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For ScreenGridLayer there's no existing extension that should be applied to the cells directly, and unlikely for any custom extensions.
This will be tricky for GridLayer/HexagonLayer. FillStyleExtension and TerrainExtension should affect the screen pass only, and *FilterExtension should affect the aggregation pass only.
We could add some flag to the extensions to categorize them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be sufficient for the extension to signal which stage of the GPU pipeline it affects? E.g. 'vertex'
/'fragment'
. The aggregation pass should only use the 'vertex'
extensions and the screen pass the 'fragment'
.
Even so, how does this work for DataFilterExtension
? There we would like the vertex shader injections to hide the filtered data points before aggregation, but in the screen pass the dataFilter_value
needs to both shrink the geometry in the vertex stage & fade in the fragment stage
An alternative would be to have the extensions understand the concept of what context they are being invoked in, by looking at what type of Pass
they are being rendered in. The DataFilterExtension
could then do one thing in the AggregationPass
and another in the ScreenPass
54ee4f1
to
941cc99
Compare
d0a2d53
to
a102a42
Compare
modules/aggregation-layers/src/aggregation-layer-v9/aggregator.ts
Outdated
Show resolved
Hide resolved
modules/aggregation-layers/src/screen-grid-layer/screen-grid-layer-vertex.glsl.ts
Outdated
Show resolved
Hide resolved
941cc99
to
6160b98
Compare
594e5bf
to
2c2abc9
Compare
2c2abc9
to
122449b
Compare
For #7457
Change List