Thanks for your input, I didn’t know about player camera managers but will consider using them in the future. It is apparently also possible to set a CamerComponent’s fov to 180° directly in the Blueprint editor.
Not only that, but a FOV of 180° on a regular CameraComponent is borderline unusable. It renders nothing more than a series of rays intersecting at the image center. Below you can see the first person template with a FOV of 180°
No amount of barrel distortion can remedy that.
Yup, or I could simply use Unreal’s Camera Calibration plugin to achieve the same effect.
Though I do have reasons against using the plugin, so I continued to follow your suggestion. I tried setting the FOV to 170° and apply a barrel distortion post processing material like in the video you have linked. But that causes the center of the image to appear pixelated since it only takes up a small portion of the rendered image and is then upscaled by quite a large factor by the barrel distortion post process effect.
In order to fix that pixelation towards the center of the screen I would need to somehow increase the camera’s rendering resolution beyond the screen/viewport resolution, but I can’t find a way to do that.
The pixelation effect would also be a non-issue if I could render a cube map rather than a single camera viewport. I’m thinking of using a scene capture component cube to render a cube map each frame, then use the formulas I prepared to stitch that cubemap into a fisheye image and treat that as the main camera output.
Only problem is that I don’t know how to do that last part. It seems to me that what’s visible on the screen is tied directly to a conventional rectilinear camera with no way to insert my cubemap-fisheye logic.
If you or anyone else has any clue on how I could extend or replace the default camera by the cubemap camera & shader combination I need in order to implement my fisheye camara system, I would be forever in your debt.