Processing a single polyline re-renders all polylines with the same material
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
### What happened?
When calling `CzmlDatasource.process(czmlData)` to update an existing entity, the corresponding entity will "blink" as it is re-rendered on the map. However, if there are multiple polylines with the same material properties on the map, processing a single one will re-render them all, causing a widespread "blinking" effect.
### Reproduction steps
1. Create a datasource and add multiple polylines with the same material property (e.g. solid color)
2. Call `datasource.process()` on one of the polylines (no actual data change is needed)
3. All polylines will be re-rendered on the map
The expected result is that only the polyline entity that is affected by the `process` call should be re-rendered.
### Sandcastle example
https://sandcastle.cesium.com/#c=5VZtT9swEP4rVj+FiaVJuqqitGhQBkNkgNYytBEEbmJaC8eObIcCE/995yRNk5WXsYkvo1LT+O655y7nx+nROBFSo3cIKzQgiqYxupQiRkEjzFZBYz3gAQ8FVxqFdzHbFmEaE65RH53+DDiCD426gI8KR9BYzc0cx8Q4Bj+++GiXiJhoSYnqoiPBbhnlpEReE6mo4Abs2k5hvj+rJz7C4RXRLuQ13nrupGB0l5KfTKkmyPhQyHCckAhpgTSRmPISzPCYsC4qKBG4b7QJ9k3YghOhS8Ezh+ckN+gzYddE0xBXAZSxgWBCdotu2tnKHu5/3/KPP5U4kWpT00PQLX9zsP878IRGetpFXmlX+paRMtI3DzA0Jntnz/fPNw+2zw+PR/7ewTzlffGbCEV11uvyaUMstZhInExpuE0mkpg9On3vem3bWUVex1ydsyWevOMVnjm1qtgeZe+0gRq+wG0yFYuz8vnuy7sYw25RzGqsSjAaFd2rmCHdAzaE5GSMIavXzhJVLouE9aTV+8XdLN+FdmnIJDUSu1KkHISoZUpqfXpYwx7qPy5h7xUk7L1tCbe8V5Nwy6lIuOX8txI2VdVF3HpKxK0lEe8yMfsnDbfeuIbXXk/DnaqGOy/R8Dy92d2XqNh1IKH7YQ0EbBI+qWKEJsB+JGYE6Bzbq7k0Togsfe0/E7/r/NUL/JoSyAPzByez+Y5/y2zWfFoagDBB0UQGjZX1eVyENVYilSGpxw7MNAW+YeazFqdH5dEBX0TaTODIqs5fKwaAZ5jOC7OjkkvZOIqsRfQSWyIFoJRVmasM5kmE9yyiZRBFMXdCxCOxVMMQ8yjESsMJgRJHQrAxllup1oJbF19JwYnyfy1khThVpFi65o0RNMbQoSto0MUqslZQfyNX2POV528wwUwrJ9DsHcqpmpIIqAJ+n1fXWG30shO9YfAfaT4bp5JZtt3UJE4YHALVHKeG1Q6VMmG95jykF9FreBH2H1CDEZpS4LlMGRvSO5h9N3pNwNfCzCZTPjmEeZjhWwOZuht+brRtu9eE5XKUzrtYYfwF
### Environment
Browser: Chrome
CesiumJS Version: 1.137
Operating System: Ubuntu
Contributor guide
Research direction
Start by reproducing the Sandcastle example and tracing CzmlDatasource.process from the single-entity update into polyline material and rendering updates. Identify why polylines sharing a material are re-rendered, then verify that processing one entity re-renders only that entity without changing the others.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100