Conversation
Member
|
@tritao would it interfere with your work if we merged this? I asked Grok to have a look and the only thing it complained about is always registering a context-destruction callback, also when this mode is not used. |
Contributor
My work does not touch the legacy OpenGL, it's strictly additive, so no conflict there, feel free to merge. |
3 tasks
Member
|
@xy-lin could you please resolve conflicts? Thanks! |
veelo
self-requested a review
September 20, 2026 14:20
veelo
approved these changes
Sep 20, 2026
This branch has not been deployed
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #647
Summary
This adds
WEIGHTED_BLENDtoSoGLRenderAction::TransparencyType, implementing weighted-blended order-independent transparency (WBOIT) from McGuire and Bavoil's 2013 paper.WBOIT accumulates transparent fragments with order-independent blending operations, so object and triangle sorting are not required. It is approximate, but handles intersecting transparent geometry more consistently than sorted alpha blending. The new mode is opt-in; existing transparency types are untouched.
Reference: Morgan McGuire and Louis Bavoil, "Weighted Blended Order-Independent Transparency," JCGT 2(2), 2013: https://jcgt.org/published/0002/02/09/
Implementation
It reuses Coin's existing transparent-object collection and replay machinery, and the new enum value is appended so existing values are unchanged. OpenGL resources are allocated lazily and released through Coin's context-lifetime mechanisms; the currently bound framebuffer is preserved, so the mode works with compatible nonzero framebuffer objects.
Requirements and limitations
Validation
Built Debug and Release on Windows 11 with IntelLLVM 2024.2, Visual Studio 2019 tools, and Ninja. The Coin Debug unit suite passed: 326 tests, 83,566 checks. The mode was also exercised in an application build; comparison images are in #647.