Magodra / GlowBorderEffect

MIT License
20 stars 3 forks source link

Environment settings from the project setting are ignored #4

Open mfg92 opened 1 month ago

mfg92 commented 1 month ago

First of all, thank you very much for providing this addon to the community.

When I added the GlowBorderEffectRenderer to my scene, I noticed that the image quality dropped as there was no antialiasing and also the fog of my scene disappeared. So I investigated how the addon works. My conclusion is that the whole scene is rendered twice (+ the glow prepass):

So the addon

  1. renders the whole scene
  2. renders only the stuff that should get a glowing border (prepass)
  3. blurs the prepass
  4. combines the results of the previous three steps
  5. places a 2D component with the resulting image over the whole screen, hiding the 3D scene that is rendered by default.

Performance-wise this is bad and many of the project settings are ignored by this approach.

I modified the addon so that it only creates the blurred borders, the rest of the container is transparent. This way the addon does not do the mixing of the scene and the glow itself, instead the normal overlay mechanism of godot does the job for us.

If you are interested in the code, I am happy to share it with you. Either as a ZIP so you can pick the parts you like or I can make a pull request.

Magodra commented 1 month ago

Sure if there are way to improve I would very much appreciate it. Pull request might be good, then your contributions will be traced as well.

-Anders

man. 14. okt. 2024 kl. 18:40 skrev mfg92 @.***>:

First of all, thank you very much for providing this addon to the community.

When I added the GlowBorderEffectRenderer to my scene, I noticed that the image quality dropped as there was no antialiasing and also the fog of my scene disappeared. So I investigated how the addon works. My conclusion is that the whole scene is rendered twice (+ the glow prepass):

  • inside the addon with the default WorldEnvironment settings for the ViewportScene
  • outside the addon in the root viewport

So the addon

  1. renders the whole scene
  2. renders only the stuff that should get a glowing border (prepass)
  3. blurs the prepass
  4. combines the results of the previous three steps
  5. places a 2D component with the resulting image over the whole screen, hiding the 3D scene that is rendered by default.

Performance-wise this is bad and many of the project settings are ignored by this approach.

I modified the addon so that it only creates the blurred borders, the rest of the container is transparent. This way the addon does not do the mixing of the scene and the glow itself, instead the normal overlay mechanism of godot does the job for us.

If you are interested in the code, I am happy to share it with you. Either as a ZIP so you can pick the parts you like or I can make a pull request.

— Reply to this email directly, view it on GitHub https://github.com/Magodra/GlowBorderEffect/issues/4, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM3X5LX6H6K65GQXOWDBNMLZ3PXZVAVCNFSM6AAAAABP5MCPDCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU4DMNJUGIZDCOI . You are receiving this because you are subscribed to this thread.Message ID: @.***>