distortion correction - conformal perspective
- Fu-Bama
- Topic Author
It is possible to use any of those cartographic projection from Blinky within Perfect Perspective. But note that most games limit FOV to 110°, while Blinky enables 180-360°
Please Log in or Create an account to join the conversation.
- Mr. Smiley
If there is a chance something like Blinky can be applied to Perfect Perspective that would be great. Something to make FoV in games more interesting. Since you do have the option to duplicate an image to the corners when the screen is curved, it could add a chance to extend the FoV in games artificially beyond what was meant by applying what is to the left, right, top, and bottom of a player character like what Blinky is doing to extend the FoV artificially and more naturally. I'm actually not sure on those thoughts when it comes to something like shaders for reshade, you would know more than me on this though.
Please Log in or Create an account to join the conversation.
What would make image more like human vision is "Vertical Curviness Amount".
Default 0.5 is more or less, view from two-eyes merged into one, if you will
Extending FOV beyond what's already there on the screen is currently impossible in pixel shaders.
Blinky renders 6 views to get 360 degrees of view, while games with ReShade render only one.
Extending FOV is possible with vertex shaders, but they are not supported by ReShade.
Please Log in or Create an account to join the conversation.
- canceralp
May I make a suggestion? I tried this shader in different games with positive results but something cought my attention; every game places their HUD in different places. Some even are affected by the aspect ratio. So, how about being able to move the final picture on the screen vertically and horizontally? Just like old VGA monitors.
For example, Horizon Zero Dawn has a compass on top of the screen. After I set my correction values, I zoom a little bit so the unused area can be minimal on the screen. Bu that crops the compass. If I can move the picture a little bit down afterwards, I can save a great portion of the HUD.
The opposite can be true for another game. If I remember correctly, Skyrim had its HUD on the bottom as 3 horizontal bars. Then, moving the picture a little upwards would prevent the HUD from being cropped.
Again, thank you for the great shader.
Please Log in or Create an account to join the conversation.
- WSH303
Cool shader, like it very much. And I have an idea how it could be improved a bit. Would it be possible to take in account physical curvature of a screen? Lots of ultra wide LCDs are curved.
Have a nice weekend
Please Log in or Create an account to join the conversation.
I added the offset option to new version 3.6 so you can now un-hide the UI.
For correct view on curved displays you can now set 'Vertical distortion' above 1.0.
There's also a usage-manual when you mouse-over technique.
Since update 3.5, there's a physically based vignette.
It can be used as a standalone vignetting filter using this settings:
[PerfectPerspective.fx]
Projection=3
K=1.000000
Vignette=1
BorderCorner=0.0
The vignetting effect is driven by FOV setting and projection type and represents "natural illumination falloff".
Valorant:
Wreckfest:
Vignette:
Please Log in or Create an account to join the conversation.
- canceralp
BTW, I have been working on Panini Projection (not as a coder, but as a person who makes drawings) and tried to create a formula for Perfect perspective in excel. Basically you enter some values and it throws the others for you. It's middle point among "perfect" perfect perspective, undersampling, unsharpening and screen distortion.
I tried it on these games:
Horizon Zero Dawn
Batman Arkham Series
Crysis
Metro Exodus
The Forest
Control
Sekiro
Here is the Google Drive link for the FOV calculator
Here are Some Pictures
Please Log in or Create an account to join the conversation.
Do some ultra-wide games (21:9) use hFOV locked to 16:9 inner window?
I'm asking as I could add an option for 16:9-locked FOV Type.
Please Log in or Create an account to join the conversation.
- canceralp
Assassin's Creed FOVs are a disaster, anyway. I believe, what we need is a database of games with their FOV values and their bases.
BTW, is there any way that you can detach vignette effect from the final image? What I want is so hard to describe without a picture but since all I have is my phone, I'll try;
Imagine applying some correction and zooming enough that there are only 4 small corners that are mirrored. If I select border Alpha as 0, they are at full brightness. When the Vignette is applied on top of the image, physical corners are bright because they are not effected by the vignette, while perspective borders are darkened by the vignette.
Now imagine the vignette effect properly starting from the physical corners of the screen, now the mirrored "filling" parts will also be darkened.
I know this way the vignette effect wouldn't be perfectly accurate to the lens type, but as an artistic choice the screen would be looking better without poppingly bright corners.
I also know that a vignette shader can be placed on top of Perfect Perspective but I'm just telling as an idea. Doing things under the same shader would be more practical and performance efficient.
Please Log in or Create an account to join the conversation.
I also optimized code performance, following this guide
www.humus.name/Articles/Persson_LowLevelThinking.pdf
Thanks for feedback.
Please Log in or Create an account to join the conversation.
- canceralp
"here in this link" there is an example of Panini Projection. However, this one is slightly different from Perfect Perspective shader's. It doesn't warp the outer horizontal frame in any way, it only squeezes the sides. This type of projection is less realistic but it gives two big advantages:
1) it preserves vertical FOV and doesn't lose any pixels. This is perfect for games like Assassin's Creed Unity, Syndicate since they already come with very low vertical FOV.
2) Using UIMask to preserve menus like this is a lot easier.
Imagine having a 1920x1080 screen. This way, I can force the game to run in 2560x1080 in windowed mode and shrink it from the sides to 1920x1080, without giving it an American football-like shape. UIMask can easily restore the menus. Finally, when the window is center aligned on the screen, the result would be a 16:9 picture with Panini perspective.
Please Log in or Create an account to join the conversation.
1) The example you provided indeed does change vertical FOV, since aspect ratio of both images is extremely different. If you would crop the second "panini" image to the same aspect ratio as the source above, vertical FOV would be extremely lower and a lot of pixels would not get displayed. Imagine the aspect ratio being your monitor.
New version 5.0.5 released.
- New anamorphic mode was added, with separate projection setting for vertical and horizontal axes (macro).
- Linear gamma workflow was improved, works with HDR monitors and 10-bit input.
- Dithering was added to fix banding of vignette.
- Debug mode has distortion grid.
Please Log in or Create an account to join the conversation.
- valerio
Please Log in or Create an account to join the conversation.