CesiumGS / CesiumGS/cesium

Processing a single polyline re-renders all polylines with the same material

Open
#13,136 0 comments 0 reactions 0 assignees View on GitHub
needs triage type - bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.