Mega Bezel Reflection Shader! - Feedback and Updates

Are you saying the top and bottom should be curved? As isn’t the y axis vertical, and the x axis horizontal?

I think that’s what he meant, that with a vertically flat Trinitron if you use y Curvature only the top & bottom of the screen curve to give the effect of perspective,and the intersection of the screen & bezel like this

Correct.

Royal’s Curvature is actually a projection onto 3d primitives, either a sphere or a cylinder.

I’ve managed to extract the projection/curvature from Royale so it can be used by other shaders, and figured out a way that one direction’s Curvature can be adjusted without the other.

There’s still some work to be done to integrate well enough into the bezel shader to release, and and I need to optimize it a bit. It chews some time at the moment, so the simple and cheaper 2D Curvature will continue to be there and possibly the default option.

Oh, brilliant! That’s really exciting. I’m not a coder, so I was never certain that projection to geometric primitives what was happening under-the-hood in Royale, but had suspected this might be the case. The fact that you’ve now verified this to be true, and have extracted the code for further use… well, really opens up some future possibilities in conjunction with your bezel shader! Just one example that comes to the top of my mind is constructing a 3D bezel based on the parameters of a 3D screen, and also using this to generate 3D glass in front of the screen with appropriate thickness and curvature, which can also use an environment map for reflection such as an HDRI image (rather than using a static glass overlay image). A 3D modeler could model a room, environment, arcade cabinet, lighting - whatever they wanted - in the 3D space surrounding the screen/bezel (but mostly not visible on-screen), bake this to an environment map, and use it in the bezel and front glass calculations. Just food for thought!

1 Like

Hi. Yes, what you are asking for is possible in the Mega Bezel shader. Duimon posted a method of doing this with Non-Integer Scale %. There is also an alternative way to do this with Integer Scaling, though your results will vary depending on the resolution of your monitor… mine is 4k, and this method works very nicely. In the shader parameters menu there is an option called “Int Scale Multiple Offset”. The default value is “0” and so this causes the CRT image to use the largest integer scale value in which the entire bezel still fits within the screen space available. If you increase the value to, for example, “1”… it bumps the default integer scale value up one more level, meaning it will give more screen space to the CRT image and less to the bezel, resulting in pushing the top and bottom bezels partially off-screen. I typically use this configuration… it looks good on a 4k monitor (especially for 224p content such as SNES since a bit of bezel still remains on the top and bottom of the screen, but the CRT image is larger).

1 Like

Another thing you can do if you are using integer scale is adjust the integer scale min border height.

If you set it to 0 the integer scale will go to the largest size it can without going offscreen. If you set it to a negative number a larger integer multiple can be allowed and the tube will scale until it goes offscreen on top & bottom.

The int scale min border allows you to use integer scale while the monitor is at different resolutions and have some control over how much space is left (or not) around the tube.

Also a quick note - the default non-integer scale set (82.96%) is actually a vertical integer scale multiple if your monitor is at 2160p (8x) or 1080p (4x) for cores outputting content at 224p

1 Like

With your clarifications and some testing, im understading how it works. I detected that in some presets, some of the parameters doesnt change anything at all. For example in the CRT-royale, the cropping doesnt work at all, but in the easy mode it works perfectly. I managed to make it work on my configuration because i would like to add overlays per system and there are some 4k artworks that works amazing and they’re compatible with 1080p to 4k (i think even 8k) and my old software was not scaling this very well. The thing is that I already have a bunch of bezels but i don’t find the way to use those overlays and project the shader over them. I think its more easier but i cannot find the “correct key” :wink:

Thx in advance

1 Like

Yeah, this isn’t implemented yet in the Royale version. Cropping works fully on easymode, & guestsm, and mostly on guest-venom (working on all sides except the bottom)

The way you set other images to appear under the bezel you will need to make a copy of the preset and change the image paths inside (near the end of the file)

1 Like

So I suppose i have to make a custom preset for each system with is own overlay, isn’t it? Thx

1 Like

If you’re wanting different overlays per system, then yeah you’ll have to make other presets (someone correct me if I’m wrong though.)

1 Like

Cool, thx

I was wondering if its there any way to do this automatically, too much systems :__

Also maybe there is a way to adapt easily bezelproject… it would be really nice.

If you’re looking for a different bezel for each game then you’ll have to write a script to generate bezels by modifying an existing system preset (that you’ll have to create first). You’ll still have to have a preset for each system. This gets really tough when you have cores that emulate many systems.

I have split all these types of cores so I can create presets for each systems.

There is no way to use the bezelproject because these aren’t bezels, they are shader borders and that is NOT the same thing.

In the end you have to make a choice and do what makes you happy.

Speaking of what makes me happy…

SEGA Saturn. :blush:

I was working with OrionsAngel’s artwork (Which is usually my starting point) but didn’t like the results. So I created my own. Unlike my other artwork this is vector not raster, so is scalable. (Yes that means it can be scaled up to 4K)

I like it so much that my plan is to re-create all my other artwork in vector, hopefully improving it along the way. (OrionsAngel borrowed most of his artwork after all so in using his as a base I have been limiting myself)

Plus it has been years since I flexed my vector illustration muscles and I need the practice. :grin:

I plan on releasing everything in 1080 and 4K when I am done.

5 Likes

I know that the bezelproject “by itself” its not compatible, but it should be a way to make a fast adaptation. In fact im starting doing my own and it looks very nice, in theory its really simple, a custom textures folder with same archives except the background, which is one of those images (bezel from bezelproject, or any background).

But i still don’t know how to change the bezel colour, or at least use the bezel thats coming from the bezel image “which is now a background”… i think it should be an easier way that make a preset for each game, lol…

Here some of my configurations, maybe you can give some suggestions… :smiley:

So how to change the bezel color? I did not find the png, so i tried giving some opacity to the bezel (so the reflections would be on the background’s bezel) but it doesnt work. Thx!

THe bezel color is in the shader parameters.

[BEZEL & FRAME] Hue, Saturation & Brightness, and is HSV/HSB compatible.

And yes, you are right that making the art for each system based on existing artwork is relatively simple, I have been doing that myself. Where it gets difficult is doing that game by game, which is what he bezel project does. (Although for a moderately talented coder an automation script would be easy) (I am not a moderately talented coder but could push through if my project required it. It does not.)

Another thing I have been doing, (Since I plan to release my art to the community) is creating artwork for the hidden space behind the bezel. Exsisting artwork doesn’t have this and it limits what the end user can do as far as positioning the bezel.

Some samples…

The existing artwork had art just on the left and right sides, which works fine as long as you place the bezel where the art intended but only then. No freedom.

4 Likes

Below are the controls for color of the bezel & frame, if you turn Blend Color with Image (which I should rename Blend Color with Background) to 1 the color of the bezel & frame will come from the background (If there are details in the background you will see those too).

image

2 Likes

Great stuff! Nice, clean and graphic! I look forward to the 4K vector versions of stuff :slight_smile:

I found some dark theme ones I really like that I need to remake in vector format (and with no screen) so they will look great at 4K

I found them here:

I also re-did this one as vectors

3 Likes

I like your choice of backgrounds. I also appreciate the link. Some really good inspiration/sources there. I had never run across that source before.

2 Likes

The background tip is really nice but its not useful when a overlay does have artwork OVER the bezel, some arcade games do have them.

Also I was wondering how does look this with a backdrop (for example space invaders)

Maybe i will wait until the shader becomes more flexible… now its a pain in the ass to configure. Still i appreciate the hard work you doing.

These things usually work in the other direction. That is, less flexible -> easier to configure.

3 Likes

In the newest version of the shader, is there a way to replace the bezel frame image? I wanted to make a new version of my PVM overlay with this shader, and replace the bezel so I can still have the reflection.

I removed the bezel by shrinking both x and y size to -10. But then the reflection is gone.

1 Like

Yes, what you want is to turn the frame and bezel opacity to 0. The reflection will now be added on top of the background with no bezel added.

2 Likes

Out of curiosity I tried using existing art and my results were mixed.

Getting the screen to line up with the art was easy using the parameters but…

Frame Opacity worked great but Bezel Opacity just affected the color, turning the bezel black.

Returning the bezel to opaque and using the Blend with Image setting almost worked but the bezel (and frame if it is opaque) never quite dissapear.

notice the hard shadow on either side of the bezel. Plus the reflection is not very prominent.

Although I will never use art this way, (and I’m personally not sure it’s worth your time to make it work better given how great it looks with the generated bezel) it seems like your intentions aren’t being realized just yet. :frowning_face:

On a side note…

The new vector versions of my MAME artwork. They are 4K at 300dpi, and since I am using the full screen BGIMAGE scale setting they work at 1080 also. Keep in mind that I used Adobe Illustrator and although there are some raster effects, (so the art is not SVG compatible) the raster effect resolution is also set at 300dpi.

3 Likes

Nice stuff those mame ones look fun!

Thanks @Duimon for checking this out!

This is bad, this is not what is supposed to happen!

I will fix it up, because what I described is what is supposed to be happening.

4 Likes