Thema: Delphi Alphakanal in DelphiX

Einzelnen Beitrag anzeigen

Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#8

Re: Alphakanal in DelphiX

  Alt 7. Dez 2004, 15:11
RHW-Vertizes sind bereits transformiert und beleuchtet, d.h. sie werden nicht mehr durch die Transformationspipeline gewurstelt, sondern direkt an den Rasterizer übergeben. Weil sie also nicht mehr transformiert und beleuchtet werden, zeichnet der Rasterizer sie exakt so auf den Bildschirm, wie er sie empfängt. Wenn man also als Koordinaten die Bildschirmkoordinaten angibt, werden die Vertizes auch exakt an dieser Stelle auf dem Bildschirm erscheinen.

Um ein Bild (128x128 Pixel) an der Bildschirmposition 100, 100 darzustellen, zeichnet man einfach zwei Dreiecke, die folgende 3D-Koordinaten haben:
Code:
(100,100,1)    (228,100,1)
         _______
        |      /|
        |    /  |
        |  /    |
        |/______|
(100,228,1)    (228,228,1)
Die dritte Komponente ist deshalb nötig, weil es ja insgeheim trotzdem 3D-Vektoren sind, auch wenn es 2-dimensional gezeichnet wird.

Nun legt man noch die Texturkoordinaten für die Fläche fest:
Code:
(0,0)    (1,0)
    _______
   |      /|
   |    /  |
   |  /    |
   |/______|
(0,1)    (1,1)
Dann lädt man eine Textur, aktiviert sie und rendert das ganze. Schon hat man ein 2D-Bild.

Eine Animation kann man ganz einfach erstellen, indem man die Einzelbilder hintereinander in einer Textur speichert, und die Texturkoordinaten so anpasst, dass immer ein einzelnes Bild aus der Textur "herausgepickt" wird.

Und die Kollisionen laufen ja wahrscheinlich sowieso mathematisch ab, da ist es unerheblich, wie die Grafik dargestellt wird.
  Mit Zitat antworten Zitat