Godot Version
4.2.1
Question
I have a few spheres in a 3D but as I orient the camera the spheres on the fringe become ellipsoid. Does anyone know why this would be the case? (see image)
The bigger the FOV, the more distortion in the corners and edges you will experience, I guess.
There is an open proposal to address that by introducing alternative camera projections:
opened 06:42PM - 09 Jan 22 UTC
topic:rendering
topic:3d
### Describe the project you are working on
Currently, I'm working on a first… -person game where high FOV is needed.
**Other examples:**
- A competitive shooter where it's important to fit as much surroundings inside the screen as possible
- A planetarium simulation
- A game with a unique art-style
Basically, there is a chance that any 3D game with a FOV greater than ~40° may find alternative camera projections beneficial.
### Describe the problem or limitation you are having in your project
Standard rectilinear projection greatly distorts the surroundings at high FOVs, compared to the alternative projection methods.
In my project I can't fit as much of surroundings as I'd like to — distortion is introduced even at common FOVs, such as the Godot's default FOV of 70°.
### Describe the feature / enhancement and how it helps to overcome the problem or limitation
Alternative projection methods help fit more surroundings inside the screen without extreme distortions.
### Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
There is already a shader by Cykyrios https://github.com/Cykyrios/Godot360 that helps to achieve the alternative projection method — it works by stitching together multiple cameras.
Comparison of the standard rectilinear and the panini projections:

### If this enhancement will not be used often, can it be worked around with a few lines of script?
While this can be implemented by using a shader, compatibility and performance are very poor.
### Is there a reason why this should be core and not an add-on in the asset library?
Such method (a shader) can introduce rendering artifacts, for example, [while using built-in effects, such as "Bloom"](https://github.com/godotengine/godot/issues/7340#issuecomment-573401411), and other screen-space effects. It also breaks billboard sprites in similar fashion.
I'm assuming that in order to avoid issues and improve performance, such feature must be a part of the rendering pipeline.
### Links
- Old issue with some discussion: godotengine/godot#7340
- Godot 360: https://github.com/Cykyrios/Godot360
- Alternate projections implemented in Quake: https://www.youtube.com/watch?v=jQOJ3yCK8pI
- Panini projection in Unreal Engine: https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/PostProcessEffects/PaniniProjection/
1 Like
This effect also happens in real life when taking photographs with rectilinear (normal) lenses.
The smaller the focal length, the bigger the distortion.
1 Like
Thank you, that helps a lot.
Strangely I have a massive focal length in that scene, I suspect FOV may be my issue as FencerDevLog indicated.
system
Closed
April 6, 2024, 3:01pm
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.