Version
6.1.0
Link to Minimal Reproduction
https://codepen.io/Danish-Munib/pen/raWzBYG
Steps to Reproduce
- Create a 3D chart using echarts-gl (e.g., line3D, surface, or bar3D).
- Add the toolbox.feature.saveAsImage configuration.
- Set pixelRatio in saveAsImage to a value greater than 1 (e.g., pixelRatio: 2).
- Trigger saveAsImage via the toolbox button or programmatically using chart.getDataURL().
Current Behavior
When pixelRatio is set to 1, the exported image renders correctly.
However, setting pixelRatio > 1 results in an exported image where the WebGL viewport/3D canvas content is entirely blank. Only 2d elements (such as the visualMap legend) are rendered.
Expected Behavior
The exported image should render the complete 3D chart at high resolution corresponding to the specified pixelRatio.
Environment
- OS: Windows 10 Pro 22H2
- Browser: Brave 1.92.140 (Official Build)
- Framework: Vanilla JS
Any additional comments?
The issue appears to stem from how WebGL framebuffers handle resizing during off-screen rendering when target pixel ratios are increased.
Version
6.1.0
Link to Minimal Reproduction
https://codepen.io/Danish-Munib/pen/raWzBYG
Steps to Reproduce
Current Behavior
When pixelRatio is set to 1, the exported image renders correctly.
However, setting pixelRatio > 1 results in an exported image where the WebGL viewport/3D canvas content is entirely blank. Only 2d elements (such as the visualMap legend) are rendered.
Expected Behavior
The exported image should render the complete 3D chart at high resolution corresponding to the specified pixelRatio.
Environment
Any additional comments?
The issue appears to stem from how WebGL framebuffers handle resizing during off-screen rendering when target pixel ratios are increased.