Hallo,
für meinen LED-Cube wollte ich ein PC Tool zur Ansteuerung und zum
Zusammenklicken von Animationen schreiben, bzw. zu deren Simulation ohne
Hardware.
Dafür muss ich den Würfel irgendwie darstellen. Komfortabel wär es wenn
man den Würfel "drehen" könnte um ihn von allen Seiten zu sehen.
Aber dafür reicht es wohl nicht mehr einfach nur Linien auf eine Form zu
zeichnen, da muss man wohl mit 3D Zeugs ran. Sowas hab ich aber noch nie
gemacht, würd mich also gern einarbeiten.
Könnt ihr da ein relativ schlankes Framework empfehlen, was man auch
schnell überblicken kann? OpenGL oder sowas?
Dachte an C++ als Sprache. Oberflächen hab ich bisher immer mit Qt
gemacht, da komm ich einigermasen zurecht.
PS: bitte dran denken: hier soll kein Shooter mit dicker Engine
entstehen. In der Praxis wird es wohl darauf hinauslaufen, ein paar
hundert Kugeln würfelförmig im Raum zu verteilen...
Ich hatte mir vor vielen Jahren dieses Buch gekauft.
Das war ganz nett, da wurden die mathematischen Grundlagen recht gut
erklärt (Matrixrechnung).
Ich hatte mir mit den Funktionen eine Steuerung für meine
Platinenbohrmaschine auf dem PC geschrieben. Die Platine konnte komplett
schief eingespannt sein und auch in der Größe durch den Drucker noch
verzehrt. Durch manuelles anfahren der Eckpunkte wurde das erkannt und
die Drilldaten entsprechend umgerechnet.
OpenGL ist perfekt!
Normalerweise empfehle ich glBegin und glEnd nicht zu nutzen, aber für
soetwas einfaches ist es am einfachsten.
Ich empfehle http://wiki.delphigl.com, ist zwar nicht c, aber gut
erklärt.
Falls es doch etwas Hochwertigeres werden soll, empfehle ich VBOs und
shader zu verwenden.
Danke euch allen, ich werd mir die Links zu Gemüte führen.
Was ich mich frage: wieso wird hier teilweise von Matrizenrechnungen und
Geometrie geredet?
Ich habe ja keine bewegten Objekte, z.B. Kanonenkugeln, für die ich eine
Flugbahn berechnen müsste.
Ich habe nur Kugeln, die sich ortsunveränderlich im Raum befinden und
einmal erstellt werden müssen, und aus denen sich dann mein Würfel
zusammensetzt. Jede Kugel entspricht einem "Pixel" des Würfels und kann
entweder "an" (=weiß) oder "aus" (=schwarz sein).
D.h. nach meinem Verständnis bräuchte ich zur Initialisierung folgendes:
(Achtung, Pseudocode!)
1
myCube[i]=newKugel(x,y,z);// wird z.B. 512 mal ausgeführt
Zur Laufzeit rufe ich dann etwa sowas auf:
1
myCube[i].setColor(SCHWARZ);
Mehr sollte das doch nicht sein? Wo kommt da die Mathematik ins Spiel?
Die Perspektive des Raumes mit der Maus zu verstellen (drehen, zoomen,
Kamere bewegen) sollte doch jedes 3D Framework mitbringen oder? Sowas
programmiert man doch nicht selbst?!
Tach,
was ist denn das Problem mit ein wenig Mathe?
Was denkst du denn, wie so ein Framework funktioniert. Du must dem ja
auch sagen, wo deine Kugeln sein sollen, wie schnell sie sich drehen
sollen, wo die Kamera ist.
Das wird in der Realität nun mal mit Matrizen gemacht. Wobei eigentlich
reicht, wenn du weißt, was Matrizen sind.
Grüße
Morrison schrieb:> Die Perspektive des Raumes mit der Maus zu verstellen (drehen, zoomen,> Kamere bewegen) sollte doch jedes 3D Framework mitbringen oder? Sowas> programmiert man doch nicht selbst?!
Du hast schon recht. Die Matrizenrechnung wird vom Framework gemacht.
Damit hast du in so einem einfachen Fall nichts zu tun.
Was für dich vielleicht noch interessant wäre, wären Quaternionen. Damit
kannst du den Würfel dann richtig schön mit der Maus drehen :-)
tech schrieb:> was ist denn das Problem mit ein wenig Mathe?
Hab kein Problem damit, als E-Techniker sollten Matrizen leicht von der
Hand gehen.
Mein letzter Beitrag sollte verdeutlichen, dass ich für mein Vorhaben
nicht sehe, wo diese ins Spiel kommen.
Aber danke euch, hab auf jeden Fall Anhaltspunkte!
Der Vollständigkeit halber sei auch OpenSceneGraph erwähnt. Wenn man
irgendwann soweit ist, zum ersten Mal etwas compilieren zu können, sind
die paar Kugeln einfach. Das osgviewer-Beispiel kann drehen, zoomen
etc., du musst ihm nur statt der geladenen scene deine eigenen Kugeln
unterschieben.
Morrison schrieb:> Mein letzter Beitrag sollte verdeutlichen, dass ich für mein Vorhaben> nicht sehe, wo diese ins Spiel kommen.
Wenn du ein fertiges Framework benutzt, dann wirst du damit nicht
unmittelbar in Berührung kommen.
Wenn du aber selbst an die Sache ran gehst, dann bleibt es nicht aus,
sich damit zu beschäftigen. Matrizen sind das um und auf in der
kompletten hierarchischen Modellierung von Szenerien. Es reicht schon,
dass du in deiner Szenerie ein paar Punkte selektieren willst und diese
Punkte dann gemeinsam (und unter Beibehaltung ihrer relativen
Positionierung zueinander) um eine bestimmte Achse drehen willst, die
dann auch noch windschief im Raum liegt.
Matrizen sind da einfach nur das mathematische Rüstzeug um derartige
Beziehungen in einer vereinheitlichten Form (Verschiebung UND Rotation)
beschreiben zu können.