Spritegröße und Bildschirmauflösung

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Kaeru Gaman hat geschrieben::?:

Belege?
Hast schon recht, hab das Beispiel verwechselt.
I´a dllfreak2001
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

dllfreak2001 hat geschrieben:Hast schon recht, hab das Beispiel verwechselt.
noprob
Vermilion hat geschrieben:Frage: Kann man die Glättung bei einem in der Größe veränderten Screen ausschalten? Ich habe da nun nichts gefunden, was das bewerkstelligen könnte.
das ist eine Sache der individuellen Einstellungen der Grafikkarten-Treiber.

du müßtest also direkt an den Basiseinstellungen deines Benutzers rumpfuschen,
und das ist allgemein etwas, was man unterlassen sollte, wenn man sich keine Feinde machen will.

ZeHa hatte das für seine Retro-Engine so gelöst, dass er über Sprite3D mit Quality 0 gearbeitet hat.
das ist allerdings auf DX7 angewiesen und nicht DX9 kompatibel.

da man allerdings für ein Retro-Game nicht unbedingt hohe Framerates und viel Content braucht,
würde ich alternativ über eine Image-Lösung nachdenken.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Kaeru Gaman hat geschrieben: ZeHa hatte das für seine Retro-Engine so gelöst, dass er über Sprite3D mit Quality 0 gearbeitet hat.
das ist allerdings auf DX7 angewiesen und nicht DX9 kompatibel.
Wieso isn das nicht kompatibel?
I´a dllfreak2001
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

SpriteOutput ist viel zu langsam mit dem DX9 subsystem, um in jedem Frame benutzt zu werden,
und man muss noch etliche klippen umschiffen, damit es zuverlässig läuft.
am besten fragst du ZeHa direkt nach seinen Erfahrungen diesbezüglich,
ich meine mich zu entsinnen dass er es ausprobiert hat...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Das ist dann aber nicht gleich inkompatibel.

Aber warum soll er denn bei jedem Frame SpriteOutput nutzen, er kann doch die einzelnen
Animationsstufen auch als eigene Sprite3Ds rausgeben.
Werd mich mal damit an Zeha wenden.

Ich weiß jetzt nicht ganz ob das, der Sachlage entspricht:
Ein Beispielcode...

Code: Alles auswählen

InitSprite()
InitSprite3D()
InitKeyboard()

OpenScreen(1024,768,32,"SpriteOutput-FrameCheck")

Global starttime.l, fps.f, frames.l


starttime = ElapsedMilliseconds()

CreateSprite(0, 512,512,#PB_Sprite_Texture)
TransparentSpriteColor(0, RGB(50,50,50))
CreateSprite3D(0,0)

Repeat
  
  frames + 1
  fps = frames/((ElapsedMilliseconds()-starttime)/1000)
 
  ExamineKeyboard()

  rot.f + 0.1
  ;-Auf dem Sprite rummalen
  StartDrawing(SpriteOutput(0)) 
    Box(0,0,512,512,RGB(50,50,50))
    Circle(Cos(rot)*64+256,Sin(rot)*64+256,24,RGB(255,0,0))
  StopDrawing()
  
  ;-Sprite3D ausgeben
  Start3D()
    DisplaySprite3D(0,128,128,255)
  Stop3D()
  
  ;-Frames anzeigen
  StartDrawing(ScreenOutput())
    DrawText(0,0,StrF(fps,1)+" fps")
  StopDrawing()

  
  FlipBuffers()
  ClearScreen(0)

Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
Auf Vista64 haben sich ob mit oder ohne DX9-Subsystem als auch
ohne Benutzung von Sprite3D die Frames um 60FPS herumbewegt.
Sprite3Ds, DX7 und Vista führen bei mir seltsamerweise zum Absturz.


Es ist mir nur so wichtig weil DX9 gerade unter Vista einiges zur kompatibilität beiträgt.
I´a dllfreak2001
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ZeHas Herangehensweise war, den kompletten 320x200 Oldskool screen auf eine Texture zu plotten und dann zu vergrößern.

natürlich könnte man auch jedes einzelne Element von Anfang an größer gestalten...
ich frag mich grad, warum ich den Gedanken nicht schon früher verfolgt habe...
Ein größer Gemaltes 2DSprite ist unangenehm, weil es zu viel Platz für die selbe Bildinformation verbrät,
aber es einfach per Sprite3D größer darzustellen ist keine üble Idee...

das ist mal wieder so eine Baum-versus-Wald-Geschichte...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten