PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scaling Shader möglich?


thop
2004-04-02, 02:43:56
Und zwar hab ich folgendes Programm gefunden welches via Shader 2D Bilder mit wählbaren Algos vergrößert: http://www.beyond3d.com/articles/shadercomp/results/index.php?p=2#7

Da dachte ich mir das muss doch auch irgendwie für laufende Bilder möglich sein! Und zwar gehts mir da besonders um Leute mit TFT. Die interpolieren zwar ordentlich, können aber so moderne Algos wie 2xSal natürlich nicht! Ich möchte wetten manch altes 2D Spiel wie z.B. Starcraft sieht damit wesentlich besser aus als mit den eingebauten Algos der TFTs.

Nun ist die Frage: Ist sowas möglich? Und wenn ja wie würde das gehen, per vorgeschaltetem Programm oder vielleicht via Smartshader (der aber wohl nur mit OpenGL geht)?

marco42
2004-04-02, 03:38:20
Original geschrieben von thop
Und zwar hab ich folgendes Programm gefunden welches via Shader 2D Bilder mit wählbaren Algos vergrößert: http://www.beyond3d.com/articles/shadercomp/results/index.php?p=2#7

Da dachte ich mir das muss doch auch irgendwie für laufende Bilder möglich sein! Und zwar gehts mir da besonders um Leute mit TFT. Die interpolieren zwar ordentlich, können aber so moderne Algos wie 2xSal natürlich nicht! Ich möchte wetten manch altes 2D Spiel wie z.B. Starcraft sieht damit wesentlich besser aus als mit den eingebauten Algos der TFTs.

Nun ist die Frage: Ist sowas möglich? Und wenn ja wie würde das gehen, per vorgeschaltetem Programm oder vielleicht via Smartshader (der aber wohl nur mit OpenGL geht)?

Da Fragment Shader Programme nicht die Position des Pixel aendern koennen, wird das etwas schwierig. Du koennst den Bildwechsel triggern, dann den ColorBuffer in eine Texture schreiben und dann die Texture anschliessend auslesen, wenn du das ganze Bild einfach neu schreibst. Bei Smartshadern bin ich mir nicht so sicher, wie sie es machen. Wenn das einfahc nur ein Fragment Shader Programm ist, dann geht das AFAIK nicht.

Xmas
2004-04-02, 16:07:08
So etwas wäre nur im Treiber möglich. Oder vielleicht indem man sich vor die DirectX-DLLs einhakt und der Anwendung ein anderes Rendertarget als den Backbuffer gibt. Mit SmartShader nicht, da man hier der Anwendung keine andere Auflösung vorgeben kann als die finale Ausgabeauflösung.

RoKo
2004-04-02, 18:52:58
Mit Chromium ist sowas für OpenGL Anwendungen recht einfach möglich - ursprünglich nur ein System, um OpenGL Anwendungen verteilt auf mehreren Rechnern rechnen zu lassen, ist es mittlerweile eigentlich ein GL Hacking Toolkit...nur funktioniert das ganze noch nicht wirklich stabil und zuverlässig.
Ist auch ein bißchen Chaos, die Anwendung öffnet dann ein leeres Fenster, Chromium fängt die GL Befehle ab und rendert sie in ein eigenes Fenster.

Wäre eine klasse Sache, wenn Microsoft oder die Graka Hersteller eine Möglichkeit für "Scale PlugIns" bieten würden.
Aber da glaube ich wirklich nicht dran.

MadManniMan
2004-04-03, 03:03:22
Sowas hab ich mir unlängst für Outcast gewünscht, da ich mit meinem TFT an 1024 gebunden bin und die maximale im Spiel gebotene Auflösung ja gerade 512 ist. 512*384 und 400*300 kann mein Bildschirm leider nicht darstellen, daher wäre nur 320 geblieben, aber :kotz: so hab ich das Spiel zuletzt auf meinem 366er Seleri gespielt.

Börk
2004-04-03, 19:19:13
Original geschrieben von MadManniMan
Sowas hab ich mir unlängst für Outcast gewünscht, da ich mit meinem TFT an 1024 gebunden bin und die maximale im Spiel gebotene Auflösung ja gerade 512 ist. 512*384 und 400*300 kann mein Bildschirm leider nicht darstellen, daher wäre nur 320 geblieben, aber :kotz: so hab ich das Spiel zuletzt auf meinem 366er Seleri gespielt.
Warum kann dein Monitor 512*384 nicht darstellen? Das wäre doch genau 1/4 der Monitorauflösung und daher wäre die Interpolation doch wenigstens gescheit... komisch, komisch...

MadManniMan
2004-04-03, 19:24:05
Original geschrieben von burk23
Warum kann dein Monitor 512*384 nicht darstellen? Das wäre doch genau 1/4 der Monitorauflösung und daher wäre die Interpolation doch wenigstens gescheit... komisch, komisch...

Klingt eigentlich sinnig, nich? Is aber leider nich so ;( Ich hab nen Belinea 101555 und keinen Plan, warum er nicht einfach bei 512*384 für einen Pixel einen Pixelquad aus 1024*768 nehmen kann :ratlos:

thop
2004-04-04, 02:01:05
IMO ist das ne richtige Marktlücke. Es sollte doch ein leichtes sein da irgendwo im DIE eine winzige Einheit einzubauen mit paar verdrahteten Algos (oder programmierbar?), so dass man das ohne Leistungsverlust gleich per Hardware machen kann.

TFTs werden eher mehr als weniger, und alle plagt das selbe Problem. Das Scaling der TFTs geht sicher nich über paar popelige Standard Algos hinaus.