CesiumGS / CesiumGS/cesium

Depth fail epsilon

Open
#6,963 0 comments 0 reactions 0 assignees View on GitHub
category - graphics type - enhancement
Dominant language
JavaScript
Stars
15.7k
Forks
3.9k
Avg merge
4d 6h
Merged PRs (30d)
34

Description

Cesium has a mechanism to draw primitives that fails the depth test with a `depthFailAppearance`, but if a primitive is coplanar with other geometry there may be flickering between the `appearance` and the `depthFailAppearance`. This is a screenshot of a polygon on a point cloud.

flickery2

It would be useful to have a depth fail epsilon where the `depthFailAppearance` is only used if the rendered geometry fails the depth test past by some epsilon value in meters. This would help stop the flickering when viewing the primitive face on but still use the `depthFailAppearance` correctly when viewing it from the other side where the geometry is obscured.

There was also some discussion about this for point clouds in https://github.com/AnalyticalGraphicsInc/cesium/issues/6714#issuecomment-399439401

Contributor guide

Open the contributing guide

Research direction

No file or test is named. Start by locating the Cesium primitive rendering path that handles depthFailAppearance, then read the discussion in issue #6714 about point clouds. Done means preventing coplanar flickering with a configurable depth-fail epsilon while preserving depth-fail rendering when geometry is obscured.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.