Skip to content

Robust Clipping Polygon v2 (terrain and 3D tileset) #12649

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

Open
tbenazzi opened this issue Jun 3, 2025 · 1 comment
Open

Robust Clipping Polygon v2 (terrain and 3D tileset) #12649

tbenazzi opened this issue Jun 3, 2025 · 1 comment

Comments

@tbenazzi
Copy link

tbenazzi commented Jun 3, 2025

Robust Clipping Polygon v2 (terrain and 3D tileset)

Summary

We need the capability to topologically clip terrain and 3D tiles based on complex polygons with production-ready performance and precision. While a clipping solution already exists in CesiumJS, it has critical limitations that prevent production deployment.

Current Issues

The existing clipping polygon implementation suffers from three major problems:

1. Precision Issues

Image
Image
Image

2. Performance Degradation

3. Shadow Rendering Problems

Business Impact

This is currently the n°1 feature request from our hundreds of production users. The ability to client-side integrate custom projects and cleanly clip portions of tilesets without performance loss is essential for shadow studies and project visualization.

This functionality is core not just for our use case, but for the entire AEC (Architecture, Engineering, Construction) ecosystem that needs to integrate future projects into existing base datasets.

Use Cases

  • Urban Planning: Integrate new building designs into existing city models
  • Construction: Visualize project phases by clipping existing terrain/buildings
  • Shadow Analysis: Perform accurate shadow studies on integrated projects
  • Environmental Impact: Assess how new developments affect existing landscapes
  • Real Estate: Show proposed developments in context of existing infrastructure

Expected Solution

We need a robust clipping system that provides:

  • Higher Precision: Sub-decimeter accuracy between input polygons and actual clipping
  • Performance Optimization: Cached geometry processing with minimal frame impact
  • Shadow Integration: Proper shadow casting that respects clipped geometry
  • Complex Polygon Support: Handle concave polygons, holes, and multi-part geometries
  • Scalability: Handle large tilesets and terrains without performance degradation

Technical Requirements

  • Maintain existing clipping polygon API compatibility where possible
  • Implement geometry caching to avoid per-frame recalculation
  • Update shadow rendering pipeline to respect clipped areas
  • Support both terrain and 3D tileset clipping simultaneously

Community Impact

This enhancement would benefit the entire CesiumJS community, particularly:

  • AEC professionals integrating design projects
  • Urban planners visualizing development scenarios
  • Researchers performing spatial analysis
  • Any application requiring precise geometric clipping

Contribution Offer

We are prepared to contribute financially to ensure this feature benefits the entire community and would be happy to allocate necessary resources to make this key functionality a reality. Feel free to reach out if you're interested in collaborating on additional enhancements or related features beyond this core clipping functionality.

Labels

enhancement performance 3d-tiles terrain clipping shadows high-priority

@javagl
Copy link
Contributor

javagl commented Jun 3, 2025

I added a PR to address the performance issue, at #12650 . It's a quick shot, based on my investigations in that issue. Maybe it's at least a reasonable step to alleviate the performance issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants