glMultMatrix: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Beschreibung)
(Beispiel)
 
Zeile 51: Zeile 51:
 
   glMatrixMode(GL_MODELVIEW);
 
   glMatrixMode(GL_MODELVIEW);
 
   glLoadIdentity();
 
   glLoadIdentity();
   glMultMatrixf(@ScaleMatrix);
+
   glMultMatrixf(@ScaleMatrix); // Aktuelle Matrix mit ScaleMatrix multiplizieren.
  
 
   glBegin(GL_TRIANGLES);
 
   glBegin(GL_TRIANGLES);

Aktuelle Version vom 22. Juni 2018, 17:27 Uhr

glMultMatrix

Name

glMultMatrix - multipliziert die aktuelle Matrix mit einer beliebigen Matrix.


Delphi-Spezifikation

procedure glMultMatrixd(const m: PGLdouble);
procedure glMultMatrixf(const m: PGLfloat);


Parameter

m Ist ein Zeiger auf eine 4x4-Matrix, deren Werte spaltenweise als 16 Einzelwerte abgelegt sind.


Beschreibung

glMultMatrix multipliziert die aktuelle Matrix mit der Matrix, auf die m zeigt.

Wenn M die aktuelle Matrix ist und T die, auf die m zeigt, dann bewirkt glMultMatrix: M := M*T

Die aktuelle Matrix ist entweder die Projektionsmatrix, die Modelviewmatrix oder die Texturmatrix. Dies hängt vom aktuellem Matrixmodus ab.

Der Parameter m zeigt auf eine 4x4-Matrix, die Fließkommazahlen von einfacher bzw. doppelter Genauigkeit enthält. Diese werden spaltenweise als 16 Einzelwerte abgelegt. Die Werte werden somit in folgender Reihenfolge gespeichert:

+-           -+
| 0  4  8  12 |
| 1  5  9  13 |
| 2  6  10 14 |
| 3  7  11 15 |
+-           -+

Beispiel

Das Modell wird um die Hälfte verkleinert.

type
  TMatrix = array[0..3, 0..3] of glFloat;
const
  ScaleMatrix: TMatrix = ((0.5, 0.0, 0.0, 0.0), (0.0, 0.5, 0.0, 0.0), (0.0, 0.0, 0.5, 0.0), (0.0, 0.0, 0.0, 1.0));   

begin
  ...
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  glMultMatrixf(@ScaleMatrix); // Aktuelle Matrix mit ScaleMatrix multiplizieren.

  glBegin(GL_TRIANGLES);
  ...

Fehlermeldungen

GL_INVALID_OPERATION wird generiert, wenn glMultMatrix innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.


Zugehörige Wertrückgaben

glGet mit Token GL_MATRIX_MODE

glGet mit Token GL_MODELVIEW_MATRIX

glGet mit Token GL_PROJECTION_MATRIX

glGet mit Token GL_TEXTURE_MATRIX


Siehe auch

glMatrixMode, glLoadIdentity, glLoadMatrix, glPushMatrix