CesiumGS / CesiumGS/cesium

Terrain skirts are causing artifacts in terrain shadows

Open
#11,459 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

category - graphics category - terrain and imagery type - bug
Dominant language
JavaScript
Stars
15.8k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

When terrain shadows are enabled, the skirts contribute in casting shadows causing shadows artifacts.

Screenshot 2023-08-07 16 56 34

This is better visible when the light source is tangent to surface (e.g. it is near the horizon).

I'm attaching a simple sandcastle example for demonstrating the current behavior: advance the time through the timeline for seeing the shadows artifacts caused by the skirts. Disabling the terrain skirts gets rid of some of those artifacts, but that of course has some other bad side effects, e.g. worse tiles edges connection

sandcastle

Sandcastle example:
Sandcastle

Ideally, I solid shadow should be casted when the light is low and the light source is occluded by a skirt "wall". Something like in the following animation

sandcastle_desired

Browser:
any

Operating System:
any

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the linked Sandcastle example and reproducing the artifacts with terrain shadows enabled, especially when the light is near the horizon. Investigate terrain skirts' shadow behavior; done means low-angle lighting produces solid skirt-wall occlusion without the reported shadow artifacts or disabling skirts.

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
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.