PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [OpenGL] Mathematische Kenntnisse?



chrizel
13-03-2004, 19:59
hi

Ich möchte mir OpenGL aneignen, und habe mir dazu auch das Buch "The OpenGL Programming Guide - The Redbook" geholt. Es soll ja praktisch DAS Standardwerk für OpenGL sein, und ich finde es auch recht gut.

Nur leider komme ich bei diesen komplexen (?) Formeln nicht recht weiter. Ich versteh das Zeug mit meinen Realschul-Wissen (wenn überhaupt :rolleyes: ) einfach nicht.

Deshalb meine Frage:
Wie lernt man sowas wie solche mathematischen Formeln, Matrizen, Vektoren, etc. am besten? Kann man das überhaupt selber lernen? Gibts da Bücher die bei 0 anfangen? Oder muss man dazu unbedingt eine weiterführende Schule besuchen?

Ich hoffe ihr könnt mir helfen.

Ich hätte wahrscheinlich doch besser weiter zur Schule gehen sollen... (FOS oder sowas)...

Würd ich das verstehen würd mir OpenGL wahrscheinlich etwas leichter fallen.

ciao
chrizel

Berufspenner
13-03-2004, 21:09
Hi

Wäre es möglich, dass du mal ein oder zwei dieser mathematischen Formeln, bei den du Probleme hast, postest könntest?

Cu
André

chrizel
13-03-2004, 22:16
hi

Na klar, ich hab sie mal eingescannt. Zum einen sowas hier:
http://chrizel.com/formel1.jpg

Ich weiss zwar dass das das Summe-Zeichen ist, aber ich weiss nicht wie man es liest. :rolleyes: Wär mal interessant wenn das mal jemand erklären könnte. Zudem hab ich Probleme mit den runden Kreisen mit dem + in der Mitte. Haben die irgendeine Mathematische Bedeutung? Was bedeuted die Formel überhaupt?

Und zum zweiten natürlich Matrizen:
http://chrizel.com/formel2.jpg

Ich habe gehört dass Matrizen eigentlich eine ganz einfache Sache sein sollen, aber bis jetzt hat sie mir halt auch noch keiner erklärt und ich kann sie nicht lesen. (ausser halt irgendwie entziffern was was sein könnte, aber keine Ahnung). Kann das auch jemand erklären?

Danke.

ciao
chrizel

Berufspenner
13-03-2004, 22:24
Hi

Ich glaube, dass es für dich dann wirklich interessant wäre, einige Bücher zu dem Thema zu welzen. Das sind nämlich die Themen der gymnasialen Oberstufe. Ein paar Bücher, die ich recht gut finde und die ganze Thematik rech gut erklären wären folgende:
http://www.amazon.de/exec/obidos/ASIN/3528942363/
http://www.amazon.de/exec/obidos/ASIN/3930737620/

Cu
André

chrizel
13-03-2004, 22:34
Danke.

Hab sie mir mal bestellt. Ich hoffe dass die Bücher nicht zu viel Wissen vorraussetzen... aber mal gucken.

Vielleicht werd ich ja irgendwann mal Fachabitur oder sowas machen, da kann man das bestimmt auch noch gebrauchen.

ciao
chrizel

Sym
13-03-2004, 22:35
Hi,

bei Formel Nummer 1 kann ich zu der Verknüpfung (Kreis mit innerem Kreuz) leider nichts sagen, da dieses Symbol mehrere Bedeutungen haben kann. Hast Du in dem Buch mal danach geschaut?

Sonst hast Du zwei Vektoren der Länge n. Auf diesen Vektoren x und y werden n Operationen angewandt (in diesem Fall 2 mal die Multiplikation und eine Subtraktion) und die Ergebnisse werden addiert. Anschließen teilst Du durch zwei.

Aber die Bedeutung des Symbols muss in dem Buch beschrieben werden.

Matrizen sind im Grunde leicht. Dir jedoch das Grundverständis hier beizubringen, wäre zu viel des Guten. Das jpeg hilft hier nicht weiter, da es sich um eine spezielle Transformation handelt.

Wenn Du sagst, wann genau Du diese benötigst, kann man Dir evtl. helfen.

Ansonsten hilft die ein Buch zur linearen Algebra wahrscheinlich sehr bei Deinen Problemen. Ist allerdings nicht ohne, wenn man nicht so viel Ahnung hat.

Tipp zu Matrizen: Werden oft zur Lösung von Gleichungssystemen gebraucht.

Sym
13-03-2004, 22:37
Original geschrieben von chrizel
Danke.

Hab sie mir mal bestellt. Ich hoffe dass die Bücher nicht zu viel Wissen vorraussetzen... aber mal gucken.

Vielleicht werd ich ja irgendwann mal Fachabitur oder sowas machen, da kann man das bestimmt auch noch gebrauchen.

ciao
chrizel

Als Tipp für die Zukunft. Schau Dir die Bücher zunächst an, bevor Du sie bestellst. Den Papular finde ich persönlich nicht so dolle. Aber er wird an vielen Universitäten empfohlen, weil da vieles ohne wirklichen Hintergrund beschrieben wird.

Detrius
13-03-2004, 22:42
Ich weiss zwar dass das das Summe-Zeichen ist, aber ich weiss nicht wie man es liest. Wär mal interessant wenn das mal jemand erklären könnte.

Bei einem Summenzeichen, wird der Term hinter dem Zeichen immer wieder summiert, wobei man für den angegebenen Index die entsprechenden Werte einsetzt. Bei Deiner Gleichung hast Du die Summe von i=0 bis i=n-1. Also kommt dabei sowas raus:
a = 1/2 * ( (x_0 * y_0+1) - (x_0+1 * y_0) + (x_1 * x_1+1) - (x_1+1 * y_1) + ... + (x_n-1 * y_n-1+1) - (x_n-1+1 * y_n-1) )
Der Index i startet also bei 0 und wird bei jedem Durchlauf um 1 erhöt bis er n-1 erreicht hat. Das Plus-Zeichen mit dem Kreis drumherum habe ich der Einfachheit halber durch ein normales Pluszeichen ersetzt. Das Zeichen selbst sagt mir jetzt so direkt leider nichts. Vielleicht wird es vorher mal irgendwo eingeführt?


Ich habe gehört dass Matrizen eigentlich eine ganz einfache Sache sein sollen, aber bis jetzt hat sie mir halt auch noch keiner erklärt und ich kann sie nicht lesen. (ausser halt irgendwie entziffern was was sein könnte, aber keine Ahnung). Kann das auch jemand erklären?
Wenn Du noch gar nichts über Vektoren und Matrizen weisst, dann solltest Du am besten ein Lehrbuch zu diesem Thema lesen oder schauen, ob Du im Netz ein leicht verständliches Uni-Skript zu diesem Thema findest. Das Problem bei Matritzen ist normalerweise nicht damit zu rechnen, denn das ist wirklich recht einfach, sondern die Dinge die sie repräsentieren können. In der von Dir geposteten Formel ist z.B. eine Rotationsmatrix, mit der Du etwas um eine Achse drehen kannst.

chrizel
13-03-2004, 23:18
Danke Leute.

Nach der 1. Formel steht noch folgendes dabei:
http://chrizel.com/formel11.jpg

Und ich muss sagen... schön langsam ergibt es Sinn.

i (+) 1 is (i + 1) mod n

Aber bedeuted mod hier modulo (%)? Ich glaub ich kapiers erst wenn ichs als C-Code sehe... ;)


Original geschrieben von Sym
Als Tipp für die Zukunft. Schau Dir die Bücher zunächst an, bevor Du sie bestellst. Den Papular finde ich persönlich nicht so dolle. Aber er wird an vielen Universitäten empfohlen, weil da vieles ohne wirklichen Hintergrund beschrieben wird.

Man kann alles stornieren... aber ich hab halt ein paar Rezessionen durchgelesen und die sind eigentlich recht ok... an sich kann ich ja nicht beurteilen ob die Bücher wirklich gut sind weil ich ja eigentlich keine Ahnung von dem Thema habe...

Ich werd jetzt erst mal gucken ob ich vielleicht das nötige Wissen im Netz finde.

Danke.

Sym
14-03-2004, 01:07
Original geschrieben von Detrius
---schnipp---
a = 1/2 * ( (x_0 * y_0+1) - (x_0+1 * y_0) + (x_1 * x_1+1) - (x_1+1 * y_1) + ... + (x_n-1 * y_n-1+1) - (x_n-1+1 * y_n-1) )
---schnipp---

Tja, das geht so leider nicht. Setze mal für n die Zahl 2 ein. Dann kommst Du schnell über die Vektorlänge ;).

Modulo habe ich mir auch gedacht. Das heißt einfach, dass Du vorne wieder anfängst zu zählen. Wenn n=2 ist, sieht das so aus:

a = 1/2 [(x_0*y_(0+1=1)-x_(0+1=1)*y_0) + (x_1*y_((1+1)%2 = 2 = 0)-x_()...*y_1]

Das heißt, wenn Dein Vektor so aussieht x = [1, 2, 3] und Du willst x_4, dann fängst Du vorne wieder an. Sprich x_4 = x_1 = 1.

Ich hoffe, Du verstehst mich.

Argh, ich hätte Deinen Beitrag genauer lesen sollen, dann hätte ich mir das erklären wohl sparen können. Natürlich handelt es sich bei mod um module! ;)

bmann
14-03-2004, 12:29
@chrizel:
Sag mal... wenn du OpenGL lernen willst warum schaust du dir dann eigentlich die Teile an an denen gross "Advanced" steht, sowie den Teil im Anhang, in dem die mathematischen Grundlagen zum Thema beschrieben werden??
Das braucht man eigentlich erst wenn man schon eine Menge Code hat und irgendwelche speziellen Camera-Transformationen oder einen eigenen Culling Algorithmus machen möchte oder sowas. Aber um dir OpenGL anzueignen sind die mathematischen Grundlagen völlig unerheblich.

Zudem gilt, dass man geteilter Meinung darüber sein kann, ob diese mathematischen Teile im Redbook gut beschrieben sind. Das ist zwar ein erstklassiges OpenGL Buch, aber wenn du näher in die Interna von OpenGL gehen musst, ist der Mathe Teil auf jeden Fall zu kurz und imho auch recht umständlich/schlecht erklärt.

CU
Andi

chrizel
14-03-2004, 13:06
Original geschrieben von bmann
@chrizel:
Sag mal... wenn du OpenGL lernen willst warum schaust du dir dann eigentlich die Teile an an denen gross "Advanced" steht, sowie den Teil im Anhang, in dem die mathematischen Grundlagen zum Thema beschrieben werden??

Weil ich nicht nur die Grundlagen lernen will, sondern schon weiter einsteigen will. Ich kann inzwischen relativ gut C programmieren (und andere Sprachen - hört sich hochnäsig an, aber ich gehör halt zu den Typen die verrückt sind) und bin ja auch beruflich Programmierer und da bin ich auch schon relativ fest in der Materie drin deshalb bin ich es gewohnt in die Materie einzusteigen, und von mir aus guck ich mir auch den OpenGL/Mesa Sourcecode an. Ich bin ja kein Ober-Newbie mehr was Programmierung angeht, aber OpenGL ist halt ein eigenes Thema. Und ich hab halt nicht die nötige Mathematische Vorbildung die ja bei OpenGL schon hilfreich sein sollte. Und nur weil da Advanced dasteht schreckt mich das nicht ab. Ich gehöre halt nicht zu den Typen die einfach sowas überlesen. Ich möchte immerhin wissen was intern passiert. Nur so kapiert man es auch. Ist schliesslich mit allem anderen auch so. Meine Meinung.

bmann
14-03-2004, 14:26
Im groben und ganzen sehe ich das ähnlich, hab diese Ansicht aber stark revidiert seit ich mit OpenGL arbeite. Du brauchst wirklich nichts davon zu wissen wie die konkrete 3D Mathematik hinter OpenGL arbeitet um sehr effiziente, mächtige und gut aussehende 3D Programme zu schreiben. Nicht meine Meinung, sondern meine Erfahrung.
Ich will dir auch keineswegs vorschlagen wegzuschauen wenn da "Advanced" steht (grade im Redbook steht das ab und an da, wo dann wichtige Dinge folgen, Beispiel Mutlitexturing). Aber in diesem speziellen Fall ist das ein _sehr_ viel weiterführendes Thema das rein gar nichts mehr mit der OpenGL Programmierung zu tun hat (zugegeben: meine Meinung).
Das Wissen, wie genau die Rotations Matrizen o.ä. aussehen bringt dir rein gar nichts, es sei denn du willst irgendwelche speziellen Dinge auf deren Basis berechnen. Den Algorithmus dazu entwirft man dann allerdings i.A. eher auf dem Papier, nicht am Rechner. Die Mathematik würde ich anfangs erst einmal grösstenteils ignorieren, zumindest die Teile die das Redbook präsentiert.

Nicht ignorieren würde ich dagegen Matrizen und Vektor Mathematik bezüglich 3D Programmierung im allgemeinen , die braucht man nämlich durchaus sehr häufig. Dazu ist das Redbook allerdings ein denkbar schlechtes Buch meiner Meinung nach - die erzählen dir zwar wunderbar wie du Rotations und Translations Matrizen erstellst (d.h. berechnest), aber wie man sie dann (vom praktischen mathematischen Standpunkt aus) benutzt wird verschwiegen (ist auch nicht der Inhalt des Buches). Hierzu würde ich dann im Internet ein paar Dinge lesen, speziell Artikel/Tutorials auf flipcode, wie etwa
http://www.flipcode.com/geometry/
(zwar nur ne Einführung in 3D Geometrie, aber für den Anfang schon recht tief gehend).

Ach und nochwas: den Mesa Sourcecode anzuschauen ist ne feine Sache, ihn (bezüglich der Mathematik) zu verstehen allerdings eine andere Sache. Mesa ist imho sehr sauber geschrieben, so dass recht oberflächliches Wissen über die Mathematik völlig ausreicht um Mesa Code zu lesen, zu editieren und in eigenen Projekten zu benutzen.

Aber klar, wenn es dir Spass macht dich damit zu beschäftigen will ich dich nicht abhalten, ich hab mich halt nur gewundert dass du dich als Einsteiger an Themen aufhälst, über die man an der Uni zig Vorlesungen hören kann (will damit sagen: das ist ein _riesiges_ Themengebiet das leider teilweise aufeinander aufbaut).

CU
Andi

chrizel
14-03-2004, 16:58
Danke.

Ist leider so... vieles setzt halt Grundwissen vorraus, aber wenn du sagst dass es vorerst reicht diese komplexeren Mathematik Formeln zu ignorieren dann ist das natürlich mal eine kleine Erleichterung, dann mach ich halt so mal weiter. Irgendwann werd ich auch sowas noch kapieren... bin ja noch jung... ;)

Wird schon werden.

ciao
chrizel

Silver
14-03-2004, 18:37
Hi!

Also ich habe bei mir das OpenGl Game Programming-Buch bei mir zu Hause liegen, und ihr wird sicha net so wie bei deinem Buch mit Formeln rumgeworfen, aber die du gepostest hast sind auch drinnen... aber hier sind sie erklärt! Hab auch 0 Ahnung mit Vektoren, Matrizen, etc. aber im Prinzip ist im Buch dort alles beschrieben. Vl schaust du dir das mal an, denn bevor ich da jetzt hochmathmeatischen Büchern studieren würde.... (abgesehen dass du hier sicha schnell demotiviert wirst, und dir dann OpenGl auch nicht mehr gefallen würde...).

Im Prinzip hat bmann schon alles gesagt!

mfG

PS: http://www.amazon.de/exec/obidos/ASIN/0761533303/qid=1079289420/sr=1-1/ref=sr_1_11_1/028-8123164-3802943