-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Change blending options in attempt to fix overlapping billboard fringes. #5066
Merged
Merged
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
e30f96d
Change blending options in attempt to fix overlapping billboard fringes.
emackey 2c5708f
Refactored test and code comment.
emackey c2420ac
Merge remote-tracking branch 'origin/master' into blending-badness
emackey e4c80d6
CHANGES.md
emackey 722c811
Merge remote-tracking branch 'origin/master' into blending-badness
emackey 514857d
Merge remote-tracking branch 'origin/master' into blending-badness
emackey File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does
this._blendOption === BlendOption.TRANSLUCENT
really mean? Does it mean "this billboard collection is for a label collection with backgrounds?" If so, can we just asked the label collection or have the label collection pass in a private flag so this code is more obvious?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good eye, but no.
this._blendOption === BlendOption.TRANSLUCENT
means that the entire billboard is being written in the translucent pass, without an opaque pass. You'll notice on #L1471 that we already use the same test to determine whether or not to write to the depth buffer. This is because, when the opaque pass is NOT in use, we rely on the depth buffer to save us from OIT making everything blend with everything, even if it means "punching holes" in things. When the 2-pass system is in use, we're avoiding the "punching holes" bug by using the depth buffer only in the opaque pass and not the translucent pass.So, the difference between single-pass and 2-pass controls a difference in strategy of how we use the depth buffer, and thus should also control the depth test function. In single-pass mode we use
LEQUAL
because the depth buffer is in use and we need to overlap fragments at the same depth. In 2-pass mode we useLESS
to avoid the fringe overlap problem.Basically, with this change, single-pass mode has returned to the behavior from before the "punching holes" fix, making it fully backwards-compatible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, can you improve the
Allows label glyphs and billboards to overlap
comment to better explain this?