For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com
Please apply widescreen adjustments (FOV) to FlyBy camera also
- Hyper
- OldUnreal Member
- Posts: 3515
- Joined: Fri Oct 11, 2002 5:41 pm
- Contact:
Please apply widescreen adjustments (FOV) to FlyBy camera also
I switched to an ultra wide screen setup (21:9) and Unreal really handles this nicely. (Fov 120 for me atm)
However, it becomes quite noticeable that the FlyBy camera does not properly use the new FoV value causing a lot of vertical cutoff. You can simulate this by running Unreal in a letterbox sized window, apply a proper FoV and then type "open unreal" in console.
However, it becomes quite noticeable that the FlyBy camera does not properly use the new FoV value causing a lot of vertical cutoff. You can simulate this by running Unreal in a letterbox sized window, apply a proper FoV and then type "open unreal" in console.
Last edited by Hyper on Sun May 01, 2016 12:59 pm, edited 1 time in total.
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
It seems, InterpolationPoint actors override user's FOV settings by applying FovModifier to the default FOV (90 degrees?). Such actors are also used, for example, on level ExtremeEnd, and the given effect can be observed there too.
- Hyper
- OldUnreal Member
- Posts: 3515
- Joined: Fri Oct 11, 2002 5:41 pm
- Contact:
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
Can this be changed? Or will that break other things?
- .:..:
- OldUnreal Member
- Posts: 1635
- Joined: Tue Aug 16, 2005 4:35 am
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
This technically can be fixed, by rather then setting FOV to match exactly the value of InterpolatingPoints. Instead check the FOV scaling value of IP, then set player FOV to DefaultFOV multiplied by the scaling value.
(ಠ_ಠ)1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD
- Hyper
- OldUnreal Member
- Posts: 3515
- Joined: Fri Oct 11, 2002 5:41 pm
- Contact:
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
I never knew that interpolation points had their own FoV setting.
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
I think, it should be something likeThis technically can be fixed, by rather then setting FOV to match exactly the value of InterpolatingPoints. Instead check the FOV scaling value of IP, then set player FOV to DefaultFOV multiplied by the scaling value.
FovAngle = atan(tan(InterpolatedFov * M_PI / 360) * tan(DesiredFov * M_PI / 360)) * 360 / M_PI
where InterpolatedFov is the angle produced by applying FovModifiers of InterpolationPoints to the base FOV value (90 degrees, as far as I can see). I don't know how exactly that angle is calculated in the current implementation (it's not in UScript).
Last edited by Masterkent on Thu May 05, 2016 9:56 am, edited 1 time in total.
- .:..:
- OldUnreal Member
- Posts: 1635
- Joined: Tue Aug 16, 2005 4:35 am
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
Well the InterpolatingPoint FOV modifier seams to be a scaling value instead of FOV angle, so that means we can simply go with this:
[code]((APlayerPawn*)this)->FovAngle = (Dest->FovModifier * (1.0 - PhysAlpha) + Dest->Next->FovModifier * PhysAlpha) * ((APlayerPawn*)this)->DesiredFOV;[/code]
[code]((APlayerPawn*)this)->FovAngle = (Dest->FovModifier * (1.0 - PhysAlpha) + Dest->Next->FovModifier * PhysAlpha) * ((APlayerPawn*)this)->DesiredFOV;[/code]
Last edited by .:..: on Thu May 05, 2016 11:36 am, edited 1 time in total.
(ಠ_ಠ)1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
There is a problem with such a multiplication, because FOV angle is not something that we can scale linearly. An alternative representation of the horizontal FOV angle is the ratio of horizontal projection to frontal projection of a point that lies either on the left screen border or on the right screen border. Unlike angles, this ratio is often scaled linearly when a user wants to adjust horizontal FOV for a wide screen with preserving the same vertical FOV as if we had for 4:3 display and horizontal FOV of 90 degrees (in this case vertical FOV = 2 × arctan(tan(90°/2) × 3/4) [ch8776] 73.74°).Well the InterpolatingPoint FOV modifier seams to be a scaling value instead of FOV angle, so that means we can simply go with this:
[code]((APlayerPawn*)this)->FovAngle = (Dest->FovModifier * (1.0 - PhysAlpha) + Dest->Next->FovModifier * PhysAlpha) * ((APlayerPawn*)this)->DesiredFOV;[/code]
For 16:9 screen we have the corresponding horizontal FOV angle 2 × arctan(tan(90°/2) × 16/9 / (4/3)) [ch8776] 106.26°.
For 21:9 screen we have the corresponding horizontal FOV angle 2 × arctan(tan(90°/2) × 21/9 / (4/3)) [ch8776] 120.51°.
When preserving the same vertical FOV, the tangent of the horizontal FOV angle grows proportionally to the width/height ratio, while the angle grows unproportionally to that ratio.
Now suppose that a mapper decided to set FovModifier of an InterpolationPoint to 1.5 that normally corresponds to 90° × 1.5 = 135°. How should this multiplier (1.5) be applied to the initial horizontal FOV of 120°? Should we just multiply the angle itself or probably multiply the tangent of its half as shown above instead? Let's see what we get in either case:
I) 120° × 1.5 = 180° - insane FOV, we'll get a random bunch of pixels instead of an image.
II) 2 × arctan(tan(120°/2) × tan(90°/2 × 1.5)) [ch8776] 153.10° - scaling the ratio between projections gives a reasonable FOV value. In the middle 4:3 vertically fitting area of a 21:9 display the image should look like it would be displayed on a 4:3 display.
So, I'd suggest to use something like this:
[code]double InterpolatedFov = 90 * (Dest->FovModifier * (1.0 - PhysAlpha) + Dest->Next->FovModifier * PhysAlpha);
InterpolatedFov = Clamp(InterpolatedFov, 0.1, 179.) * M_PI / 180;
double DesiredFov = Clamp(static_cast(this)->DesiredFOV, 0.1, 179.) * M_PI / 180;
double Fov = 2 * std::atan(std::tan(InterpolatedFov / 2) * std::tan(DesiredFov / 2));
static_cast(this)->FovAngle = float(Fov * 180 / M_PI);[/code]
Last edited by Masterkent on Sat May 07, 2016 7:06 pm, edited 1 time in total.
- []KAOS[]Casey
- OldUnreal Member
- Posts: 4497
- Joined: Sun Aug 07, 2011 4:22 am
- Location: over there
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
not to mention there are other ratios like 5:3, 16:10, 21:10 etc..
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
Probably, PlayerPawn.UpdateEyeHeight should be modified (in addition to the above). Namely, in
Code: Select all
if ( FOVAngle != DesiredFOV )
{
if ( FOVAngle > DesiredFOV )
FOVAngle = FOVAngle - FMax(7, 0.9 * DeltaTime * (FOVAngle - DesiredFOV));
else
FOVAngle = FOVAngle - FMin(-7, 0.9 * DeltaTime * (FOVAngle - DesiredFOV));
if ( Abs(FOVAngle - DesiredFOV)
the first condition should be changed to
Code: Select all
if ( !bInterpolating && FOVAngle != DesiredFOV )
Last edited by Masterkent on Sat May 07, 2016 6:00 am, edited 1 time in total.
- Hyper
- OldUnreal Member
- Posts: 3515
- Joined: Fri Oct 11, 2002 5:41 pm
- Contact:
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
I don't understand a bit about the code, but I'm happy to see that it is being considered / worked at. :-)
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
Without proper checking, the resulting implementation can be worse than the existing oneI don't understand a bit about the code, but I'm happy to see that it is being considered / worked at. :-)
Last edited by Masterkent on Sat May 07, 2016 7:15 pm, edited 1 time in total.
- Hyper
- OldUnreal Member
- Posts: 3515
- Joined: Fri Oct 11, 2002 5:41 pm
- Contact:
Re: Please apply widescreen adjustments (FOV) to FlyBy camera also
I consider this to be true without hesitation. :-)Without proper checking, the resulting implementation can be worse than the existing oneI don't understand a bit about the code, but I'm happy to see that it is being considered / worked at. :-)