Ich habe mir die Problematik anhand der AI Ships in Florida nochmals genauer angeschaut und kann jetzt ein Muster erkennen.
Was ich jetzt schreibe ist natürlich noch kein Beweis und wahrscheinlich nur ein Teil der Story, aber ich konnte es in vielen Dutzenden Versuchen wunderbar reproduzieren. JOBIA ist das vielleicht ja schon bekannt und kann Korrekturen anbringen.
Ursache für die plötzliche Unschärfe waren folgende Texturformate bei den AI Ships:
a) Seitenverhältnis 1:8 oder 8:1 (1024x128, 128x1024, 64x512, 32x256 etc.).
b) DXT1 oder DXT3 (die x-bit Formate sind okay)
c) ohne alpha
d) ohne Mips
Alle 4 Punkte mussten bei mir erfüllt sein, damit es überhaupt zur Unschärfe kommen konnte. Selbst ein einziges 5 KB BMP kann den Effekt auslösen. Das Hinzufügen eines Alpha Kanals UND/ODER Mips hat das Problem gelöst.
Damit es jetzt aber zur Unschärfe kommt, muss ein zweiter Punkt erfüllt sein.
Wenn der Flusi nur ein einziges neues Objekt mit Texturen auf einmal laden muss, öffnet und liest er die dazugehörigen BMPs und schliesst sie sofort danach wieder. Wenn aber mehrere Objekte (hier die Schiffe) oder sonstige Texturen innerhalb Sekundenbruchteilen geladen werden müssen, bleiben die BMPs der Objekte offen, bis alle geladen sind. Erst am Schluss schliesst er dann alle zusammen. Das ist normalerweise kein Problem, ausser eines der Objekte hat eine faule Textur!
Ein fast gleichzeitiges Laden mehrerer Objekte tritt z.B. auf, wenn man die Sicht wechselt und mehrere Objekte gleichzeitg sichtbar werden. Ich habe mir eine Situation erstellt, wo direkt beim Auftstarten des FS drei Schiffe sichtbar waren -> Unschärfe.
Schaue ich in eine andere Richtung und drehe mich langsam zu den Schiffen hin, passiert es nicht, weil die Schiffe gemütlich nacheinander geladen werden. Ein schnelles Schwenken führt hingegen zum Problem.
Um den Effekt wirklich auszulösen spielt jetzt aber die Reihenfolge beim Laden der Objekte eine Rolle.
Bsp.:
Wir haben drei Schiffe (A, B, C) nahe beieinander mit drei versch. Texturordnern. Schiff A hat eine fehlerhafte Textur. Wenn jetzt auf einen Schlag alle 3 Schiffe geladen werden, kommt es immer dann zur Unschärfe, wenn Schiff A als Nr. 1 oder Nr. 2 geladen wird. Die schlechte Textur wird dabei gelesen und bleibt geöffnet, während der Flusi weitere "gute" BMPs von Schiff Nr. 3 lädt. Das führt zur Unschärfe.
Es geht dabei nur um die Reihenfolge der BMP-Pakete zw. den Objekten und nicht um jene von einzelnen Texturen innerhalb eines Objekts. Wenn nur Schiff A geladen wird, führt dies nicht zur Unschärfe, weil kein weiteres unmittelbar danach geladen wird. Zwischen zwei Schiffen werden meist auch noch sonstige Szeneriedaten geladen (z.B. scenery\vehicles\texture\cargoa.bmp), die aber den Effekt bei mir nicht auslösen, obwohl die faule Textur noch nicht geschlossen ist.
Im Anhang die schlechte Textur von einem der AI Ships.
____________________________________
Grüsse,
Yves
|