plotly.js
plotly.js copied to clipboard
Improve stackgl rendering pipeline for transparent traces
Thanks to fixes made in #4566 and #4480, this PR could fix #3243 as well as #1267.
@alexcjohnson
Commit https://github.com/plotly/plotly.js/commit/27ba6c1704dbf6fe51016b7a3db3607ce9d678d4 added various failing tests.
Commit https://github.com/plotly/plotly.js/commit/efa3cb787da4ed0ca811b5bcdfe63a8dbe1dd1b8 old work done in gl-plot3d rebased and and applied to update the baselines.
Applied #4725 to update conflicting baseline with extremes opacityscale in https://github.com/plotly/plotly.js/pull/4643/commits/3373d8ce1ceee8dc350f1b13a95ee3cbfa74439d.
Stumbled upon some nice work that our old colleague Ricky published recently in this area: https://observablehq.com/@rreusser/faking-transparency-for-3d-surfaces
ooh Ricky's demo has some nice features for single-surface presentation - I really like his "cartoon edges" and an option to let the wireframe show through an otherwise opaque surface could be cool. But I don't think this helps us with multiple traces - or a single trace that makes multiple surfaces.
I like the dual depth peeling demo he pointed out - not sure quite what's going on there but it looks promising.
This issue has been tagged with NEEDS SPON$OR
A community PR for this feature would certainly be welcome, but our experience is deeper features like this are difficult to complete without the Plotly maintainers leading the effort.
Sponsorship range: $15k-$20k
What Sponsorship includes:
- Completion of this feature to the Sponsor's satisfaction, in a manner coherent with the rest of the Plotly.js library and API
- Tests for this feature
- Long-term support (continued support of this feature in the latest version of Plotly.js)
- Documentation at plotly.com/javascript
- Possibility of integrating this feature with Plotly Graphing Libraries (Python, R, F#, Julia, MATLAB, etc)
- Possibility of integrating this feature with Dash
- Feature announcement on community.plotly.com with shout out to Sponsor (or can remain anonymous)
- Gratification of advancing the world's most downloaded, interactive scientific graphing libraries (>50M downloads across supported languages)
Please include the link to this issue when contacting us to discuss.
Hi @jackparmer & @archmoj, I'm trying to understand the content of this PR and will be grateful for your help in clarifying what's happening in this PR. It looks like the changes in the PR update or add unit test outputs, but the PR does not include any code to generate those plots, is that right? How were these updated unit test outputs generated if there is no code to generate them?
Hi @jackparmer & @archmoj, I'm trying to understand the content of this PR and will be grateful for your help in clarifying what's happening in this PR. It looks like the changes in the PR update or add unit test outputs, but the PR does not include any code to generate those plots, is that right? How were these updated unit test outputs generated if there is no code to generate them?
The proposed changes were in gl-plot3d module. https://github.com/gl-vis/gl-plot3d/compare/gl3d-blend-rebase
Hi, what would be needed to push this over the finish line? My usecase would benefit greatly from correct transparency rendering, so I'd be very happy if this could be fixed. I'm willing to contribute the changes needed myself if there's anything blocking this.
Hi, what would be needed to push this over the finish line? My usecase would benefit greatly from correct transparency rendering, so I'd be very happy if this could be fixed. I'm willing to contribute the changes needed myself if there's anything blocking this.
@Coding-with-Adam Let's keep track of this for our discussion. Thanks!
Hi, what would be needed to push this over the finish line? My usecase would benefit greatly from correct transparency rendering, so I'd be very happy if this could be fixed. I'm willing to contribute the changes needed myself if there's anything blocking this.
As discussed with @gvwilson I'll try to give this another push (after resolving the merge conflicts) and possibly expose this option via a new attribute.