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!