Missing textures: Difference between revisions

From FSDeveloper Wiki
Jump to navigationJump to search
Line 91: Line 91:


==== Logfile data ====
==== Logfile data ====
Search path file calls for the missing FINDME.BMP texture.
Search path file-calls for the missing FINDME.BMP texture, (with a valid texture.cfg).
<pre>
<pre>
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.LIVERY\FINDME.bmp
MYFSXPATH\SimObjects\Airplanes\TESTAIRCRAFT\texture.LIVERY\FINDME.bmp

Revision as of 10:27, 26 July 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 caused by, (or further exacerbated),
if the -

  • texture.EXT called by the model, differs from that present in the repaint folder.
  • texture is of a non-DXT format.


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, (with a valid texture.cfg).

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, (simobject or 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