PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kantenglättung in DX7 und Fragen zu SDL


Adam D.
2005-02-15, 20:58:23
Hi zusammen,
ein Klassenkamerad hat grade sein eigenes Tetris fertigprogrammiert und wir sind da auf etwas gestoßen: Er meinte, dass DX7 keine Kantenglättung unterstützt. Ich bin mir aber sicher (bzw. ich bin vor kurzem darauf gestoßen), dass DX7 schon AA-kompatibel war, denn ich hab da so ein Techdemo gesehen von einem Rollenspiel, wo man die Vorteile von AA mit Hilfe einer Voodoo-Karten (glaub ich) zeigen wollte.

Aber jetzt einfach zur logisch folgenden Frage: Wird Kantenglättung in DirectDraw (DX7) unterstützt? (Und jetzt etwas, mit dem ich nichts anfangen kann:) Inwiefern hat die SDL damit überhaupt zu tun?

Exxtreme
2005-02-15, 21:01:34
Aber jetzt einfach zur logisch folgenden Frage: Wird Kantenglättung in DirectDraw (DX7) unterstützt? (Und jetzt etwas, mit dem ich nichts anfangen kann:) Inwiefern hat die SDL damit überhaupt zu tun?
DirectDraw? Oje, ich weiss nicht ob es da Support für AA gibt da DirectDraw IIRC eigentlich für 2D zuständig ist. Für Direct3D gibt es AFAIR Support in DX7.

Coda
2005-02-15, 21:01:58
DirectDraw unterstützt keine Kantenglättung, das arbeitet ja auf Pixelebene.

q@h
2005-02-15, 21:50:37
Dass eine Applikation unter D3D global verfügbare AA-Modi anfordern konnte, wäre mir auch neu.

Coda
2005-02-15, 21:52:19
Natürlich kann eine Applikation AA einschalten, oder meinst du was anderes?

q@h
2005-02-15, 21:56:22
Ich meine das Modell, welches unter DX8 eingeführt wurde. AA als globales Treiber-Cap, welches die Application dann nur noch abfragt und als Pull-Down Auswahl zum Besten gibt. Und nicht solche Spezialdingenskirchen, wie, daß jeder Chip separat mit ihm genehmen Formaten und Anforderungen gefüttert wurde.

Demirug
2005-02-15, 22:06:58
Da habt ihr aber gerade Glück das ich mich am Wochenende nochmal mit DX7 beschäftigt habe und entsprechend das alte SDK auf dem Rechner habe.

Bei DX7 waren DirectDraw und Direct3D noch eng miteinader verbunden. Texturen und die Backbuffer wurden damals noch über DirectDraw erzeugt. Wenn man AA wollte sollte man beim Erzeugen des Backbuffers ein entsprechenden Flag setzten: "DDSCAPS2_HINTANTIALIASING" Es war zwar nicht zwingend erforderlich aber die Dokumenation warnt ausdrücklich das wenn man das Flag nicht setzt es zu starken Leistungseinbrüchen führen kann oder AA überhaupt nicht funktioniert.

Das AA selbst musste man dann noch im Direct3D Device selbst aktivieren über den Renderstate "D3DRENDERSTATE_ANTIALIAS". Bei DX7 durfte ein Chip aber noch darauf bestehen das er nur dann AA kann wenn man die Dreiecke sortiert rendert.

Es gab aber nur An oder Aus. Mehr konnte man nicht einstellen.

Neben diesem Fullscreen AA gab es auch noch das Edge Antialiasing was aber eigentlich nur ein bessere Fake ist.

Coda
2005-02-15, 22:10:54
Das nützt einem alles mit reinem DirectDraw trotzdem nix.

Demirug
2005-02-15, 22:20:53
Das nützt einem alles mit reinem DirectDraw trotzdem nix.

Ja, bei reinem 2D kann man den Hint zwar setzten doch bewirken wird er nichts. Ich wollte ja nur dazu beitragen den scheinbaren Wiederspruch aufzuklären.