Not to get techie'ish here for the overhead view, but FFMPEG has an overlay option that as long as you use the same settings (resolution, bit depth, A:R, etc...) you can join images based on X,Y. This does allow you to use cheap cameras to step around the distortion (barreling) of fish eye lenses. Any modern computer *should* be able to join 3 images at 1080p.
I'm just sort of going to add some non-billiard advice here in case you're interested in doing that..
Nvidia GPU's typically won't allow more than 2 streams to be encoded via hardware, so get a cheap Quadro P1000 or P2000 (P1000 is like $200usd, or will be soon) if you want to used the onboard hw encoder of an Nvidia (AMD cards have work-arounds last I checked). You kinda only need 1 decent GPU to do this, so not a crazy investment.
If you use FFMPEG _AND_ want to _SAVE_ the video, draw/generate a blank image (solid black) using the final dimensions you want and put the overlays over that to save it. This will help buffering between the GPU and storage device while the physical write occurs.
Optional if saving the file, use a virtual RAM drive if possible for "scratching". SSD's are fast, but if you have a lot of streams you're going to bog down either the capture rate (dropped frames) or the write speed to permanent storage. In Linux this can just be a tmpfs and it is just another directory, but under Windows it will be a device so use something like imdisk (creates a virtual device in memory, but you need the memory... 16GB or don't bother honestly).
I'm honestly thinking about creating a little web interface to do the above using node as the back end. I was playing around with a few old ps3 web cams the other day and got it to work with 2 cams (this machine doesn't have a workstation card, but my other does). It worked fine, but setting the X,Y was actually a little deceiving as 1 of the cameras somehow is affected by focus breathing (very unusual, probably faulty), so I had to keep changing it from time to time based on the time of day.
A fish eye works, but if you don't want that distortion, FFMPEG can help you with a few cheap cameras.
EDIT: You actually can use different Aspect Ratios (A.R.) if you want. So, you could have a 5:4 image from a ~50mm lenas and a 4:3 image from something like a macro lense (or vice versa). So not only do you not need the same exact camera, but you can use different A.R.s if you must (but I'd keep the other general format settings, surely don't mix color depth ie. 4:2:2 with 4:4:4 might not even work.... or very slowly).