Adjustment Layer

Adjustment Layer 1.0.5

Horaiken

New Member
Horaiken submitted a new resource:

Adjustment Layer - A transparent source that applies effects across all sources behind it.

An Adjustment Layer source allows effect filters applied to it to affect all sources placed behind it, similar to adjustment layers in video editing software.
OBS Studioに「このソースより後ろにある全てのソースに、まとめて横断的にフィルターをかける」ができる新たなソース『調整レイヤー』を追加するプラグインです。




How to Use / 使い方​

  1. Add "Adjustment Layer" from the Sources panel.
    ソース一覧で 「調整レイヤー」 を追加します。
  2. Place it above the sources you want to...

Read more about this resource...
 
Hi. I use groups. You can place a group that has your overlays / sources in each scene. you turn any in the group , on or off and it affects all scenes when that scene is visible. This includes text and video overlay sources
You’re absolutely right
Groups can achieve a very similar result, and it’s a solid workflow.

The reason I decided to build this plugin anyway is that the usability and mental model are slightly different for me.

Part of it comes from being used to Photoshop / After Effects–style adjustment layers, but there’s also a small technical reason:

With group sources, the concept of a fixed canvas size can get a bit tricky.
If any source inside the group extends beyond the canvas, the effective filter area grows, which means the GPU ends up processing a much larger region than intended.

To avoid that, I often had to carefully crop sources inside the group — or accept some unnecessary GPU cost.

This plugin was mainly about freeing myself from having to constantly think about that tradeoff
 
You’re absolutely right
Groups can achieve a very similar result, and it’s a solid workflow.

The reason I decided to build this plugin anyway is that the usability and mental model are slightly different for me.

Part of it comes from being used to Photoshop / After Effects–style adjustment layers, but there’s also a small technical reason:

With group sources, the concept of a fixed canvas size can get a bit tricky.
If any source inside the group extends beyond the canvas, the effective filter area grows, which means the GPU ends up processing a much larger region than intended.

To avoid that, I often had to carefully crop sources inside the group — or accept some unnecessary GPU cost.

This plugin was mainly about freeing myself from having to constantly think about that tradeoff
I , myself have a premier-pro background, which has the same sort of layer management. I do love the compositing features of obs. I actually have 3 groups. Each scene has one associated source and a overlay group on top of it, an underlayer group which is under the main source and a 3rd group that is music and sound effects. All the different sources are empty on startup and dynamically loaded with videos, text files, slideshows, etc as it goes from scene to scene. I use a timeline editor, a overlay editor and a scheduler to do this.

I use the same scene-source scene collection for everything with enough overlays in different places to do anything. For me, it was important to have no fixed sources and to pick what overlays i wanted to make visible for that scene. And then if needing something different, just adding additional overlay sources as needed.

I am interested in how you handle multiple overlays at the same time.
 
I , myself have a premier-pro background, which has the same sort of layer management. I do love the compositing features of obs. I actually have 3 groups. Each scene has one associated source and a overlay group on top of it, an underlayer group which is under the main source and a 3rd group that is music and sound effects. All the different sources are empty on startup and dynamically loaded with videos, text files, slideshows, etc as it goes from scene to scene. I use a timeline editor, a overlay editor and a scheduler to do this.

I use the same scene-source scene collection for everything with enough overlays in different places to do anything. For me, it was important to have no fixed sources and to pick what overlays i wanted to make visible for that scene. And then if needing something different, just adding additional overlay sources as needed.

I am interested in how you handle multiple overlays at the same time.
That makes sense — instead of switching between predefined scenes, you’re building a highly reactive setup that adapts to the situation.
That’s a very professional way of using OBS ✨

This adjustment layer plugin doesn’t interfere with that structure at all.
It’s more of an approach to changing the *scope* of effect filters.

I was thinking — how about placing an “Adjustment Layer” source on top of your existing system, and handling filter switching or replacement there?

That way, you wouldn’t need to change your overlay behavior at all, and it would effectively add one additional layer of control
 
That makes sense — instead of switching between predefined scenes, you’re building a highly reactive setup that adapts to the situation.
That’s a very professional way of using OBS ✨

This adjustment layer plugin doesn’t interfere with that structure at all.
It’s more of an approach to changing the *scope* of effect filters.

I was thinking — how about placing an “Adjustment Layer” source on top of your existing system, and handling filter switching or replacement there?

That way, you wouldn’t need to change your overlay behavior at all, and it would effectively add one additional layer of control
My app is a 24/7 program that was created in visual studio. It reads all the source and scene names of the current obs startup scene collection and dynamically expands or contracts as scenes and overlays are added or removed. It basically uses obs as a front end. Each of the overlays sources are preconfigured with whatever you might want. Such as scrolling text, logo transparency, green screen masking, etc. There is a limit to the number of overlays used but in operation, only the desired overlays are turned to visible, so only those layers are rendered. So basically I have a bunch of sources preconfigured for filters. My app just loads the new contents to those source and doesn't worry about what they do. I might have a source with black text or a difference one with white text. The number of overlays source can grow pretty fast. I let obs do all the work and only load contents and just turn things on and off. I do handle pause,start on visible, always on (for browsers).

Now, i can see how this would be handy if for instants, I had one source turned on with black text font and wanted to change to white. But I could do that with just another source. So, could i talk to your layer via over the websocket?

I've tried to keep the overlay concept simple and reusable.
 
Here is a video i created about casttor. Gives you an idea about the app.

 
Hi,
I just successfully installed your plugin on my Mac, but I don't see it in filters or anywhere. Can you please tell me where to access it? Thank you for creating this plugin. Can't wait to use it
 
The Adjustment Layer is a Source. Thank you. I just checked the plugin manager and it is not present. Also, I'm trying to add it as a source, but it is not on the list. Update: Later, I saw a load error in the stream up plugin updater. "Failed to load. Not supported." Maybe because it's a new plugin? Thanks.
 
Last edited:
Horaiken updated Adjustment Layer with a new update entry:

Fix: Correct alpha blending for transparent and sRGB sources

This release fixes rendering issues with transparent and sRGB-aware sources when used with the Adjustment Layer.



Bug Fixes​

Fix transparent source rendering (WebM, Spout, etc.)​

  • Transparent pixels in sources like WebM and Spout were rendered as opaque when the Adjustment Layer was enabled
  • Root cause: the plugin used premultiplied alpha blending (`ONE, INVSRCALPHA`) for source capture, but some sources output straight...

Read the rest of this update entry...
 
Back
Top