Forum: PC-Programmierung 3D-Framework


von Morrison (Gast)


Lesenswert?

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...

von Jürgen D. (poster)


Lesenswert?

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.

von Quigglebear (Gast)


Lesenswert?

Da bist du mit OpenGL vermutlich am besten bedient: Lässt sich leicht in 
Qt integrieren, ist dokumentiert wie kaum eine andere Schnittstelle.

von Jürgen D. (poster)


Lesenswert?


von Daniel A. (daniel-a)


Lesenswert?

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.

von Quack (Gast)


Lesenswert?

Das ist ein bisschen Gemoetrie, Schulstoff 8 Klasse reicht dafuer... 
aber OpenGL geht natuerlich auch.

von Morrison (Gast)


Lesenswert?

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] = new Kugel(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?!

von tech (Gast)


Lesenswert?

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

von Borislav B. (boris_b)


Lesenswert?

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 :-)

: Bearbeitet durch User
von Morrison (Gast)


Lesenswert?

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!

von Thomas (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.