Giter Site home page Giter Site logo

obs-advanced-masks's People

Contributors

cooliguay avatar finitesingularity avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

obs-advanced-masks's Issues

[FEATURE] - Adjustment Masks

Is your feature request related to a problem? Please describe.
Rather than limit the plugin to just alpha masks, allow the user to use the same masking to apply various color corrections. I propose the following masked adjustments:

  • Brightness
  • Contrast
  • Saturation
  • Hue Shift

Potentially we could also add a color multiply and a color add.

Higher scale option (more than 100%)

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
Scale/Position Properties: Scale
It would be nice to have to option to go higher than 100%. Maybe up to 200%?

Describe alternatives you've considered
N/A

Additional context
For example, if you wanted to "zoom", such as a face closeup, you can't do it beyond 100% scale. Having the option to go up to 200% would open up another possibility.

[BUG] - Incorrect scaling of shape masks.

Describe the bug
Shape masks are all 20% larger than the specified width/height input by the user.

To Reproduce
Steps to reproduce the behavior:

  1. Create a color source.
  2. Add an advanced rectangle shape mask to the color source. Set the mask width/height to 100px.
  3. The resulting square color source is 120px x 120px.

Expected behavior
The masked color source should be 100px x 100px.

Additional context
The issue and fix for this is simple. I made 2 errors in how I set things up:

  1. The global scaling factor that is used for the Scene View Transformation option defaults to 120%
  2. I use the global scaling factor to scale the size of non-Scene View Transformation masks.

To fix this, we simply need to have a check to see if scene view transformation is turned on, and if it is not, dont scale by the global scaling factor. Also, the default value for this should be 100% instead of 120%.

The elephant in the room
This fix is a breaking fix. After applying these changes all non-scene-view-transformation shape masks will instantly become 20% smaller. Additionally, any Move plugin, or 3rd party changes (e.g.- websockets) will now be incorrect.

So what can we do about it?
(Huge thanks to Exeldro for pointing this out). We can use the source version system that OBS provides, which can leave any existing plugins using the old, incorrect scaling, but any new plugins will use the correct sizing. This will cause a little inconsistency between pre-bugfix created masks, and post-bugfix created masks, but I can deal with those questions as they come (And possibly add a note to the pre-bugfix filter interface).

[FEATURE] - Linear Gradient Mask

Describe the solution you'd like
Add a new mask type- linear gradient. The gradient applied as a mask should have parameters for size in px, angle, and location.

[FEATURE] - Ellipse Mask

Describe the solution you'd like
Add ellipse to shape mask. This could potentially be added to the circle mask.

[BUG] - Ellipse masks disappear when ellipse height is equal to ellipse width.

Describe the bug
If the ellipse height and width are equal, the ellipse mask vanishes.

To Reproduce
Steps to reproduce the behavior:

  1. Create an ellipse mask.
  2. Set the width and the height to the same size.
  3. Witness the ellipse mask disappear.

Expected behavior
Ellipse masks with an equal height and width should render as a circle.

Additional context
This is due to the SDF function used, which divides by the difference between the width squared and height squared. If width equals height, this causes a divide by zero. Easy fix is to check before calling the render function, and if width == height, call the circle shader instead, after setting the circle radius to the ellipse width/height value.

[BUG] - Advanced Mask filter has strange behavior when HDR is active

Describe the bug
When setting up an advanced mask filter on a source, there was strange behavior while HDR was enabled on my primary monitor. The initial scene, without the filter, looked like this:
image

The preview/filter settings window showed this:
image

When activating the filter to adjust the mask, the preview became brighter and the mask was not visible:
image

However the actual current scene did show the correct changes:
image

And moving the filter settings window to a non-HDR monitor corrected the behavior as well (note: filter size changed to better show effect):
image

In addition, turning off HDR on the HDR monitor showed the expected behavior

To Reproduce
Steps to reproduce the behavior:

  1. Create a scene and apply Advanced Mask filter.
  2. View settings window on a HDR monitor
  3. Apply alpha mask, shape, and adjust parameters
  4. Note that the preview does not show the changes and looks much different than expected.
  5. Turn off HDR or move window to a non-HDR monitor
  6. Note that preview in settings window is correct

Expected behavior
Preview should show filters whether on an HDR or non-HDR monitor.

Screenshots
Screenshots included in description.

Environment

  • OS/Version: Windows 11
  • OBS Version: 30.0.2
  • Plugin Version: 1.1.0
  • Mask Algorithm/Type: Alpha/All

GPU

  • GPU make/model: nvidia RTX 3060
  • GPU VRAM: 12Gb

Additional context
I appreciate you

[FEATURE] - Scene Transforms for "Source" Mask Type

Is your feature request related to a problem? Please describe.
It is nearly impossible to set up a video mask without significant re-rendering at a large enough scale to fit flexibly on the source being masked.

Describe the solution you'd like
When attempting to create a video mask for a source, it would be lovely to have control of the mask's position, scale, and more, similar to how the shape mask has "Scene View Transform" options.

Describe alternatives you've considered
An alternative option, may be to allow the user to "pin" the transforms of the source mask to the mask effect. So that when transforming the mask itself, from within the viewport of OBS, it would automatically affect the source being masked.

As an even more powerful option, being able to read / parse the transform of the mask, and live-applying its entire transform to the source being masked, would be very very useful.

Additional context
None that I can think of, I've linked the file I'm attempting to use as a source mask for a webcam; where I discovered I am having this issue.
https://drive.google.com/file/d/1mR8atbqleow0Trf6nUQ20Y3WvKhTN71b/view?usp=sharing

[BUG] - Scale settings are not saved on exit

Describe the bug
Setting scale to less than 100% does not save on exit, reverts back to 100% on next load.

To Reproduce
Steps to reproduce the behavior:
Set shape to rectangle, set properties to your liking and then set the scale setting to 30% for example. Close OBS, wait a few seconds, then reload. The source should be back to 100% in scale.

Expected behavior
Scale setting should remain at what it was set on exit.

Screenshots
If applicable, add screenshots to help explain your problem.

Before close (source filter set at 30% scale):
image

After close and reload (source filter reverts back to 100% scale):
image

Environment

  • OS/Version: [e.g. Windows 10]
  • OBS Version: [e.g. 29.1.3]
  • Advanced Mask Version: Pre-Release 0.0.6a

[FEATURE] - Rotate Shape Masks.

Describe the solution you'd like
Provide a rotation field for all shape masks (except circle) that allow the user to arbitrarily rotate the mask.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.