FiniteSingularity / obs-stroke-glow-shadow

An OBS plugin to provide efficient Stroke, Glow, and Shadow effects on masked sources.
GNU General Public License v2.0
96 stars 7 forks source link

[BUG] - Drop shadow applied to a scene not shown when outside program area #32

Closed ajlakanen closed 8 months ago

ajlakanen commented 8 months ago

Describe the bug Drop shadow applied to a scene is not shown when the source (e.g., display capture) fills the whole program area

To Reproduce Add drop shadow to a Scene (let's call that Scene A) that has only one display capture source that fills the whole program output area

Expected behavior When Scene A is added to Scene B, and the size of Scene A is reduced, the drop shadow should be visible.

Environment

GPU

FiniteSingularity commented 8 months ago

Hi @ajlakanen-

Unfortunately, this is a limitation in the way that OBS applies shaders to scenes, and would require upstream changes in OBS itself.

There is, however, a workaround, and that is to embed the source in another scene, reduce the source size in that scene, and apply the drop shadow to that scene:

  1. Scene A is the display capture you want to have a drop shadow on.
  2. Scene B is where you want a smaller Scene A to appear with the shadow.
  3. Scene C is a wrapper scene for Scene A.
  4. Add Scene A to Scene C, and resize Scene A to the size you want.
  5. Add a drop shadow to Scene C.
  6. Add Scene C to Scene B

I know it is not ideal, but currently it is the only workaround I know of. If anyone else has any ideas on how to make this simpler, please feel free to chime in.

ajlakanen commented 8 months ago

Thank you for the explanation. The workaround is OK, and tackles my issue for now. Thanks again!