Handling großer Bilder(Tileset)
Übersicht

FunkMonkBetreff: Handling großer Bilder(Tileset) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo
Folgende Problematik: Ich schreibe grade meinen Mapeditor von B3D auf Blitzmax um. Anscheinend geht Blitzmax aber anders mit Bildern um als B3D dies tut. Dort konte ich ohne Probleme einen Ausschnitt(256*672 Pixel) meines Tilesets(265*11872 Pixel) mittels DrawImageRect auf den Bildschirm bringen. Versuche ich das gleiche nun in Blitzmax Bekomme ich in der Console folgene Fehlermeldung: Code: [AUSKLAPPEN] D3DERR: Unable to create texture
Hier mal Meine bisherige Hauptschleife. Hänge da auch mal das laden der Bilder vor, sollte da etwas anders gemacht werden müssen. BlitzMax: [AUSKLAPPEN] Global Tileset:TImage = LoadImage("tilesets\set1.png") 'Laden des Tilesets (Später durch Funktion (werde mehrere Tilesets haben)) Wär nett wenn da mal wer drüberschauen könnte. In B3D hat es wie gesagt problemlos funktioniert. greetz FunkMonk |
||
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja ![]() ich gehe mal davon aus, das du mit Graphics() bereits eine Graphische oberfläche erstellt hast. Da du auf große bilder anspielst, so tippe ich darauf, das dein Tileset das problem ist. Weiter nehme ich an, da es ein Tileset ist, haben alle tiles die selbe größe/breite. Wenn dem so ist, würde ich dir eher empfehlen, mal LoadAnimImage() auszuprobieren. Als parameter erwartet es das bild, das du laden möchtest, sowie die Width/height einer kachel, die erste kachel (anfang: 0) und die anzahl der kacheln (von links nach rechts, von oben nach unten gezählt!) zb 25. Damit ist es dir möglich, den entsprechenden index der kachel bei DrawImage() mit anzugeben (als frame index!) Allerdings, wenn ich mir so den Fehler angucke, könnte es am Treiber liegen. Poste doch mal dein ganzes Initialsieren (dh Setzen von grafiktreiber, erstellen der oberfläche, sonstige einstellungen) - vllt ist da ja irgendwo der Wurm drin ![]() Aber wirklich helfen kann ich dir leider nicht, dieser fehler ist mir unbekannt & ich selbst hatte nie probleme beim laden von bildern. Es war maximal sau lahm, aber lief immer (egal wie groß ![]() |
||
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da Max2D auf 3D-Beschleunigung setzt, werden geladene Bilder auf Zweierpotenzen gerundet (aus 256x11872 wird also 256x16384) und dann auf eine 3D-Textur kopiert. 256x16384 ist aber natürlich weit über der maximalen Texturgrösse, die eine normale Grafikkarte unterstützt (aus Kompatibilitätsgründen sollte man 4096 nicht überschreiten). Du musst daher dein Tileset auf mehrere Bilder aufteilen, so dass jedes Bild eine bestimmte Grösse (z.B. 512x512 oder 1024x1024) nicht überschreitet. | ||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ach mist. Die größenangabe hatte ich garnicht gesehen oO
Mal anders gefragt - warum ist deine Textur so groß? Sind es zich tausend Tiles auf einem Bild? Oder evtl sogar mehrere Themes zusammen? Hier lässt sich bestimmt ein wenig sinnvoller ordnen und auslagern ![]() |
||
FunkMonk |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sind knapp 3000 Tiles. Diese werden aber auch (fast) alle in dem Projekt verwendung finden.
Wenn ich das ganze mit LoadAnimImage lade und dann in ner schleife die Tiles einzelnd zeichne funktioniert dass ganze aber anscheinend. (Ich weiß auch nicht mehr den Grund weshalb ich bei B3D mit DrawImagerect gearbeitet habe. Aber iwas war da.) Trotsdem werde ich wohl das große Tileset noch im mehrere kleine splitten. Nun weiß ich wenigstens woher das Problem kommt. Besten Dank FunkMonk |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein einfacher Workaround wäre auch dein Tileset anders anzuordnen:
256 * 16384 ginge auch als 2048*2048 ohne Informationsverlust. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group