Mega Bezel Reflection Shader! - Feedback and Updates

This will run a little different in the Mega Bezel vs DariusG’s standalone version of GDV-MINI.

The version in the Mega Bezel uses a different curvature (The same curvature as in all the mega bezel presets) and I think should not calculate if it is turned off, but I’d have to I’ll have to check the code to know for sure.

There might be some performance improvement, but I’m not sure if it will be a noticeable difference or not.

GDV-MINI is really fast, looks really good and responds well with the screen at different sizes, thanks for the great work on this shader @DariusG!

4 Likes

Okay, so I finally tested these settings. Both the GDV-Mini and the Potato versions. The settings translate almost perfectly to GDV-Mini while Potato doesn’t really look as good as there are some colour and sharpness/resolution differences.

@DariusG I’m blown away by GDV-Mini! In conjunction with my Blargg_NTSC_Turbo_Duo_SNES_PSX_Composite_CyberLab_Special_Edition.filt video filter it’s even more amazing!

There’s just one issue I noticed though. There’s a strange darkening of the image in the right hand third of the viewport.

Please check it out because I definitely would like to make some presets based on this awesomely efficient shader!

It’s present both with or without my video filter. Here are my Shader Preset settings:

#reference "shaders_slang/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD__GDV-MINI.slangp"

HSM_CURVATURE_MODE = "0.000000"
HSM_INT_SCALE_MODE = "1.000000"


scangammaoffset = "2.500000"

g_hue_degrees = "-7.000000"
wp_temperature = "6500.000000"



GDV_DECONVERGENCE_ON = "0.000000"



g_sat = "0.020000"



post_br = "1.310000"

h_sharp = "5.200000"

GAMMA_INPUT = "2.100000"
gamma_out = "2.500000"


bloom = "0.150000"
halation = "0.000000"



scan_falloff = "0.250000"


g_crtgamut = "1.000000"


scans = "0.000000"
GDV_NOISE_ON = "1.000000"

glow = "0.000000"

masksize = "2.000000"



gsl = "2.000000"
scanline1 = "9.000000"
scanline2 = "9.000000"
beam_min = "1.350000"
beam_max = "1.300000"

shadowMask = "6.000000"
maskstr = "1.000000"


addnoised = "0.180000"
noiseresd = "1.000000"

@HyperspaceMadness and I have discussed this… he thinks it is a mask math rounding error. (It is on the “bugs to be squashed” list. :grin:)

I assume you are talking about the dark line at ~66.66666% from the left. If you look really close you can see that the mask is off right there… we have three squashed together.

2 Likes

It isn’t just a line. It starts at that point and goes all the way to the right of the screen. It could really be affecting the mask as that’s why it appears as a line in the all white screenshot but an entire area of darkened/off colour in the coloured images. Even if the mask order is incorrect they’ll still mix to create white but if talking about other colours, incorrect order will cause them to be off.

I’ve only noticed this with GDV-Mini so far though.

Did I say mask order anywhere in my post?

Really dude… did you take a close look like I mentioned?

You can see the difference clearly by measuring the distance between magenta lines.

No, you didn’t say mask order anywhere in your post.

No, I didn’t take a close look like you mentioned.

Thanks, I’m seeing the difference clearly by measuring the distance between magenta lines.

On my TV when viewing the screenshots fullscreen I’m seeing the entire area from the left of the “line” being affected.

On my cellphone, it mostly appears as just a line but depending on the zoom level it appears as an area.

I was merely hypothesizing that this could be due to the change in the regularity/consistency of the mask pattern as a possible explanation as to why I wasn’t seeing it in the white screenshot but was clearly seeing the area in the coloured screenshots.

I used the term mask order but I guess I was thinking aloud, perhaps the term order might also mean a change in the order of the phosphors hence the confusion.

I wanted to reiterate what I saw and experienced not to take away from what you saw and experienced as well as documented but to make sure that what I saw and experienced was documented and remained acknowledged.

I don’t understand the disagreement.

I have taken a crop of the screenshot at a zoom level that I was able to see the area and not just the line better on my cellphone screen.

It’s not a disagreement… I was offended.

When you post things like that you come across like you’re trying to school a student… who isn’t very bright.

I don’t need the lecture.

1 Like

Two questions -

  1. when you say try these settings, you mean to make a copy of the original STD GDV Mini preset, and, in the new copy of the preset, update the original values to those you’ve provided here…then load the new preset. Basically create a variant on the original file.

  2. Do the changes you are suggesting provide aesthetic changes only or should they also provided performance gains?

1 Like

I meant no offense. I made my post with regard to what I was seeing. You appeared to link it to what you were seeing and spoke about previously. I reiterated what I was seeing with a focus on the dark area and not just the line because I realized that even though in practice and in full screen it might have been obvious that it appeared that way to me using my presets and settings, it may not be so obvious to someone else who’s not using these settings and zoom levels.

Even on my phone when viewing the post it only looks like a line depending on the zoom. That doesn’t take away from, in any way, your assessment, experience or account of what you have seen and reported.

My original post regarding the matter was specifically directed at @HyperspaceMadness and @DariusG for their investigation.

How could you even fathom that I would question or knowingly insult your intelligence. Nah man. That’s not how I see you at all. I have utmost respect for you, your talent, your passion and your work.

Sorry to say this but this is subject to your personal interpretation. I guess it’s something about the way I communicate that rubs some folks the wrong way sometimes. Maybe it’s cultural differences in the way I express myself and what I’m used to versus what others are accustomed to or something like that.

I most definitely didn’t try to lecture one who I consider a professor. My post as well as my reinforcement in my reply to your post was so that the totality of what I saw could have been conveyed to @HyperspaceMadness and @DariusG. It wasn’t really about you, just didn’t want them to miss what I saw because it really wasn’t just the line.

You have to copy the settings I posted and paste them into a new txt file in the RetroArch/Shaders folder.

Then save that as a new *.slangp file.

You would now have a new shader preset file that you can load from the RetroArch/Shaders folder.

You don’t have to make any copies of any presets.

Because these presets use the highly efficient and optimized GDV-MINI CRT Shader, you should expect them to perform well on just about any setup. So you should get a speedup compared to whatever you’re using now, unless you’re already using the GDV-MINI base preset in HSM Mega Bezel Reflection Shader.

The best part is the CRT Effects still look great in my opinion!

The only thing is, there seems to be a (hopefully minor) bug that needs to be squashed. Which is what myself and @Duimon were so eloquently discussing just before you asked your question.

This is the first time I’ve tried my presets using GDV-MINI and I’m impressed. Haven’t really profiled the performance yet on my system though. Hopefully it will be fixed soon. I find it pairs very well with Blargg’s NTSC video filters which run on the CPU so shouldn’t really bog down your GPU if it’s already being pushed.

I have some custom Blargg Video Filter presets for systems other than NES.

Open a text editor and find the lines of mask 6 and replace 0.333 with 0.3333 and 0.666 with 0.6666. See if it fixes it. Can’t reproduce that on my 1080p screen. Check crt-consumer.glsl that has 0.3333 and 0.6666 does it happen there?

1 line error can be produced like that in 3333 lines :stuck_out_tongue: Or if you multiply with 1.0001 too, around 3000 lines

3 Likes

I changed the line in HSM’s hsm-crt-dariusg-gdv-mini.inc and it didn’t solve the issue. (It is present on all the masks BTW.)

I can’t reproduce it on the stand-alone GLSL shader so it is likely something that is complicated by the Mega Bezel integration. I’m sure @HyperspaceMadness will be able to fix it.

2 Likes

Kinda a side question - but now that I’ve posted here a couple times and am trying to follow the technical side of what you guys are explaining - how did you guys get into shader programming? Or maybe more as a general question, would you say shader programming is more art or more computer programming or both? It’s just such a niche thing, I’m interested in how one gets into it more.

4 Likes

For me it’s partially my background as I’ve been programming here and there over my career as well as just having a big interest in how things work and solve problems to make some things easier for the user and try some new things.

Sometimes it’s the challenge of “would it be possible to do that?”

In terms of actually writing the shaders most of it is math operations, so relatively simple in terms of programming, which is also a bit what makes it fun and fast to work with.

The shader programming is kind of half art, half programming like you mentioned, since a lot of it can be a bit of trial and error until you hit the sweet spot.

7 Likes

Very cool insights. My first computer was an 8086 XT, which I learned BASIC programming on when I was 6 or 7. I didn’t take it much further than that because math isn’t my strong suit. Still love tinkering and the whole “is that possible” and problem solving aspect of computers.

2 Likes

My first computer an Atari 65XE around 1986, some basic programming on Amstrad CPCs, did some lessons on C, also have some really good (and expensive like 60€ each lol) books about it. So I had to understand what is going on inside a shader then write something. The synxtax is the same with C so it was not much trouble. Then you have to learn what each glsl command does etc. Studying other’s shaders is a good start, then understand what it’s doing.

Mostly it’s thinking something then try to solve a problem, it’s like a puzzle game actually.

3 Likes

Next Stop MEGATRON!!!

4 Likes

Looks Hyper-Mega! What shader presets is this?

1 Like

It’s a snapshot of my in progress integration of the Sony Megatron by @MajorPainTheCactus

4 Likes

I might start goofing around a little with some of the presets and see if I can come up with some tweaks of my own - I’m not remotely familiar with C. I don’t even know what a glsl command is but who knows maybe I’ll fall down the rabbit hole and figure some stuff out, or at least learn something along the way.

How did all of you learn about the difference between various masks or the color science behind CRT displays, or the various visual aspects of it? All of this is fascinating.

Edit: found a post by hunterk from 2017 explaining what glsl/slang are. Makes more sense now. Modular coding languages for shaders.

3 Likes