Normalisierte Gerätekoordinate: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Rechtschreibung)
(Bereich korrigiert: Vorher [0..1] (inkl.), jetzt [-1..1] (inkl).)
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Was ist das?==
+
'''Normalisierte Gerätekoordinaten''' (engl. normalized device coordinates, auch '''NDC''') bilden den Bereich eines Ausgabemediums (in Verbindung mit OpenGL eigentlich immer der Viewport auf einem Fenster) auf die Koordinatenspanne -1..1 auf jeder Achse ab. Man kann sie ähnlich wie auch die [[Normale]] eines Vektors dann beliebig skalieren.
Normalisierte Gerätekoordinaten (engl.: normalized device coordinates ; kurz: NDC) stellen ein Koordinatensytsem auf einer virtuellen Ausgabe dar. Die linke untere Ecke hat die Koordinaten (0,0) und die rechte Obere Ecke (1,1).
 
  
==Für was brauch ich sie?==
+
In der Praxis besteht der Hauptnutzen darin, dass man weitestgehend Auflösungsunabhängige Koordinaten verwenden kann (solange das Seitenverhältnis gleich bleibt). Das ist vorallem bei Vektorgrafiken, die beliebig skalierbar sein sollten, wichtig.
NDCs werden verwendet um eine Positionsangabe auf beliebigen Ausgabegeräten darzustellen. Sie dienen, einfach gesagt, der Verallgemeinerung von Koordinatenangaben.
+
 
 +
Nehmen wir an, wir haben einen Viewport mit einer Fläche von 1024 Pixeln in der Breite und 768 Pixeln in der Höhe. Ein Punkt P mit den absoluten, also nicht normalisierten, Koordinaten P(350/210) würde in normalisieren Gerätekoordinaten gerundet P(-0.32/-0.59) ergeben. Diese Koordinaten könnte man jetzt auf einen Viewport mit einer Fläche von 800x600 Pixeln projizieren, indem man die normalisieren Gerätekoordinaten ähnlich wie beim Skalieren von Vektoren mit den Ausmaßen des Viewports multipliziert. In diesem Fall ergäbe das gerundet: P(273/164).

Aktuelle Version vom 5. September 2008, 20:14 Uhr

Normalisierte Gerätekoordinaten (engl. normalized device coordinates, auch NDC) bilden den Bereich eines Ausgabemediums (in Verbindung mit OpenGL eigentlich immer der Viewport auf einem Fenster) auf die Koordinatenspanne -1..1 auf jeder Achse ab. Man kann sie ähnlich wie auch die Normale eines Vektors dann beliebig skalieren.

In der Praxis besteht der Hauptnutzen darin, dass man weitestgehend Auflösungsunabhängige Koordinaten verwenden kann (solange das Seitenverhältnis gleich bleibt). Das ist vorallem bei Vektorgrafiken, die beliebig skalierbar sein sollten, wichtig.

Nehmen wir an, wir haben einen Viewport mit einer Fläche von 1024 Pixeln in der Breite und 768 Pixeln in der Höhe. Ein Punkt P mit den absoluten, also nicht normalisierten, Koordinaten P(350/210) würde in normalisieren Gerätekoordinaten gerundet P(-0.32/-0.59) ergeben. Diese Koordinaten könnte man jetzt auf einen Viewport mit einer Fläche von 800x600 Pixeln projizieren, indem man die normalisieren Gerätekoordinaten ähnlich wie beim Skalieren von Vektoren mit den Ausmaßen des Viewports multipliziert. In diesem Fall ergäbe das gerundet: P(273/164).