Coder Social home page Coder Social logo

finitesingularity / obs-stroke-glow-shadow Goto Github PK

View Code? Open in Web Editor NEW
104.0 104.0 7.0 1.52 MB

An OBS plugin to provide efficient Stroke, Glow, and Shadow effects on masked sources.

License: GNU General Public License v2.0

CMake 26.42% Shell 4.81% C 68.77%

obs-stroke-glow-shadow's People

Contributors

cooliguay avatar dnaka91 avatar exeldro 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  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

obs-stroke-glow-shadow's Issues

[FEATURE] - Glow should be rendered out of sources bounds

Is your feature request related to a problem? Please describe.
I'm not sure if this is a bug or intentional behavoiur but it feels kind of odd, that the glow doesn't show out of the sources bound. It gets cut off.

Describe the solution you'd like
I'd expect the glow to not be cut off. For now that's only possible if I'd give the png more blank space to the edges.

Describe alternatives you've considered
Only considersation would be to add more blank space to the PNG to the edges.

Additional context
Here's a screenshot display an image and the glow applied that gets cut off:
https://imgur.com/a/E0EX1Fh

[BUG] - Windows Installer version being flagged as a virus on some PCs

Describe the bug
The windows-installer version of the plugin is being flagged as a virus by Windows Defender, but only on some PCs. I've had 2 reports of this, but hundreds of other downloads that have not reported, and downloading to 5 of my own PCs yields no flag. Very hard to nail down as I can not replicate.

[BUG] - Alpha Color broken since 1.0.0

Describe the bug
Alpha coloring on any of the Stroke, Glow, and Shadow filters no longer work properly since version 1.0.0 (0.3.0 works fine)

To Reproduce

  1. Install any version of Stroke Glow Shadow above 0.3.0
  2. Apply any Stroke, Glow, or Shadow filter to a source
  3. Edit the filter so that the effect is visible
  4. Change the color to something like magenta (for easy visibility)
  5. Notice how it works fine, then, change the alpha channel of the color from 255 to 0
  6. No alpha channel difference should be visible.

Expected behavior
Expecting the behavior to be like 0.3.0, where Alpha Channel support works

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

Here's how it should look, this is version 0.3.0

This is how it currently looks in the latest version, 1.0.2

Environment

  • OS/Version: Windows 10
  • OBS Version: 30.0.2
  • Plugin Version: 1.0.2 (happens on 1.0.0 aswell)

GPU

  • GPU make/model: NVIDIA RTX 4060
  • GPU VRAM: 8GB

Additional context
As a workaround, I'll be downgrading to version 0.3.0 in the meantime. Thank you for all that you do!

[FEATURE] - Inner and outer stroke simultaneously

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

I was trying to combine a stroke + glow around my camera, then further animate it with the obs-noise plugin to make it constantly move withe the noise displacement filter.

When doing that it basically works, but the noise displacement creates gaps between the camera input and the border when using an outer stroke.

Describe the solution you'd like

It would be great to have some "on the border" stroke option, which places it right at the edge of the source.

For example, given a stroke width of 2, it would draw the stroke both 1px outside and inside the edge of the source.

Describe alternatives you've considered

I tried getting this to work by creating 2 stroke sources, one for outside and one for inside the base source. This still created a gap because the inner stroke needs a positive offset to draw an actual stroke or it fills up the entire source.

Additional context

[BUG] - Inner Stroke not applied correctly to the outline if specific other effects were applied previously

Describe the bug
I have a text source I am applying various animated effects to, then I want to apply a stroke and glow effect at the end. When doing this with StreamFX SDF effects with just inner glow (used as sort of stroke) and outer glow it's working fine, but trying to replicate the stroke with the Stroke filter from this plugin seems to be impossible, because the outer edges are not detected correctly.

To Reproduce
Create a text source with some text, apply the fire.shader from Exeldros Shaderfilter plugin, then the Inner Stroke.

Expected behavior
Detect the edges/outline correctly and apply the stroke based on them on the inside.

Screenshots
StreamFX variant:
image

Variant with Stroke filter from this plugin, note how the stroke is applied only partially within the K:
image

Only fire effect and a green Inner Stroke for an easier repro scenario:
image

Environment

  • OS/Version: Windows 10
  • OBS Version: 29.1.3
  • Plugin Version: 1.0.2

GPU

  • GPU: NVIDIA RTX 3090
  • GPU VRAM: 24 GB

Additional context
Setting it to Outer Stroke makes it detect the edges correctly:
image

[BUG] - Incorrect Glow color in most OBS projectors displayed on 10 bpc color depth monitors

Describe the bug
In OBS Source, Group, and Scene projectors displayed on 10 bpc color depth monitors, the following is inaccurately light (does not match OBS' built-in Preview):

  1. the color of glow SOURCES,
  2. the color of glow FILTERS, and
  3. the color of the sources to which glow FILTERS are applied.

To Reproduce
Steps to reproduce the behavior:

Glow SOURCE

  1. To a scene, add a group.
  2. To the group, add a Text source. (Other sources should also work, though Color sources do NOT.)
  3. To the group, add a Glow source, setting the Source = the Text source, and the rest of the settings as follows:
    • Position: Outer Glow
    • Blur Type: Triangular
    • Infill: NO
    • Size: 50.00px
    • Intensity: 200.00%
    • Fill Type: Color
    • Color: #ffa200
  4. Right-click the glow Source, Group, or Scene, and select either a fullscreen or windowed projector from the resulting menu.
  5. If the resulting projector is not yet displayed on a monitor that is set to a 10 bpc color depth, either change the monitor's color depth to 10 bpc, or move the projector onto a monitor that is already set to a 10 bpc color depth.
  6. Notice that the color of the glow is lighter in the projector than it is in OBS' built-in Preview, even when they are both displayed on the same monitor.

Glow FILTER

  1. To a scene, add a group.
  2. To the group, add a Text source. (Other sources should also work, though Color sources do NOT.)
  3. To the Text source, add a Glow filter with the following settings:
    • Position: Outer Glow
    • Blur Type: Triangular
    • Infill: NO
    • Size: 50.00px
    • Intensity: 200.00%
    • Fill Type: Color
    • Color: #ffa200
  4. Right-click the text Source, Group, or Scene, and select either a fullscreen or windowed projector from the resulting menu.
  5. If the resulting projector is not yet displayed on a monitor that is set to a 10 bpc color depth, either change the monitor's color depth to 10 bpc, or move the projector onto a monitor that is already set to a 10 bpc color depth.
  6. Notice that the colors of the text and the glow are lighter in the projector than they are in OBS' built-in Preview, even when they are both displayed on the same monitor.

Expected behavior
In OBS Source, Group, and Scene projectors displayed on 10 bpc color depth monitors, the following will be accurate (match OBS' built-in Preview):

  1. the color of glow SOURCES,
  2. the color of glow FILTERS, and
  3. the color of the sources to which glow FILTERS are applied.

Screenshots

  1. Table: OBS Projector Color Observations: https://drive.google.com/file/d/1IA7axsKJVkMPZLT5BRgv6DOsEqPuoX0X/
  2. 10 bpc Monitor | Glow Source: https://drive.google.com/file/d/19ud3uI0Bmt5CX5x_XuYst8_ctKs9p39-/
  3. 10 bpc Monitor | Glow Filter: https://drive.google.com/file/d/1ls-CFZvQDIMwuRJ4QHfJuU9butWAGIfb/
  4. 8 bpc Monitor | Glow Source: https://drive.google.com/file/d/1Bi-GtZmOAJhoUFdib2wV09Wr1lNAhAdi/
  5. 8 bpc Monitor | Glow Filter: https://drive.google.com/file/d/1q9iCY2TqMSWEw6bkKGlSV9iKosbY4MoG/

Environment

  • OS/Version: Windows 10 Pro v22H2
  • OBS Version: 30.1.1 (64 bit)
  • OBS Plugin/Version: Stroke Glow Shadow filter v1.0.2
  • Glow Source/Filter Settings:
    • Position: Outer Glow
    • Blur Type: Triangular
    • Infill: NO
    • Size: 50.00px
    • Intensity: 200.00%
    • Fill Type: Color
    • Color: #ffa200

GPU

  • GPU make/model: Nvidia RTX 3080 TI
  • GPU VRAM: 12Gb

Additional context
I hope that the following discoveries will assist in the swift resolution of this bug:

  1. The issue does NOT occur on 8 bpc color depth monitors. (See images 4 and 5.)
  2. The issue does NOT occur in OBS Preview projectors, even when they are displayed on 10 bpc color depth monitors. (See bottom right quadrant of images 2, 3, 4, and 5.)
  3. Applying a crop transform to a Group containing the glow source/filter resolves the issue in OBS Scene projectors, but not in OBS Group or Source projectors. (Links to images demonstrating this can be found on this Google Sheet: https://docs.google.com/spreadsheets/d/1_dnKC-JnEzhSa8Pdup45AW591UdQ6WIaNiVWC9VGtr0/ )
  4. Applying a crop transform to the glow SOURCE or the source to which a glow FILTER is attached resolves the issue in OBS Scene AND Group projectors, but not in OBS Source projectors. However, this "workaround" has the unwanted side effect of shrinking the glow and adding what appears to be a drop shadow around it. So, one could argue that this "workaround" is, itself, bugged in that it results in unexpected, undesireable behavior. (Links to images demonstrating this can be found on this Google Sheet: https://docs.google.com/spreadsheets/d/1_dnKC-JnEzhSa8Pdup45AW591UdQ6WIaNiVWC9VGtr0/ )

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

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

  • OS/Version: Windows 11
  • OBS Version: 29.1.3
  • Composite Blur Plugin Version: [TODO]
  • Blur Algorithm/Type: [TODO]

GPU

  • GPU make/model Nvidia 4070
  • GPU VRAM 12Gb

[BUG] - Outer Shadow applies color correction

Describe the bug
Applying an outer shadows, seems to apply some sort of color correction

To Reproduce
Steps to reproduce the behavior:

  1. Apply Shadow filter
  2. Choose Outer Shadow

Expected behavior
There shouldn't be any color correction

Screenshots
CleanShot 2023-10-05 at 12 13 14@2x
CleanShot 2023-10-05 at 12 13 26@2x

Environment

  • OS/Version: Mac OS 14
  • OBS Version: 29.1.3
  • Composite Blur Plugin Version: 1.0
  • Blur Algorithm/Type: Triangular & Dual Kawase

GPU

  • GPU make/model Mac Mini M1

Additional context
Didn't have the bug with the previous version

[BUG] - Stroke on adv.Mask Source alpha issue

Describe the bug
I have a color source with advanced Mask filter on it. the color source has some alpha in it.
When I add the stroke filter to the source the alpha is sort of overwritten by the color of the stroke.

To Reproduce
Steps to reproduce the behavior:

  1. create color source and set alpha to lower than 255 (for testing I did 120)
  2. add adv. mask (any shape)
  3. add stroke filter (order after adv. mask)
  4. switch between stroke offset 0 and 1 to see effect
  5. optional: add a second item behind color source to check on alpha (I added a text source)

Expected behavior
alpha should be applied to the color source regardless of stroke offset.
Inner stroke applies alpha, but overwrites color completely

Screenshots
grafik
grafik
grafik
grafik

Environment

  • OS/Version: Windows 11
  • OBS Version: 30.0.2
  • Stroke Glow shadow: 1.0.2 & Adv. Masks 1.1.0

GPU

  • GPU nvidia RTX 3060 ti
  • GPU VRAM 8GB

Additional context
Haven't found a similar issue, but could be related to #36

[FEATURE] - All Contributors

Get the all contributors bot working with the repo, so that everyone gets recognized for their contributions to the project.

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.