![]() |
Das Geheimnis der unscharfen Texturen
Ich habe heute ein Entdeckung gemacht:
Alle kennen das Problem, dass die Texturen im FS2002 immer wieder stufenweise unscharf werden um Performance zu gewinnen. Mit dem Programm ImageTool von MS, sieht man beim Öffnen der Geländetexturen, dass diese in meherern Mip-Maps unterteilt sind, von ganz gross bis ganz klein sprich von scharf bis unscharf. Diese Texturen werden im FS2002 eben bei Bedarf und Framerate geladen. Man müsste jetzt nur (wenn man sich diese Arbeit antut) die Mip-Maps der Texture files im ImageTool zerlegen und nur das grösste wieder mit Originaldateinamen abspeichern, so stehen im FLusi keine unscharfen Texturen mehr zur Verfügung und somit ist immer alles scharf. Wie sich das allerdings auf die Performance auswirkt, aknn ich leider nicht sagen, da ich mir die Arbeit noch nicht angetan habe :) Noch ein wichtiger Hinweis für die Jenigen, die das machen wollen: Es reicht NICHT einfach alle zerlegten Mip-Maps zu schliessen und das grösste wieder abzuspeichern, nein, man muss alle einzelenen Mip-Maps als eigene Datein abspeichern und dann alle bis aufs grösste löschen, das dann auch wieder unbenannt werden muss. Das ist natürlich ein horrende Arbeit. Anders geht es allerding nicht, hab ich bemerkt. Obiges ist auch sehr gut für GMAX Flugzeuge anzuwenden. Das ist auch der Grund, dass die Originalflugzeuge von PSS A320 immer scharf sind, bei manchen User-Editis aber unscharf, da sie mit DXTBmp abgespeichert wurden. |
Hallo Flight Sim At
Hast Du das schon erfolgreich im FS anhand einer Textur ausprobiert wenn die Performance nachläst. Ich hatte die gleiche Idee schon mal vor 2 Monaten. Ich habe es im Zuge meiner Bodentexturprogrammierung ausprobiert. Ich habe damals aber bei einer selbst erstellten Bodentextur erst gar keine Mip Maps erzeugt sondern die Textur gleich als DXT1 Textur abgespeichert. Es entspricht also im Prinzip exakt deinem Verfahren bis zu dem Punkt "Noch ein wichtiger Hinweis für...." Dann weicht es bei Dir allerdings ab, weil Du ja sagst man muß jeden Mip Map Level einzeln abspeichern. Leider hat bei mir der FS wenn die Performance runter geht versucht einen anderen Mip Map Level zu laden. Da ja dieser nicht existierte hatte ich gedacht es bleibt bei der best aufgelösten Textur. Leider war dann bei mir anstatt dieser best aufgelösten eine schwarze Textur bzw. keine zu sehen, die der FS dann vermutlich als Ersatz für den fehlenden Level anzeigt. Auch die Versuche anstatt 256 x 256 Pixel grosse Texturen gleich welche mit 512 x 512 ( diese sehen um Welten besser aus) zu laden hat nicht funktioniert. Vielleicht funktioniert es aber nach der letzt genannten Variante mit einzelnen abspeichern der Mip Maps. Bei Autogen Texturen wie den Bäumen waren diese Versuche mit höherer Auflösung erfolgreich. Wenn dein Verfahren aber wirklich funktioniert wäre dies nicht schlecht. Ich habe das von Dir beschriebene mit dem löschen schon mal vor ca 2 Monaten ausprobiert. Ich habe damals aber eine Textu |
Hallo Flight Sim At
Ich muß jetzt noch mal nachhaken. Ich bin jetzt noch mal so vorgegangen wie Du es beschrieben hast. Zumindest so wie ich es anhand deiner Beschreibung vermute. Ich habe beim Imagetool die Funktion "Image" und "extract Mipmaps" aufgerufen. Das Tool zerlegt jetzt die einzelnen 7 Mip Maps die sonst in einer Bitmap integriert sind in Einzelbitmaps die wir ja eigentlich jetzt nicht benötigen. Diese sind als Beispiel bei der Textur 052b2su1.bmp jetzt in die Texturen 052b2su1_0.bmp bis 052b2su1_6.bmp also 7 Bitmaps zerlegt (alle im DXT1 Format.) Diese speicher ich alle auch so ab, sie haben ja durch die Nummerierung schon verschiedene Namen. Die original Textur 052b2su1.bmp mit weiteren 6 Mip Map Leveln existiert bisher noch. Jetzt öffne ich die Textur 052b2su1_0.bmp welche 256x256 Pixel (wie die beste der org. bmp hat) und speichere sie als 052b2su1.bmp (im DXT1 komprimierten Format ab). Die restliche lösche ich. Dies bedeutet ich habe die original Textur die der FS bisher benutzt hat durch eine komprimierte Textur überschrieben welche allerdings keine weiteren MipMap Level besitzt. So wie Du es oben beschrieben und ich es auch damals haben wollte um keine unscharfen Texturen angezeigt zu bekommmen. Habe ich das bis hier hin richtig gemacht, es hört sich zumindest so an. Leider muß ich gestehen das es bei mir genauso wenig funktioniert wie ich es damals vor hatte. Der FS versucht wieder bei Performanceprobs. bzw. in weiterer Entfernung schlechtere Mip Map Level zu laden. Da diese nicht existieren lädt er nichts bzw. hier eine schwarze Textur. Also genauso wie ich es vor zwei Monaten hatte. Ausnahme: Ich erzeuge eine Textur wie oben beschrieben ohne Mip Maps (ohne bzw. mit dem umständlichen Verfahren welches Du beschrieben hast und speichere dieses als Standard Textur 32 Bit ab [also nicht im Komprimierungsformat DXT1]) Dann habe ich immer scharfe Texturen wie gewünscht. Allerdings ist eine Textur ohne DXT1 Komprimierung jetzt auch 257KB groß gegenüber 43 KB original inkl. Mip Maps. Diese benötigt dann ca den 6 fachen Speicherplatz wie eine original FS Bodentextur und belastet zusätzlich die Performance und Speicher. Wie das Spielchen ausgeht wenn man alle Bodentexturen ändert kann man sich ja vorstellen. Aus diesem Grunde habe ich diese Möglichkeit vor 2 Monaten schnell über Bord geworfen. Auch die mit 512 Pixeln, da sie nicht funktioniert. Sollte deine Lösung aber auch im Komprimierungszustand DXT1 funktionieren, wäre sie für mich und auch andere hochinterressant. Funktioniert sie nur im unkomprimierten Verfahren (also 32 Bit) nützt sie mir leider nichts (genau so wenig wie vor 2Monaten), da dies ein Performance Killer ist. Beschreib doch bitte daher mal genau Dein Verfahren wenn es auch im Komprimierungszustand DXT 1 funktioniert. Gruß Joachim |
Hallo Miteinander,
leider sind meine Kenntnisse in Bezug auf Texturen und Mipmaps sehr begrenzt, doch versuche ich euren Ausführungen zu folgen. Was würde passieren wenn man die restlichen, unschärferen Miplevel nicht löscht, sondern mit einer Kopie der Ersten ersetzt. Dann hat der FS was zu laden, wenns auch immer der selbe Level ist. Vielleicht eine Möglichkeit, aber wahrscheinlich gäbe das wieder zu große Dateien. Ich habe auch schon Texturen aus dem 2000er, oder dem CFS2 verwendet, sehe dort aber die gleiche Unschärfe. Sind diese Bitmaps auch in Mipmaps aufgeteilt? An einer Lösung dieses Problems wäre ich sehr interessiert, die Unschärfe ist mir genauso verhasst, wie seinerzeit die sich stückchenweise aufbauene Textur im FS2000. Viele Grüsse Gert |
Ich meine "Forschungen" in dieser Richtung weiterentwickelt und bin auf folgendes gestossen:
Man benötigt das ImageTool nicht mehr. Am besten geht es, wenn man mit DXTBMp "Extended Image" ladet und dann den Menüpunkt "Include Mips" abwählt. so und jetzt einfach abspeichern als extendet Image und das wars fertig. |
Hallo Martin
Ein paar Fragen: 1) Welche Version von DXTBmp hast Du. Ich habe die Version 4.00.45 Hier habe ich keinen Menüpunkt "Include Mips" gefunden. Wo soll er sein? 2)Wenn Du eine ältere Version besitzt (die den Menüpunkt besitzt, wie gesagt vielleicht habe ich Ihn auch noch nicht gefunden) die vielleicht nicht mehr downloadbar ist, kannst Du mir diese dann zu mailen? 3) Du sagst einfach als extended Image abspeichern. Bei der DXTBmp Version die ich habe gibt es dann unter diesem Punkt die Möglichkeit zwischen 3x Extended 16 Bit und 1x Extended 32 Bit, 3x DXT1 und 1x DXT3 Formaten zu wählen. Welches nimmst Du? Wenn Du dir das ganze hinterher mit dem Imagetool anschaust in welchem Format wird die Textur dann gemeldet? Und das wichtigste was für eine Grösse hat sie? Gruß Joachim |
Ich benutze die Version 4.00.52 von DXTBmp und die gibts dort:
http://fly.to/mwgfx/ Du musst auf jedem Fall jedes Bild Als "Extended" Bild laden. ansonsten werden die Mips immer automatisch dazugespeichert, auch wenn Du sie gelöscht hast ! Jetzt gibts aber den Fall, dass gewisse Bilder keine "Extended" Bilder sind, diese kannst Du trotzdem als "Extended" laden Du wirst vorher darüber informiert, aber das ist ok. Wenn Das Bild geladen ist, solltest Du nachschauen, in welchen format es vorherrscht und im selben Format wieder rückspeichern allerdings immer vorher den Menüpunkt "Include Mips" abwählen. Für Flugzeugtexturen auf GMAX und Alpha Channel musst du stets das format "Extended 32Bit 888" beim Specihern wählen. Die grösse hängt immer vom Iamgetyp und Format ab, sollte aber niemals grösser sein als der Ursprung, da Du ja die Mips entfernst und diese ja auch Speicher brauchen. |
Hallo Martin
Habe mir die neueste Version inkl. der neuesten DLL geholt. Die neuste Version ist die die Du genannt hast. Bin jetzt exakt so vorgegangen wie Du geschreiben hast also ohne Mip Maps gespeichert. Abgespeichert habe ich unter Extended Bitmap als Format DXT1 with Alpha. So liegt die Textur auch im original vor und wurde auch vom Imagetool des FS immer so gemeldet. Das Format sollte daher auch richtig sein. Die Textur ist jetzt auch logischer Weise kleiner als vorher durch die fehlenden Mip Maps. Nur leider ist jetzt das Verhalten im FS nicht anders als vor 2 Monaten mit dem FS Imagetool. Der FS erkennt wohl das hier eine DXT1 Textur vorhanden ist. Standardmäßig sollte diese Mip Maps haben vielleicht weis der FS das. Hat sie jetzt aber nicht und was macht er, bei mir er zeigt er wieder schwarze Texturen (also nichts) an. Also hat mich dieses Verfahren nicht weiter gebracht als vorher. Jetzt noch mal eine Frage Du hast beschrieben, das dieses Verfahren mit der Unmwandlung bei Dir so funktioniert. Die Umwandlung selbst ist ja auch ok, aber ist auch die Funktion im FS bei Dir OK (also nicht mit schwarzem Loch). Es könnte natürlich sein das dein PC so gut ist, das es bei dir erst sehr spät zur Darstellung von schlechteren Mip Leveln kommt und bei mir schon sehr früh. Es fällt bei Dir vielleicht daher gar nicht auf das es nicht funktioniert. Bei mir funktioniert es definitiv mit diesem Format "DXT1 with Alpha" (wie original FS Bodentextur) nicht, sondern nur mit dem "Extended 32Bit 888" Format welches Du ja selbst für die Flugzeuge genannt hast (wo es ja auch erfolgreich von ADDON Anbietern ohne Mip Maps angewendet wird). Leider ist dieses sehr groß wie ich zuvor schon mal erwähnt hatte. Ich denke wenn es bei Dir funktioniert, weis ich nicht warum es bei mir nicht geht. Ich habe die deutsche FS Prof. Version. aber ich denke an Versionen kann es nicht liegen. Vielleicht hilft es nur weiter wenn jemand anderes dieses Verfahren auch mal mit dem Imagetool oder DXTBmp ausprobiert und darüber berichtet zu welcher Anzeige es im FS unter Performancelast kommt. Gruß Joachim |
Hallo nochmal für alle die uns bei unserem Problem behilflich sein wollen und an einer Lösung interressiert sind.
Zum Testen Beispiel hier mit Prog. DXTBmp. Hier erst mal der direkte Downloadlink zum Grundprogramm: http://www.mnwright.btinternet.co.uk...ad/dxtbmpx.EXE Weierhin der Link für die zusätzlich benötigten *.DLL Dateien: http://www.mnwright.btinternet.co.uk...d/mwgfxdll.EXE Hat man beides runtergeladen startet man zuerst die mwgfxdll.exe diese erzeugt mehrere *.DLL Dateien die in den Windows System Ordner automatisch kopiert werden. (werden für das Programm zwingend benötigt) Danach startet man die dxtbmpx.exe, diese installiert das Hauptprogramm und legt eine Verknüpfung auf dem Desktop an. Am besten startet man den PC jetzt neu, so ist man auf der sicheren Seite, das die DLL Dateien auch geladen sind. Da man aber das Problem hat wenn man eine Textur ändert, diese auch im FS wiederzufinden um es richtig beurteilen zu können, habe ich ein BGL File erzeugt welches nur Stadttexturen enthält. Zur Verwendung kommt hier die Texturserie 031b2su1.bmp bis 031b2su7.bmp bei Jahreszeit Sommer des FS. Das im Anhang befindliche BGL File LCE03N19.bgl in der Datei LCE03N19.zip kopiert man in folgenden Pfad des FS: X:\FS2002\Scenery X steht für euren Laufwerksbuchstaben wo Ihr den FS installiert habt. Solltet Ihr während der Installation einen anderen Pfad gewählt haben sieht dieses etwas anders aus. z.B X:\microsoftgames\FS2002\Scenery oder so ähnlich. Die Grundvoraussetzungen sind jetzt geschaffen. Jetzt startet Ihr DXTBmp. Nach öffnen des Programmes wählt Ihr über den Reiter "File" die Funktion "Load Extended Image". Es erscheint jetzt ein Explorer Fenster zur Fileauswahl. Hier wählt Ihr folgenden Pfad inkl. der zu bearbeitenden Datei der wieder je nach Installationsort etwas abweichen kann. Bei mir: X:\FS2002\SCENEDB\WORLD\TEXTURE\031b2su1.bmp Es sollte jetzt im DXTBmp Fenster eine Stadttexture erscheinen. Jetzt geht Ihr über den Reiter "Prefs" zu der Funktion "Include Mips" und wählt diese Funktion (das Häkchen ab) Nun wird die Textur über den Reiter "File" Funktion "Save Extended Image" im gleichen Pfad unter gleichen Namen 031b2su1.bmp als Dateityp "DXT1 with Alpha" abgespeichert. Die Textur besitzt jetzt keine Mip Map Level mehr. Nun startet man den FS in Deutschland Jahreszeit Sommer auf dem Flughafen Hildesheim. Dies hat zur Folge das auch das Landclass File mit den Stadttexturen geladen wird. Eine der 7 Texturen hat keine Mip Level mehr die anderen 6 die wir nicht bearbeitet haben schon. Tja und bei mir sieht man im FS diese 6 original Texturen sehr schön. Nur die eine bearbeitete wird in der Ferne nicht mehr angezeigt. Hier sieht man nur eine schwarze Texturkachel da die Mip Level die der FS sucht offensichtlich nicht mehr geladen werden können. Testet das bitte mal. Nach erfolgreichen Test bitte mein File LCE03N19.bgl wieder löschen. Mit DXTBmp besagtes Texturfile wieder wie oben öffnen. Diesmal aber darauf achten, das Funktion "Include Mips aktiviert ist bevor man abspeichert. Anschließend File wieder wie oben beschrieben abspeichern. Nach Neustart wird das Texturfile wieder wie original geladen und die Scenery ist auch wieder auf vorigem Stand. Gruß Joachim |
Hast Du in der fs2002.cfg die Terrain-Extended Levels auf wohl auf 1 odeR ?
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 03:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag