obsproject / obsproject/obs-browser

mix-blend-mode=plus-lighter with partial transparency completely removes elements behind it

Open
#425 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
904
Forks
267
Avg merge
1d 23h
Merged PRs (30d)
2

Description

Operating System Info

Windows 11

Other OS

No response

OBS Studio Version

29.1.3

OBS Studio Version (Other)

No response

OBS Studio Log URL

N/A

OBS Studio Crash Log URL

N/A

Expected Behavior

If you create a browser source that contains two elements that should crossfade into eachother (using linear opacity transitions and mix-blend-mode=plus-lighter), then swapping the opacity should result in the two elements doing a crossfade transition.

A minimal example is provided at https://codepen.io/fugiman/pen/mdvRGMm

I have confirmed this works in Chrome v118 and Chromium v103 (which I believe is what the CEF in OBS 29.1.3 is forked from)

Current Behavior

Instead, on OBS 29.1.3 the bottom element will completely disappear during the transition, and the top element will blend with the background. At the end of the transition the bottom element will snap in at the correct opacity.

In other words, if you are transitioning from bottom -> top, bottom will immediately disappear and top will fade in slowly, ending with top fully visible
transitioning from top -> bottom, top will slowly fade away, and then at the end bottom will snap in completely visible.

Steps to Reproduce
  1. Load https://codepen.io/fugiman/pen/mdvRGMm in Chromium 103 (or Chrome 119) and see the expected behavior
  2. Load in OBS 29.1.3 browser source and see the blue square disappearing
Anything else we should know?

No response

Contributor guide

No contributing guide indexed for this repository

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 loading the CodePen reproduction in the OBS 29.1.3 browser source and compare it with Chromium 103 or Chrome 119, focusing on mix-blend-mode=plus-lighter and opacity transitions. Done means the two elements crossfade without the lower element disappearing or snapping in at the end.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.