Mega Bezel Reflection Shader! - Feedback and Updates

So what I think you’re saying is that the carbon fiber texture is still visible, and you would like this be black instead.

If you want this you can use one of the reflection only presets. The next update will have a brightness parameter that you can set to 0 to have a black background.

2 Likes

Hi, if you want to hide fiber carbon texture you can increase [BEZEL] Height and [BEZEL] Width values in the shader settings. You can go try it

2 Likes

Thanks a lot @lesebio. I tried it and can’t remove black corners because it seems there’s no alpha transparent background enabled. It’s usefull to use the shader on a complex image like a gradient (but yes it works with a flat color background).

1 Like

Thanks a lot for your answer @HyperspaceMadness. It’s a pleasure to see this feed followed :wink: So ! I don’t want it to be black, I expected it to be transparent. When I set opacity of the background to 0, I have a black background instead of a transparent background. I will try next @lesebio trick… but I think black corners could still remain.

2 Likes

Hi @kozhco, maybe I’m still not sure what you’re looking for.

Are you meaning the black stripe around the screen inside the reflection? or the area outside the reflection? Is it that you want the reflection to fill the screen and not cut off? If the last is what you want then @lesebio’s suggestion should work.

1 Like

I’m a little confused. What exactly do you expect to see when the background is transparent?

The nothing, that is behind everything, is black. A transparent background will reveal that nothing.

1 Like

By default With [BEZEL] Height at 30 and i get no black corners With an overlay (my setting for all my systems) Arcade games with different screen ratio

I capture the game inside OBS and place it over an image. There’s no overlay. The game capture is on top of everything because sizes of games change. I finally get what I meant by replacing the background image with a transparent image and setting the brightness of the frame to 0 and its opacity to 0 too. Here’s what I can do now:image

1 Like

Well… I expected having only the bezel and a transparent background beyond (the area outside the reflection). The following image is based on @lesebio’s proposal.

As you can see, there’s still black in (very outside) corners and the integration is weird when placed over an image (and not behind).

2 Likes

can you save your .slangp shader preset and share it to investigate settings please, and are you playing windowed or full screen, the image is windowed, i don’t have this black corners and outlines

Why not just add the image as the Background graphic in the shader preset?

1 Like

Hi @Duimon because the games don’t have the same sizes and as I don’t want to resize the window in OBS, I prefer to put the game over the image and not to have some presets for each core…

It seems I didn’t have the last version… So forget about it, I will give it a new try :wink:

If your background image is always the same, the shader will take care of resizing the bezel. That’s what the scaling features in the shader are for.

If you want, you can force the shader to use explicit aspect. (4 x 3 by default but you can define it.) At most you will only need 3 presets. (One if you don’t do LCDs or wide screen games.) I have done graphics for roughly 80% of the cores and they are all based on the same default bezel size. I can absolutely depend on the shader doing what I expect.

You understand your workflow much better than I. If you are capturing a window, I admit, I don’t know how that will behave. I hope you figure it out my friend, Good luck.

1 Like

@HyperspaceMadness

Is there a possibility to have a feature that creates a black screen every other frame on the TUBE, but NOT on the bezel and background? I.e. have a Black Frame Insertion (BFI) feature in the shader that ONLY blanks the output of the guest-venom shader on the TUBE every other frame, but leaves the rest of the HSM ouput as is?

If this would be possible, it could possibly be the best implementation of BFI as it would allow lifelike CRT motion (i.e. smooth CRT scrolling) on the TUBE through BFI, while keeping the bezel and surrounding background BFI (flicker) free, just as in real life :sunglasses:

1 Like

This is a cool idea :grinning:

Yes, I think this will be pretty easy to do, I’ll try to add this in the next version.

1 Like

Awesome :smiley:

I was thinking if it would work (well), that then it would be nice if you could make it configurable whether to insert a black frame every second, or third or fourth frame. That would accomodate for respectively 120Hz, 180Hz and 240Hz monitors / screenmodes. People with high refresh rate monitors will then be able to balance smoothness versus how much the tube will darken.

I have no idea though how this will play out with the audio synchronization in RA: The core will report 60hz, so when running at 120hz RA will disable the audio synchronization I believe (the deviation from the target rate of the core must be within some bound).

Maybe @hunterk can comment on how this would play out?

2 Likes

Actually that’s not true, just putting guest-dr-venom’s gamma at the same levels won’t result in a no-op. Try 3.50/3.50 and you’ll see that it looks different from 2.50/2.50, 3.00/3.00, etc. It’s always doing something.

I recommend 3.50/3.50 as this results in the brightest image without clipping anything, giving you maximum headroom for scanlines and masks.

2 Likes

Yeah we’ll have to see if this works how we think it does, because I think black frame insertion actually interleaves with the emulation, so you get frame 1 of the emulation then a frame of black then frame 2 of the emulation.

If we did it in the shader you would get frame 1 of the emulation, then a black frame then frame 3 of the emulation. So frame 2 is never seen. So if the game is running at the target framerate, e.g. 60fps, and every other frame is black then you will effectively only see smoothness of about 30fps. So I’m not sure that this will work properly, unless you could get to output each emulated frame for 2 frames before moving to the next emulated frame.

From my guess of how I think it works for 60 fps content and your monitor running at 120fps with black frame insertion I think the content still runs at 60fps and an extra black frame is generated for every emulation frame and shown for half the time, and this gets you to 120fps.

These are all my guesses as I haven’t used black frame insertion much.

1 Like

Another thing about gamma:

Gamma correction comes before scanlines and masks, and scanlines and masks alter the gamma. So it’s hard to preserve the “correct” gamma. That’s why you should use test patterns when adding masks and scanlines to ensure the image is adequately bright and you’re not clipping anything.

The gamma in grade is the CRT “signal gamma,” not the final calibrated gamma, if that makes any sense.