Matrizen (->OpenGL) Verstaendnissproblem

tr0nix

tr0nix

der-mit-dem-tux-tanzt
Hallo zusammen

Ich habe ein kleiner Matrizen Verstaendniss Problem.
(Ich weiss, dass Matrizen nciht von OGL sondern aus
der Mathe kommen, der Topic sollte nur OpenGL _und_ Mathe
versierte anziehen ;))

Bei der 3d Programmierung hat man ja sogenannte 4x4 Matrizen (plural von Matrix). Welche einen Startpunkt
haben und je 3 Vektoren fuer die restlichen Punkte.

Also Bsp:
float matrix[16] = {
1, 0, 0, 0, (x)
0, 1, 0, 0, (y)
0, 0, 1, 0, (z)
0, 0, 0, 1
};

Dabei ist die 4te Zeile wie auch die 4te Spalte was spezielles.

Wie soll ich das zeugs nun interpretieren Schritt fuer Schritt? Ich habe
schon einige Seiten abgeklappert aber ich werd einfach noch immer
nicht ganz schlau draus!
So wie ich das Verstanden habe, ist die 4te Spalte die Position des
Anfangspunktes. Die 4te Zeile sei nur irgendein Korrekturfaktor
oder sowas und kann vorerst vernachlaessigt werden. Hauptsache
in der 4ten Zeile ist in der 4ten Spalte eine eins.

Wenn man auf diesen Punkt immer die Vektoren anwendet, welche
noch in der Matrix gegeben ist, haette man:
1. Punkt (Startpunkt -> 4te Spalte):
x = 0, y = 0, z = 0

2. Punkt (1te Spalte):
x = 1, y = 0, z = 0

3. Punkt (2te Spalte):
x = 0, y = 1, z = 0

4. Punkt (3te Spalte):
x = 0, y = 0, z = 1

Wenn man sich jetzt diese Punkte also Verbindet kommt man
auf sowas:

o
| o
|/
o---o

(Wobei jedes o ein von mir angesprochener Punkt ist).

Anhand dieser 4 Punkte kann man sich ja einen Wuerfel "denken".

Ich habe jetzt allerdings ein grafisches Beispielprogramm welches
einen Wuerfel mit folgender Matrix bastelt:

float matrix[16] = {
1, 0, 0, 0, (x)
-1, -1, 0, 0, (y)
0, 0, 1, 0, (z)
0, 0, 0, 1
};

Das verwirrt mich ein wenig... da ich eigentlich erst mal die Theorie
der 3d Programmierung studieren will (kennt jemand gutes Buch
oder Tutorial? -> OpenGL unter Linux), habe ich mich noch nicht
richtig mit dem Beispielprogrammcode auseinandergesetzt. Deshalb waere
es natuerlich moeglich, dass noch etwas weiteres mit der 2ten
Matrix gebastelt wird, was mir nicht aufgefallen ist.

Kann mir jemand klar sagen wie man nun diese Punkte zu verstehen
hat?

Gruss & dank
Joel
 
thorus

thorus

GNU-Freiheitskämpfer
Mit OpenGL hab ich mich nur ein bisschen beschäftigt.
Im Prinzip kannst du ja definieren was du willst, sofern du das richtig in OpenGL interpretierst.
Ich schätz mal du kapierst das nicht ganz, weil das in nem Beispielcode vorkommt, oder?

Schreib doch einfach mal dein eigenens Programm. irgendwas dummes, so lernst du am besten. mach selber Entwürfe von Arrays (Matrizen) und wie du die am besten strukturierst usw. damit du etwas spezielles, wie einen Würfel. erreichen kannst.
Du musst ja nicht unbedingt den Array von dem Beispielcode verwenden.

Und wenn du ein gescheites OpenGL Tutorial mit vielen Sources für alles OS suchst, dann bist du hiermit gut bedient.
Ich hab nur die ersten paar Kapitel gelesen, weil ich z.Zt. viel anderes zu tun hab, irgendwann muß ich genauer in die Welt von OpenGL einsteigen ;)

cu
thorus
 
tr0nix

tr0nix

der-mit-dem-tux-tanzt
Cool sieht gut aus, danke! Mich fasziniert irgendwie einfach die Darstellung und Illusion eines 3 Dimensionalen Raumes auf einem Flachen Bildschirm ;).

Wenn du interessiert bist, koennten wir ja einen Topic aufmachen alleine ueber 3d Mathematik und Darstellungsformen?
 
Ox53746F6E65

Ox53746F6E65

Grünschnabel
soweit ich das noch in meinem gedächnis hab, hast du eine matrix, mit der du alle operationen durchführen kannst.

die entsteht aus der multiplikation von mehreren matrizen (rotationsmatrix, ...)

such mal einige tutorials für directX, das verwendet fast dasselbe system wie openGL bei den matrizen.
 

Ähnliche Themen

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

XFCE freezes at startup

Segmentation fault -- warum?

Geforce GT 240m - Aspire 5739G - Treiberproblem - 6 faches Bild

Speicherproblem?

Oben