YoYoGames / GameMaker-Bugs

Public tracking for GameMaker bugs
24 stars 8 forks source link

Shader bounds #2829

Open lioen-dev opened 1 year ago

lioen-dev commented 1 year ago

Is your feature request related to a problem?

In gamemaker, you can add shaders to rooms to make them look better. however, when a shader is assigned to only one layer, shaders like glow completely don't work. the glow doesn't extent beyond any objects in that layer, so if i have a layer for just my player, and i want to make it glow, the glow doesn't reach past the sprite, which completely removes the functionality of the shader.

Describe the solution you'd like

a slider in the applicible shaders to be added, that can let the shader go beyond its normal bounds by that value; or something like that.

Describe alternatives you've considered

you can have it affect the player and the layers below it, which kind of works, but it gives EVERYTHING below the player glow as well. i don't know about your game, but in mine the floor doesn't glow :|

Additional context

thx <3

JordOfTheFlies commented 10 months ago

Bounds isn't really the issue. You need to be applying the effect to a surface. Being able to easily set a layer to render to a surface and have any effects be applied to the surface itself would be nice. Unfortunately doing the neatest way of doing this manually by using layer scripts to render the layer to a surface would require using a 'custom' shader rather than an inbuilt effect I'd imagine (you can copy the contents of _effect_glow_shader.fsh from GM's cache too, but it's slightly more work to set up). I suppose using layer scripts to render your layer to a surface, you could apply the glow effect to a dummy layer that only contains an object that renders that surface.