Problem VC MFD HiRes Texture Size Rendering Poorly

Samuel Edwards

Clever title.
Moderator
Addon Developer
Joined
Apr 6, 2010
Messages
1,587
Reaction score
13
Points
38
Location
Somewhere, but not here.
Hello,

I am having an issue with the font rendering in virtual cockpits when using the 1024x1024 texture resolution setting in Orbiter 2016's MFD parameter configuration menu under the extra tab in the Orbiter launchpad. I have provided my Orbiter.log and D3D9Client.cfg in the event they are needed for troubleshooting as-well-as an image of the issue:



The MFD screens are definitely displaying a higher resolution, but there is a jankiness to the rendering that, at certain angles, makes the font unreadable because the lines are so aliased. Is this a general problem with Sketchpad rendering fonts in Orbiter, or is there an underlying issue that can be corrected?

In the provided image, I am running the D3D9 client, but the same rendering problem persists in the in-line client, so I do not believe the problem to be inherent to the D3D9 client.

I have tested the rendering with all font rendering options provided by the D3D9 client (crisp, antialiased, and Cleartype), and I have tried running Orbiter with Cleartype forced off just to see if it was specifically a problem with Cleartype font rendering in Windows. None of these conditions appear to make the rendering any better.

Does anyone have any idea what the problem may be? I am fine with running the VC MFD textures at the default 256x256 texture resolution if need be, but was just wondering if anyone had a fix for this rendering issue.

Thank you very much for your time, :cheers:

-Samuel

Orbiter Log:
Code:
**** Orbiter.log
000000.000: Build Aug 28 2016 [v.160828]
000000.000: Timer precision: 1e-007 sec
000000.000: Found 2 joystick(s)
000000.000: Module AtlantisConfig.dll .... [Build 160828, API 160828]
000000.000: Module AtmConfig.dll ......... [Build 160828, API 160828]
000000.000: Module DGConfigurator.dll .... [Build 160828, API 160828]
000000.000: ---------------------------------------------------------------
BaseDir    : D:\Games\Orbiter Spaceflight Simulator\Orbiter2016\
ConfigDir  : D:\Games\Orbiter Spaceflight Simulator\Orbiter2016\Config\
MeshDir    : D:\Games\Orbiter Spaceflight Simulator\Orbiter2016\Meshes\
TextureDir : D:\Games\Orbiter Spaceflight Simulator\Orbiter2016\Textures\
HightexDir : D:\Games\Orbiter Spaceflight Simulator\Orbiter2016\Textures2\
ScenarioDir: D:\Games\Orbiter Spaceflight Simulator\Orbiter2016\Scenarios\
000000.000: ---------------------------------------------------------------
D3D9 DLLs  : C:\WINDOWS\SYSTEM32\d3d9.dll [v 10.0.18362.387]
           : C:\WINDOWS\SYSTEM32\d3dx9_43.dll [v 9.29.952.3111]
000000.000: ---------------------------------------------------------------
000000.000: Module D3D9Client.dll ........ [Build 190906, API 160828]
000000.000: Module ScnEditor.dll ......... [Build 160828, API 160828]
000000.000: Module Rcontrol.dll .......... [Build 160828, API 160828]
000000.000: Module ExtMFD.dll ............ [Build 160828, API 160828]
000000.000: Module LuaConsole.dll ........ [Build 160828, API 160828]
000000.000: Module LuaMFD.dll ............ [Build 160828, API 160828]
000000.000: Module XRSound.dll ........... [Build 180309, API 160828]
000000.000: Module BaseSyncMFD.dll ....... [Build 180408, API 160828]
000000.000: ---------------------------------------------------------------
000000.000: >>> WARNING: Obsolete API function used: oapiRegisterMFDMode
000000.000: At least one active module is accessing an obsolete interface function.
000000.000: Addons which rely on obsolete functions may not be compatible with
000000.000: future versions of Orbiter.
000000.000: ---------------------------------------------------------------
000000.000: Module BurnTimeMFD.dll ....... [Build 180706, API 160828]
000000.000: Module CustomMFD.dll ......... [Build 160828, API 160828]
000000.000: Module LaunchMFD.dll ......... [Build 180706, API 160828]
000000.000: Module ModuleMessagingExtMFD.dll  [Build 180624, API 160828]
000000.000:    >>> MMExtMFD module initialized: version 2.1, compile date Jun 24 2018
000000.000: Module AeroBrakeMFD.dll ...... [Build ******, API 100830]
000000.000: Module HUDDrawer.dll ......... [Build 160907, API 160828]
000000.000: Module InterMFD57.dll ........ [Build 161216, API 160910]
000000.000: Module PursuitMFD_2016.dll ... [Build 171119, API 160828]
============================ ERROR: ===========================
Failed loading module Modules\Plugin\Orbits.dll (code 126)
[Orbiter::LoadModule | .\Orbiter.cpp | 600]
===============================================================
000000.000: Module GenericCamera.dll ..... [Build 190406, API 160828]
000000.000: Module ScriptMFD.dll ......... [Build 160828, API 160828]
D3D9 Client Settings:
Code:
FrameRate = 200
EnableLimiter = 0
CustomCamMode = 0
PlanetPreloadMode = 0
PlanetTexLoadFreq = 60
Anisotrophy = 16
SceneAntialias = 8
SketchpadFont = 2
PreLoadBaseVisuals = 1
EnableNormalMapping = 1
NearClipPlaneMode = 1
RwyLightAnimate = 1
RwyLightAngle = 120
RwyBrightness = 1.8
NightLightsAngle = 10
BumpMapAmplitude = 1
PlanetGlow = 1
EnvMapSize = 512
EnvMapMode = 2
EnvMapFaces = 3
ShadowMapMode = 3
ShadowMapFilter = 2
ShadowMapSize = 2048
TerrainShadowing = 2
EnableGlass = 1
EnableMeshDbg = 1
TileMipmaps = 1
TextureMips = 1
TileDebug = 0
StereoSeparation = 65
StereoConvergence = 0.2
DebugLvl = 1
VCNearPlane = 0.1
LightCongiguration = 4
DisableDrvMgm = 0
NVPerfHUD = 0
DebugLineFontSize = 18
DisableVisualHelperReadout = 0
LODBias = 2
MeshRes = 2
MicroMode = 1
MicroFilter = 3
BlendMode = 1
MicroBias = 3
PostProcess = 1
ShaderDebug = 0
PresentLocation = 1
PlanetTileLoadFlags = 3
LabelDisplayFlags = 3
OrbitalShadowMult = 0.85
SolCfg = Sol
DebugLineFont = Fixed
 

jarmonik

Addon Developer
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,104
Reaction score
61
Points
48
Website
users.kymp.net
Hello,
I am having an issue with the font rendering in virtual cockpits when using the 1024x1024 texture resolution....
There is nothing wrong with the rendering of the MFD at 1024 resolution. The problem that you see on the screen comes when the 1024 image is being reduced down to a size you see on your screen. Normally mipmaps would take a care of the aliasing but the mipmaps aren't enabled.

Also there is a problem with line widths in 1024 resolution, which is just one pixel and thin lines like that are going to dissapear when the image is down scaled. I am not aware of any filtering techniques those could retain the contrast. One possible solution is to increase the line width as the rendering size increases, the sketchpad actually has a support for this but it's not in use.

So, right now it's simplier to avoid both of these issues by using a lower resolution either 256 or 512.

Any ideas how to fix this are welcome.

:cheers:Jarmo
 

Samuel Edwards

Clever title.
Moderator
Addon Developer
Joined
Apr 6, 2010
Messages
1,587
Reaction score
13
Points
38
Location
Somewhere, but not here.
Jarmonik,

Thank you very much for shedding light on this issue. I am glad to hear there is nothing wrong with my hardware, and that the system is working as intended presently.

You indicated mipmaps are disabled and Sketchpad supports increasing the line width. Are either of these things I can do on my end, or are they inaccessible to me? Would I even want to make those changes if they are accessible? I imagine changing those settings might have some unintended and unwanted side-effects, no?

What I am understanding is the solution to this is not simple.

Thanks again for the input,

-Samuel
 

jarmonik

Addon Developer
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,104
Reaction score
61
Points
48
Website
users.kymp.net
Hi,


There is nothing you can do about it. It's slightly problematic since one third of the stuff related to MFD drawing is locaded on Orbiter side, one part in MFD side and the rest in D3D9. So, we can't resolve all the issues solely from our side. Also, it's not clear what kind of solution would be the best one. I suppose it would be possible to do some experimentations with LTMFD and D3D9.
 

jarmonik

Addon Developer
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,104
Reaction score
61
Points
48
Website
users.kymp.net
Here's a test version that enforces the mipmaps for every texture and the line width is set to 3.0. Some of the MFD are working pretty well but the Orbit MFD has issues with peri-/apoapis and node markers. LTMFD has similar issues. VC MFD size 1024 is required.



The test DLL can be copied in R3.12 build of the client for Orbiter 2016. Backup the original file first.
 

Attachments

Samuel Edwards

Clever title.
Moderator
Addon Developer
Joined
Apr 6, 2010
Messages
1,587
Reaction score
13
Points
38
Location
Somewhere, but not here.
Jarmonik,

I appreciate you taking the time to create a test build for trying out. I will check it out this week and post feedback in this thread next week.

Thank you very much for your time,

-Samuel
 

Samuel Edwards

Clever title.
Moderator
Addon Developer
Joined
Apr 6, 2010
Messages
1,587
Reaction score
13
Points
38
Location
Somewhere, but not here.
Jarmonik,

I tried the .dll you supplied with the altered Sketchpad settings. I can see what you mean about how altering these settings and using mip-maps are not a total solution to the problem with MFD rendering. In some MFDs, it's a fantastic improvement, but others look quite bad with the line widths. Overall, these changes are not useful in practice.

Do you think there will ever be a way to find a happy medium?

Thanks for allowing me to sample the problem first-hand. I understand why the rendering is this way now.

:cheers:
-Samuel
 
Top