HSM Mega Bezel Reflection Shader! - Feedback and Updates

:star_struck: :star_struck: :star_struck: :star_struck: Fantástic work @TheNamec ! I want it, a love it!

4 Likes

Been a while. Haven’t had a chance to do much retro gaming lately. Still, decided to replay the zero series and wow does this shader looks stunning on an OLED. Even GBA games look amazing. I always look forward to new updates!

8 Likes

Hey @HyperspaceMadness an idea struck me and I had to share it, even if I suppose you are in feature freeze on the road to the 1.0 release!

Introducing Mega Backlight

I am thinking about some sort of full screen dynamic backlight à la “Philips Hue/Ambilight”.

Feels like we are really close to something like this thanks to the GLASS feature, of course we need the device layer to be on top for extra silhouette coolness.

To perfect the control you may add customisation for:

  • Blurriness
  • Light transitions decay speed (the upper limit being ‘real-time’ like the GLASS preset)
  • Backlightning area (width/height, posX, posY)
  • Colorization controls (hue, saturation, brightness)

It would be the ultimate filler and a new modern enhancement for retrogaming! Bonus side effects: less fatigue on eyes and IRL room lightning effect for people playing on big TVs :star_struck:

EDIT1

On a sidenote… this would introduce a problem with my actual implementation of device layer assets as I embed a little outershadow to add some depth between device/decal and background/led layers. I will of course remove them.

EDIT2

Some beloved one :heart_eyes: may develop an outer shadow control like the one already existing on bezel frame. This way we can perfect the silhouette effect on NIGHT lightning presets, while keeping the realistic shadow on DAY ones.

10 Likes

OMGosh @HyperspaceMadness! This is a brilliant idea! Especially for those on IPS screens that struggle to display true black in pitch black rooms! I can see myself using this in a very subtle quantity. I’m imagining a soft, dark blue as I write. This can even supliment those with RGB lighting setups! I can see that Phillps example with independent left and right lighting with the Blue blending into Red to make magenta in the center!

I’m also thinking morphing mode for OLEDs in addition to static mode!

3 Likes

This sounds like a really cool idea! I think this management of lighting and animating lighting of some sort for our OLED users is probably the next bigish feature after the V1 release.

We’ll have to think about about how we want to do the background light, if the light added is actually a super blurred version of the screen/reflection image, or an automatic choice of some colors from the image to simulate a few different colors of lights blending together.

Yeah it would be nice to be able to have this shadow be autogenerated by the shader. I’ll have to see how we could achieve this soft shadow based on the outline/mask of the upper layers. We may need an additional blur pass for it.

4 Likes

I just came across this and it looks very promising:

Apparently @Juandiegous fine tuned the Blargg NTSC Filter to match a real Sega Genesis without producing the undesirable artifacts we have all come to expect from it!

Can this be tested to verify the improvements and integrated into the Mega Bezel Reflection Shader?

So this is a filter rather than a shader, I haven’t used filters much. I’m not sure if they are applied before or after the retroarch shader pipeline. If they are going to be applied after they aren’t going to be any use with the mega bezel. You should try them out and see what happens, I think also sometimes a core can use the filter directly.

Dunno - Shaders & Filters? - RetroArch / General - Libretro Forums

1 Like

I just tried @Juandiegous’s custom filter and it works very well in conjunction with HSM Mega Bezel Reflection Shader! The results are better than the filters that are currently there in the Filters folder. It does the blending without being too excessive in the blur and distortion department.

3 Likes

Whoo hoo just hit 6000 downloads of this little package!

Big “surprise” incoming, hopefully tonight :slight_smile:

4 Likes

Fingers crossed and waiting with baited breath!

IntroImage_MegaBezelLogo_512

Mega Bezel is updated to V 0.9.090 2021-12-24

This is the first release candidate for the V1, We’ll get some usage from the community & do some bug fixes, then probably another RC then when things are super stable it will get submitted to the main repo as the V1.

Changes:

  • The Headlines:

    • Caching for Improved Performance
    • Guest NTSC presets added
    • Big rework on preset levels
      • Different levels of presets are now relatively consistent and make more sense from a user perspective
      • You may need adjust the paths in your presets to point to these new file names
  • BIG Changes to the preset levels,

Snapshot from the help in a markdown reader

Change Details:

  • Viewport Zoom & Position
  • Caching Added for much better Performance
    • When caching is on (on by default) the performance will be much better
    • Stuff that is cached:
      • Passes which do not change dynamically every frame
      • Portions of the viewport which do not change dynamically every frame (E.G. Outside the Bezel)
      • Blinking red visual indicator when cache is updating
  • Added Negative Cropping
  • Readme/Help partially updated
    • Read in a markdown reader for nice formatting
    • Some explanation of some of the new features is in here
  • Guest DrVenom
    • New Guest-DrVenom NTSC preset added, Thanks @guest.r!!!
    • Updated Guest shaders to crt-guest-advanced-2021-10-22-release1
    • Scanline Gamma is on all GDV presets and is a 1 based gamma adjustment
    • Noise can now be turned on/off separately from deconvergence
  • @DariusG’s GDV-Mini is now used for the POTATO preset which scales better than ZFast
  • Cyber’s Presets added to Experimental folder
  • Community_CRT_Variations presets added (Moved from Experimental) includes:
    • BendBombBoom Presets
    • NESGuy presets
  • Put Vignette in Post-CRT pass, Turn off Grade Vignette by default
  • Put Grade after afterglow, remove brighten black from afterglow
  • Added STD-GLASS preset
  • Auto Aspect Ratio
    • Catch sony fmv res 320x480 as Horizontal Aspect
    • Catch sony fmv res 512x480 is now caught as 4:3 and Horizontal
  • Independent Black Edge Corner scaling
  • Color Tweaks fixed, Display Gamut last option is now in range
  • Image Layering
    • Image aspect is now taken from the image resolution instead of setting extra parameters
    • Added Mipmapping blend to avoiding the crunchy pixel look when graphics are scaled down, e.g. 4k background on 1080p monitor
    • Added Color Control on all Layers
    • Added Viewport and Full scaling mode for image layers and AmbientLightingImage
  • Automatic screen placement
    • Add option for Black and White placement image requested by @briball
    • Parameter USE_IMAGE_FOR_PLACEMENT renamed to HSM_USE_IMAGE_FOR_PLACEMENT
  • Night Lighting / Ambient Lighting
    • NIGHT LIGHTING renamed to AMBIENT LIGHTING
    • AMBIENT LIGHTING now affects tube static reflection & Tube diffuse image
    • New great Night Lighting image by @Duimon
  • Graphics global brightness added so Mega Bezel can be used with “Dark” presets which try to preserve phosphors and then user increases monitor brightness
  • Screen Curvature: Added 2D Cylindrical Curvature mode requested by @syh
    • This makes the indexes change so they now start at 0 and end at 5.
    • 3D mode is now 3 and 3D cylinder mode is 5
  • Intro Logo is now scaled nicely in Vertical and Dual Screen
  • Tube Diffuse image added, so you can show the phosphor surface behind the CRT image if desired
  • ColoredGelImage renamed to TubeColoredGelImage for consistency
  • Corner radius’ for are now independent, Black Edge, Bezel inside, Bezel Outside
  • On/Off for some effects, which will be off by default like Tube Static Reflection Image

HERE ARE THE LINKS!

Shader Package Approx. 15 MB

Extra Examples Package


INSTALLATION INSTRUCTIONS

  • You MUST use Retroarch Version 1.9.8 or Later (It will fail to load on earlier versions)
    • If you have previous versions of the Mega Bezel installed:
      • Delete the old Mega Bezel stuff from shaders/shaders_slang/bezel
    • Inside the .zip is a bezel folder, copy the bezel folder into your Retroarch/shaders/shaders_slang folder
      • The final path to the Mega bezel should be Retroarch/shaders/shaders_slang/bezel/Mega_Bezel
    • Set video driver to Vulcan
      • It will run in GLCore but seems faster in Vulcan
      • Some users have run it successfully in D3D11 but with a slow load time
    • Set Video / Scaling / Aspect Ratio to Full
      • This will match your monitor aspect aspect ratio
    • Set Video / Scaling / Integer Scale to OFF
    • Set Video / Output / Rotation to Normal
    • Set Settings / Core / Allow Rotation to OFFImportant for FB Neo
  • Set Video / Bilinear to OFF
    • Load a preset in the shaders menu, Mega Bezel shader presets are found in:
      • shaders/shaders_slang/bezel/Mega_Bezel/Presets
    • When you save a preset make sure you have the Simple Presets feature set to ON
      • This will save a preset with a reference to the preset you loaded plus whatever parameter changes you made
      • This will keep your presets loading properly when the shader updates in the future

Give it a Whirl and let us know what you think!!!

Edit, there was a syncing problem but the files should now be updated

20 Likes

Nice! @HyperspaceMadness!

I have a “bug” to report. When the cache graphics are on, my custom TV image is downsized until it’s gone, leaving only the bezel and reflections (and the game image inside).

This is the background, I’m running Retroarch in 4K. Cache off still works.

Also, can you increase the negative cropping to -15 or -20?

3 Likes

Ok, so does the graphics appear then kind of slide off the viewport?

This is due to having retroarch’s billinear filter on, if you turn this off it will go away :slight_smile: .

I’ll try to fix this so we don’t get this interaction.

It’s sort of possible, but the 10% that’s there now is adds 20% to the core image as it goes through the pre-crt pipeline. To increase it to 20% would add 40% to the core image. The more that is added would slightly slow down the pre-crt processing.

3 Likes

Mega_Bezel_Logo

Mega Bezel is updated to V 0.9.091 2021-12-24 Rel 2

Changes:

  • Fixed issue with caching when bilinear filter is on
  • Increased Negative Crop Range

Happy Bezeling :slight_smile:

8 Likes

Thank you @HyperspaceMadness!

I don’t know if this is a bug, but with this version of the shader when GTU is on, it seems a lot blurrier than before (V 0.9.090 2021-12-24 was fine).

3 Likes

It is probably some new guest setting, not the Mega Bezel. Does adjusting correct it?

I don’t it’s Guest’s because it was working fine before the last update. (0.9.091 2021-12-24 Rel 2) Adjusting makes it better (less blurry).

2 Likes

This seems like a side effect of expanding the image for more negative cropping, because now the game image is actually smaller within the surrounding black space before the crt shader is evaluated.

I can probably compensate in GTU so that we get the same effect as default GTU.

I also having problems loading BSNES core (Retroarch crashs) with the new update (0.9.091 2021-12-24 Rel 2), version before was fine (V 0.9.090 2021-12-24) maybe also related?

The masks also feels “less strong” with the new update, before I was able to see the mask effects better.

Observation: “The new update” I’m mentioning is the last version you posted, the version before (also new) was just fine.

2 Likes

Yeah this might be related to the larger image caused by the larger negative crop, I’m thinking I’m need to backrack on this change since it’s causing this kind of problem.

I’ll put up a new version soon where the cropping is back to what it was before

2 Likes