Missing textures: Difference between revisions

From FSDeveloper Wiki
Jump to navigationJump to search
mNo edit summary
Line 18: Line 18:
* Reduced FPS.
* Reduced FPS.
* Font corruption on main and context menus, ATC window, kneeboard page titles.
* Font corruption on main and context menus, ATC window, kneeboard page titles.
The above issues can be further exacerbated
<br>
<br>
if the texture.EXT called by the model, differs from that present in the repaint folder.
== Causes ==
== Causes ==
* File is missing from the relevant texture folder
* File is missing from the relevant texture folder

Revision as of 06:00, 26 May 2009

Overview
Missing textures for aircraft / scenery will impact on FSX performance.
Possibly resulting in -

  • Objects rendered as transparent.
  • Objects rendered as disassociated components.
  • Screen artifacting
  • Reduced FPS.
  • Font corruption on main and context menus, ATC window, kneeboard page titles.

The above issues can be further exacerbated
if the texture.EXT called by the model, differs from that present in the repaint folder.

Causes

  • File is missing from the relevant texture folder
  • Missing texture.cfg
  • Incorrectly configured texture.cfg (FSX default a/c texture.cfg file is wrong)
  • Model is calling a file from the common texture folder, (e.g. envmaps).

Simobject texture search paths

In FSX/FSXA, the search mechanism for locating any simobject's texture
behaves as follows, and continues until a matching texture is located, or the cycle is completed.

Entire cycle is repeated for every texture called by the model.

Searches For

1) file.ext - As explicitly defined in the model.
2) a matching .CAB file, (if CAB exists, will then search contents).
3) .ext of opposite type, (i.e. if 1) was a .bmp, searches for . dds, and vice-versa).
4) repeats 2) for the matching .CAB file, then searches for 3).


If not found during steps 1-4),
FSX/FSXA then repeats [b]every[/b] step above f
or each fallback path defined, in a correctly written texture.cfg

i.e. steps through -
fallback.1=..\texture
fallback.2=..\..\..\..\Scenery\Global\texture
fallback.3=..\..\..\..\Texture


The search sequence will repeat whenever the model requires a reload.
e.g. If the viewport is cycled from VC/2D to external.

Example

An IRL FSX/FSXA example for an airplane model calling a .bmp texture.

Methodology

For this example -
The FINDME.bmp texture was deliberately removed from the system,
to force FSX to perform a full search-path traverse.

I/O operation QueryOpen actions by fsx.exe, each resulted in a NAME NOT FOUND error.

The first 4 paths listed, are for the aircraft's native folder.

Each subsequent group of 4 paths,is for each of the 3 fallback paths.

Key

In the ProcMon logfile extract below -

  • MYFSXPATH - my drive & path to FSX's root folder, (concatenated for clarity).
  • TESTAIRCRAFT - The aircraft folder.
  • LIVERY - The repaint folder.
  • FINDME.bmp - The texture named in the model

Logfile data

Search path file calls for the missing FINDME.BMP texture.

MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.LIVERY\FINDME.bmp
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.LIVERY.CAB
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.LIVERY\FINDME.DDS
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.LIVERY.CAB

MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture\FINDME.bmp
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.CAB
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture\FINDME.DDS
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.CAB

MYFSXPATH\Scenery\Global\Texture\FINDME.bmp
MYFSXPATH\Scenery\Global\Texture.CAB
MYFSXPATH\Scenery\Global\Texture\FINDME.DDS
MYFSXPATH\Scenery\Global\Texture.CAB

MYFSXPATH\Texture\FINDME.bmp
MYFSXPATH\Texture.CAB
MYFSXPATH\Texture\FINDME.DDS
MYFSXPATH\Texture.CAB

That's a lot of disk thrashing.
All CPU cycles utilised detract from FSX/FSXA FPS.

Identifying

To identify the filename of missing textures for both aircraft & scenery,
add the following lines to your fsx.CFG into the section titled [SCENERY].

[SCENERY]
// To show alerts or areas, set to = 1 
// To hide alerts or areas, set to = 0 

// Alert for missing textures
ShowMissingTextureAlert=1

// Alert for missing objects
MissingLibraryAlert=1

// Render Trigger areas as visible boxes
ShowTriggers=1	

FSX will now display an alert dialog identifiying the missing file / object, or render trigger areas.

Related

Internal

External

Placeholder text