A downloadable tool for Windows

This project is meant to be a demonstration of different formulas and algorithms used to tackle the problem of aircraft visibility in simulators.

The Problem

The problem facing modern flight simulators when they try to simulate this scenario is that, despite recent gains in fidelity, they are unable to provide the necessary resolution to accurately represent enemy aircraft at realistic ranges.
. . .
It can be argued that for pilots to receive realistic training on how to tactically maneuver in these situations, they need to have a simulated enemy that gives them real-world information at real-world ranges.
- Serfoss

While it's natural to assume that a model which becomes smaller in exactly the same way it would in real life is the most realistic way to display an aircraft, this is not the case. Hardware limitations in the form of incorrect fields of view, apparent pixel densities, and subtle lighting cues that are lacking in comparison to human vision, cause an aircraft to be more difficult to spot and identify in a simulator than it would be in real life.

Most flight simulators out there, both commercial and professional, have some kind of system to address this. The goal is to mimic the visual acuity that a real pilot looking at a real plane in real life would have. In order to achieve this, rendering tricks are applied to the aircraft to make it more visible than the standard rendering calculations.

Potential Solutions

Falcon BMS calls this Smart Scaling, War Thunder uses super sampling and "contacts", IL-2 46 used LOD models and a dot system, IL-2 BoX appears to scale models and raise their contrast. Even the Energy Air Force / Over G games on the consoles used a dot system to display distant aircraft on low resolution (by modern standards) console games. 

As part of my profession, I am exposed to different image generators (rendering engines) used by professional flight simulations. I have seen specific feature requests by customers for some kind of "smart scaling" style system to keep detection of aircraft in line with real life.

This is a common problem with many common solutions.

Demo

In this demo you will find several groups of aircraft flying a simple orbit at various altitudes and 350 knots. Using the number keys (1-6) the player can select the visibility models.

The mouse and keyboard can be used to fly around the map, while left click can be used to select aircraft to display debug values. The demo is designed to run in a window so that resolution and FOV can be adjusted on the fly to see how the algorithms react.

Controls

Camera
  • Rotate Camera: Mouse movement
  • Quick zoom: Middle mouse
  • Adjust camera speed: Scroll wheel
  • Adjust field of view: [ ]
Visbility
  • Toggle labels: L
  • Select scaling method: 1 2 3 4 5 6
  • Select aircraft: Left mouse button
World
  • Show/Hide Cursor: Right mouse button
  • Pause aircraft: P

Models

Included are both the standard Falcon BMS smart scaling, as well as some community derived algorithms to address shortcomings in the original solution. Use the number keys to select between the different methods.

1. None

Included as a baseline. No scaling is applied.

2. Serfoss

This is the standard Smart Scaling algorithm that Falcon BMS currently uses. It's based on a paper from 2003 written by Gary Serfoss. It uses rough information gathered from pilots on the ranges at which aircraft should be spotted and identified, and then scales the aircraft up on a flight simulator dome so that pilots can identify virtual aircraft at the same ranges as real life.

The main drawback with this method is that it was finely tuned for a specific projector system and dome. It does not take into account either variable resolution, or a variable field of view, as both of these are fixed in the reference setup.

R = range(ft)/1000
Factor = 1.0 + 0.09226 * R - 0.00148 * R2

3. Chihirobelmo

Based on the Serfoss formula, and developed by chihirobelmo, this is meant to address the two shortcoming mentioned above. The field of view and resolution of the screen are factored into the calculation to get roughly equal spotting ability no matter what the resolution or field of view. 

As a result, this also addresses some visual artifacts that arise from the static Serfoss method, such as being able to zoom into aircraft on the ground from 20k feet and seeing an F-16 as wide a runway.

M = Magnification Factor;
D = Distance(ft)/1000;
R = Resolution Length(ex:FHD will have 1920);
F = Horizontal FOV;
M = 1 + (0.09226*D-0.00148*D^2) * {1.22e-7*R^2-1.17e-3*R+2.8} * (0.02*F-0.4)

4. Sanpat v1

Created by Sanpat, this method uses the Serfoss result, but then processes it to compensate for field of view and resolution. Its purpose is to specifically maintain the distances at which aircraft should be identifiable across varying FOV and resolution. In Sanpat's own words:

My equation is not about the size on the monitor of the objects. It is to maintain the pixel number require to convey information perceptible IRL by pilots as per Serfoss’ research. So if it 5px on 1080p it will be 5px on 720p. Of course 5px in 720p will be a lot bigger than in 1080p. 

It will make things bigger so the size will not accurate as it is not the point of smart scaling. The different in current BMS implementation and my suggestion is at higher resolution than 1600x1200, mine will be smaller, but it is still magnified if needed and will be bigger than IRL.

Serfoss’ curve is not linear and the size in arcmin is not the focus. The focus is for pilots to be able to tell object information such as aspect, attitude, etc, at the same level as IRL.
S = Reference Serfoss factor
F = Horizontal FOV
H = Horizontal Resolution
Factor = ((S - 1) * (((F * 60) / H) - 1)) + 1

5. Sanpat v1 (Clamped)

Since the Sanpat formula generates very large scaling values in some situations. This is the above formula, but clamped to the reference Serfoss value. This means that if the Serfoss value is smaller, then it will use that one instead.

6. Sanpat v2

Also developed by Sanpat, this is meant to address the issues that his first formula has with high fields of view and lower resolutions, while also smoothly blending with the Serfoss value under certain conditions.

This way the new proposed formula can be used with the res and fov setting worse than 20/40, by dampening the curve within 1 nm. The curve will now start from 1 at 0 nm as is desired. From 1 nm, the object will still maintain the correct pixel number from Serfoss’ research. May be this a better compromise for the case of worse than 20/40 setup. 

The trade off and downside of this method is, while maintains constant detail level at a given range as per the purpose of Serfoss’ research, the size will varies. People with low resolution monitors will see bigger objects, etc. But for its purpose, this is correct as the better screen resolution the lesser the need for scaling.

For more information, please see this thread on the Benchmark Sims forums.

S = Reference Serfoss factor
F = Horizontal FOV
H = Horizontal Resolution
R = Range where 6 means 6000ft
Factor = S * ((F * 60) / (2 * H))
If (F*60) / H > 2 and range < 6 then
    dampeningFactor = range/6
F = 1 + ((F - 1) * dampeningFactor)


Download

Download
SmartScalingDemo.zip 57 MB

Install instructions

Download the zip file and then extract the folder. Run the SmartScalingDemo.exe inside the SmartScalingDemo folder.

Leave a comment

Log in with itch.io to leave a comment.