Actually, I just looked into this more. These are post-processing distortion shaders, which Godot supports just fine. I actually found the original source code for the shaders on this page and they are fairly simple.
https://gamejolt.com/p/perspective-shaders-for-clickteam-89in853p
Here is the panorama shader ported to Godot (I will work on the perspective one in a minute):
shader_type canvas_item;
uniform int zoom;
uniform int pDir;
uniform int noWrap;
void fragment() {
float fB;
float fC;
float fPixelWidth = SCREEN_PIXEL_SIZE.x;
float fPixelHeight = SCREEN_PIXEL_SIZE.y;
vec2 posTex;
vec4 color = vec4(0.0, 0.0, 0.0, 1.0);
if (pDir == 0) {
fB = 1.0 - (float(zoom) * fPixelHeight);
fC = max(0.02, 1.0 + (fB - 1.0) * 4.0 * pow((UV.x - 0.5), 2.0));
posTex = UV * vec2(1.0, fC) + vec2(0.0, (1.0 - fC) / 2.0);
if (noWrap == 0 || (posTex.y >= 0.0 && posTex.y <= 1.0)) {
color = texture(TEXTURE, posTex);
}
} else {
fB = 1.0 - (float(zoom) * fPixelWidth);
fC = max(0.05, 1.0 + (fB - 1.0) * 4.0 * pow((UV.y - 0.5), 2.0));
posTex = UV * vec2(fC, 1.0) + vec2((1.0 - fC) / 2.0, 0.0);
if (noWrap == 0 || (posTex.x >= 0.0 && posTex.x <= 1.0)) {
color = texture(TEXTURE, posTex);
}
}
COLOR = color;
}
You can read this tutorial to see how to apply full-screen shaders to viewports in Godot.
https://docs.godotengine.org/en/stable/tutorials/viewports/custom_postprocessing.html