glLoadMatrix: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Beschreibung)
K (Bot: konvertiere/korrigiere <BR>)
Zeile 1: Zeile 1:
 
= glLoadMatrix =
 
= glLoadMatrix =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glLoadMatrix''' - ersetzt die aktuelle Matrix durch eine beliebige Matrix.
 
'''glLoadMatrix''' - ersetzt die aktuelle Matrix durch eine beliebige Matrix.
  
<br>
+
 
 +
 
  
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
Zeile 11: Zeile 13:
 
  '''procedure''' glLoadMatrixf('''const''' ''m'': PGLfloat);
 
  '''procedure''' glLoadMatrixf('''const''' ''m'': PGLfloat);
  
<br>
+
 
 +
 
 
== Parameter ==
 
== Parameter ==
 
<table border=1 rules=all>
 
<table border=1 rules=all>
Zeile 20: Zeile 23:
 
</table>
 
</table>
  
<br>
+
 
 +
 
 
== Beschreibung ==  
 
== Beschreibung ==  
 
'''glLoadMatrix''' ersetzt die aktuelle Matrix durch die 4x4-Matrix, auf die ''m'' zeigt. Abhängig vom aktuellen Matrix-Modus ([[glMatrixMode]]) wird dadurch die Projektions-Matrix, die Modelview-Matrix oder die Texture-Matrix ersetzt (siehe dazu [[Matrix#Die_drei_OpenGL_Matrizen|"Die_drei_OpenGL_Matrizen"]]).<br>
 
'''glLoadMatrix''' ersetzt die aktuelle Matrix durch die 4x4-Matrix, auf die ''m'' zeigt. Abhängig vom aktuellen Matrix-Modus ([[glMatrixMode]]) wird dadurch die Projektions-Matrix, die Modelview-Matrix oder die Texture-Matrix ersetzt (siehe dazu [[Matrix#Die_drei_OpenGL_Matrizen|"Die_drei_OpenGL_Matrizen"]]).<br>
Zeile 71: Zeile 75:
 
|}
 
|}
  
<br>
+
 
 +
 
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
Zeile 82: Zeile 87:
 
[[glGet]] mit Token GL_TEXTURE_MATRIX<br>
 
[[glGet]] mit Token GL_TEXTURE_MATRIX<br>
  
<br>
+
 
 +
 
 
== Siehe auch ==
 
== Siehe auch ==
 
[[glLoadIdentity]], [[glMatrixMode]], [[glMultMatrix]], [[glPushMatrix]]
 
[[glLoadIdentity]], [[glMatrixMode]], [[glMultMatrix]], [[glPushMatrix]]
  
 
[[Kategorie:GL|LoadMatrix]]
 
[[Kategorie:GL|LoadMatrix]]

Version vom 22. April 2006, 19:22 Uhr

glLoadMatrix

Name

glLoadMatrix - ersetzt die aktuelle Matrix durch eine beliebige Matrix.



Delphi-Spezifikation

procedure glLoadMatrixd(const m: PGLdouble); 
procedure glLoadMatrixf(const m: PGLfloat);


Parameter

m Ein Zeiger auf eine 4x4-Matrix, welche die aktuelle Matrix ersetzen soll.


Beschreibung

glLoadMatrix ersetzt die aktuelle Matrix durch die 4x4-Matrix, auf die m zeigt. Abhängig vom aktuellen Matrix-Modus (glMatrixMode) wird dadurch die Projektions-Matrix, die Modelview-Matrix oder die Texture-Matrix ersetzt (siehe dazu "Die_drei_OpenGL_Matrizen").
Der Parameter m zeigt auf eine 4x4-Matrix welche spaltenweise Fließkommazahlen mit einfacher oder doppelter Genauigkeit (Single oder Double) enthält.

Die Matrix muß also in der folgenden Reihenfolge gespeichert sein:

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

Beispiel-Quelltext

Als Ersatz für glPushMatrix / glPopMatrix:

type
  TVektor = record 
            X,Y,Z,W : glFloat 
  end;
  TMatrix = array[(mat_XAchse,mat_YAchse,mat_ZAchse,mat_Position)] of TVektor;
var TempMatrix:TMatrix; begin glClearColor(0,0,0,0); glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity;
glTranslatef(-0.8,-0.5,0); //Vorgebene Startposition glGetFloatv(GL_MODELVIEW_MATRIX,@TempMatrix); //Matrix wird gespeichert
{Rotes Dreieck}
glColor3f(1,0,0); gltranslatef(1,0,0); glbegin(GL_TRIANGLES); glvertex3f(1,0 ,-2); glvertex3f(0,1 ,-2); glvertex3f(0,0 ,-2); glend; glLoadMatrixf(@TempMatrix); //Gespeicherte Matrix wird wieder geladen
{Grünes Dreieck}
glColor3f(0,1,0); glbegin(GL_TRIANGLES); glvertex3f(1,0 ,-2); glvertex3f(0,1 ,-2); glvertex3f(0,0 ,-2); glend; end;



Fehlermeldungen

GL_INVALID_OPERATION wird generiert, wenn glLoadMatrix 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

glLoadIdentity, glMatrixMode, glMultMatrix, glPushMatrix