Koordinatensysteme (Direct3D 10)
Koordinatensysteme für Direct3D 10 sind für Pixel und Texel definiert.
Unterschiede zwischen Direct3D 9 und Direct3D 10:
- Direct3D 10 definiert die linke obere Ecke des oberen linken Pixels als Ursprung eines Renderziels.
- Direct3D 9 definiert die Mitte des linken oberen Pixels als Ursprung eines Renderziels.
Pixelkoordinatensystem
Das Pixelkoordinatensystem in Direct3D 10 definiert den Ursprung eines Renderziels in der oberen linken Ecke. wie im folgenden Diagramm dargestellt. Pixelzentren werden um (0,5f, 0,5f) von ganzzahligen Positionen versetzt.
Pixelkoordinatensystem für Direct3D 9
Hier ist das Pixelkoordinatensystem für Direct3D 9, das den Ursprung oder ein Renderziel als Mittelpunkt des linken oberen Pixels (0,5,0,5) von der oberen linken Ecke definiert hat, wie im folgenden Diagramm gezeigt. In Direct3D 9 befinden sich Pixelzentren an ganzzahligen Positionen.
Texel-Koordinatensystem
Das texel-Koordinatensystem hat seinen Ursprung in der oberen linken Ecke der Textur, wie im folgenden Diagramm dargestellt. Dadurch wird das Rendern bildschirmorientierter Texturen (in Direct3D 10) trivial, da das Pixelkoordinatensystem am texel-Koordinatensystem ausgerichtet ist.
Texel-Koordinatensystem
Texturkoordinaten werden entweder mit einer normalisierten oder einer skalierten Zahl dargestellt. Jede Texturkoordinate wird einem bestimmten Texel wie folgt zugeordnet:
Für eine normalisierte Koordinate:
- Punktstichprobe: Texel # = Floor(U * Width)
- Lineare Stichprobenentnahme: Links Texel # = Floor(U * Width), Right Texel # = Left Texel # + 1
Für eine skalierte Koordinate:
- Punktentnahme: Texel # = floor(U)
- Lineare Stichprobenentnahme: Links Texel # = floor(U - 0,5), Right Texel # = Left Texel # + 1
Wobei die Breite die Breite der Textur (in Texels) ist.
Texturadressenumbruch erfolgt, nachdem die Texel-Position berechnet wurde.
Zugehörige Themen