3D Sprites sehen unter Win2K zerrissen aus :-( (gelöst)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

3D Sprites sehen unter Win2K zerrissen aus :-( (gelöst)

Beitrag von Kurzer »

Hallo,

ich teste gerade die Anfänge meines Kartenspiels unter Win2K (entwickelt wird es unter Win98SE).
Jetzt sehe ich daß die 3D Sprites unter Win2K völlig auseinandergedehnt erscheinen.

Hier mal ein Bild vons janzen: Bildchen

Unter Win98Se sehen die 162 Karten, die testweise auf dem Screen verteilt sind, völlig korrekt aus.
Habt ihr eine Idee was das sein könnte?

Gruß Markus

PS: Win98SE = DirectX 9.irgendwas
Win2K = DirectX 7.0
Zuletzt geändert von Kurzer am 30.05.2006 16:34, insgesamt 1-mal geändert.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Ich habe nur die Vermutung, dass es etwas mit FlipBuffers() zu tun hat. Wenn ich keinen Parameter übergebe, ist alles ok, aber wenn ich einen Parameter übergebe (s. Hilfe dazu), dann sieht es genauso wie auf deinem Bild aus; ich nutze XP SP2.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wenn dasn screen ist, wieso hast du dann nen fensterrahmen drumrum?

btw. wenn die vermutung von AND nich ins schwarze trifft, dann müsste man schon ein bisschen code sehen, um überhaupt raten zu können wo's dran liegt...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

Fensterrahmen, weil WindowedScreen.

Ich habe jetzt den gesamten Quellcode auch mal abgelegt: Hier die ZIP Datei mit den Sourcen und den BIldern (ca. 10KB gesamt)

Das ganze spielt sich in der Includedatei "SkipBo-Grafik.pb" ab.

Gruß Markus
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich kann erst in 2 stunden reingucken, bin grad auf der arbeit... :roll:

das mit dem argument beim FlipBuffers() wär natürlich ne möglichkeit,
der windowedscreen verhält sich eben doch ein wenig anders als der fullscreen, z.b. die synchro geht vom desktop aus und nicht vom screen selber...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

AND51 hat geschrieben:Ich habe nur die Vermutung, dass es etwas mit FlipBuffers() zu tun hat. Wenn ich keinen Parameter übergebe, ist alles ok, aber wenn ich einen Parameter übergebe (s. Hilfe dazu), dann sieht es genauso wie auf deinem Bild aus; ich nutze XP SP2.
Schade... habe alle Parameter für FlipBuffers() ausprobiert (und auch ohne). Bringt leider nix.

Gruß Markus
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Du benutzt doch "Sprite3D" oder?
Dabei wird doch Antialiasing nicht benutzt oder?
Vielleicht liegt's daran; kann man das in PB 4.0 ändern?
Bild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Versuch mal die Darstellung ohne Sprite3D.

Nur mal schauen, wie es da aussieht. Ist dein Windows98SE Rechner der selbe wie dein 2000 Rechner?

- Manche Sachen sind nicht ganz NT kompatibel.
- Deine Grafikkarte unterstützt das, was du vorhast so nicht

Versuch mal deine Sprites aus einem Vielfachen von 2 aufzubauen.
Das können nicht alle Grafikkarten. Ich weiß nur, dass bei günstigen Grafikkarten (weder ATI noch nVIDEA-Chip) an den Ecken von Bilder solche Sachen auftreten können. Vielleicht musst du auch den Speicher für deine Sprites vorher manuel allokieren.

Ich hatte ein ähnliches Problem mal mit einer SIS-Grafikkarte und einem 100 x 100 Sprite.

Sah komplett verschrumpelt aus. Aber kann man umgehen.
128 x 128 draus gemacht.

Aber ich muss gestehen, ich hab deinen Code nicht gelesen, und sicherlich hast du schon alles versucht.

:roll:
Kinder an die Macht http://scratch.mit.edu/
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Dabei wird doch Antialiasing nicht benutzt oder?

das regelt Sprite3DQuality()

...aber das ist kein AA-problem, das sieht nach was anderem aus... :|


[edit]
da sagt Xaby was... genau...

bei einigen Grakas müssen die vorlagen für Sprite 3D quadratisch sein und ganze zweierpotenzen kantenlängen haben...

also, wenn du die karten in 256x256 malst, darstellen kannst du sie so rechteckig wie du lustig bist, aber die eigentliche texture muss 2^x*2^x sein...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

Xaby hat geschrieben:Versuch mal die Darstellung ohne Sprite3D.
Ohne 3D geht es.
Habe die selbe Karte einmal mit, einmal ohne 3D darstellen lassen.

Code: Alles auswählen

  DisplaySprite(11, WindowMouseX(#MainWindow), WindowMouseY(#MainWindow))
  DisplaySprite3D(11, WindowMouseX(#MainWindow)+ 100, WindowMouseY(#MainWindow), 255)
Xaby hat geschrieben:Nur mal schauen, wie es da aussieht. Ist dein Windows98SE Rechner der selbe wie dein 2000 Rechner?
Nein, sind verschiedene, ich weiß leider auch nicht was für eine Grafikkarte im 2K Rechner ist.
Xaby hat geschrieben:Versuch mal deine Sprites aus einem Vielfachen von 2 aufzubauen.
Das kann es nicht sein, die sind 96 x 128 pixel groß. Also ziemlich Computerfreundliche Werte ;-)
Xaby hat geschrieben:Aber ich muss gestehen, ich hab deinen Code nicht gelesen, und sicherlich hast du schon alles versucht.
Naja nicht wirklich. Aber als PB Anfänger wüsste ich jetzt auch nicht wo ich da ansetzen sollte. Daher mein Hilferuf.

Gruß Markus
Antworten