Entwickler-Ecke
Multimedia / Grafik - Sterne im Weltraum: 3D und Farbe
Sternkuccker - Di 17.11.09 21:05
Titel: Sterne im Weltraum: 3D und Farbe
Liebe Forenmitglieder,
ich habe ein Programm geschrieben, das in einer bestimmten Reihenfolge Sterne im Weltraum einfärbt. Das Programm selbst läuft gut, gibt die Daten aber bisher nur in Texform aus. Ich möchte das Ergebnis nun visualisieren, doch an dieser Stelle hören meine Delphi-Kenntnisse leider auf, da ich so etwas noch nicht gemacht habe.
Es handelt sich um einige tausend Punkte, für die jeweils x1, x2 und x3 Koordinaten vorliegen sowie ein Farbwert. Im Zeitablauf der Simulation (ca. 1 Minute) soll dieses Geschehen visualisiert werden.
Ideale Lösung wäre, ein Fenster zu haben, das man mit der Maus in allen 3 Achsen drehen kann, um einen Eindruck vom 3D-Geschehen zu bekommen. Darin sieht man dann die farbigen Sterne, die im Zeitablauf ihre Farbe ändern.
Wie gestaltet man sowas? Muss ich dafür tief in die Grafikprogrammierung einsteigen? Gibt es fertige Templates? Ich weiß z.B., dass einige Spiele-Engines als Open Source veröffentlicht wurden. Andererseits stelle ich mir mein Anliegen als sehr "basic" vor im Vergleich zu heutigen Spielen, sodass eine einfachere Lösung nahe liegt.
Ich bin dankbar für jeden Rat!
Freundliche Grüße
Michael
Gewuerzgurke - Mi 18.11.09 09:39
Du könntest mit einer PaintBox arbeiten aber erfahrungsgemäß ist das selbst für so einfache Animationen zu langsam.
Deshalb müsstest du schon mit DirectX oder OpenGL arbeiten - der größte Nachteil dabei ist, dass man teilweise von der Hardware abhängig ist, OpenGL soll nicht mehr auf Vista und Windows 7 laufen, DirectX geht nicht auf Linux...
Ich habe grafisch nur mit DirectX gearbeitet. Du kannst dir ja mal meinen Bildschirmschoner angucken, das geht auch in deine Richtung
http://www.mitjastachowiak.de/?/Projects/Starfield
In der SimulatorFenster.pas steht der relevante Quelltext, in der procedure PEinblenden findest du zum Beispiel ein Paar Render-Einstellungen, die für dein Vorhaben nützlich sein können - wenn du schon etwas DirectX kannst. Auf
http://www.delphidev.de/forum/viewforum.php?id=14 findest du DX-Header für Delphi und vermutlich auch ein Paar Einsteiger-Tutorials.
Wenn man's einmal verstanden hat, ist es eigentlich nicht schwer aber für den Einstieg braucht man schon etwas Geduld.
Martok - Mi 18.11.09 10:42
Gewuerzgurke hat folgendes geschrieben : |
Du könntest mit einer PaintBox arbeiten aber erfahrungsgemäß ist das selbst für so einfache Animationen zu langsam. |
Das ist eher nicht das Problem... aber man müsste die Projektion selber berechnen. Sinnloser Aufwand und so.
Gewuerzgurke hat folgendes geschrieben : |
der größte Nachteil dabei ist, dass man teilweise von der Hardware abhängig ist |
Bei so einfachen Sachen eher nicht. Mit OpenGL dürftest du den gleichen (zumindest Grafik)Code auf allem vom Smartphone bis Workstation ans laufen kriegen. Mit DirectX nicht, das ist klar.
Gewuerzgurke hat folgendes geschrieben : |
OpenGL soll nicht mehr auf Vista und Windows 7 laufen |
Das ist Quatsch und wäre wirtschaftlicher Selbstmord für MS.
Gewuerzgurke hat folgendes geschrieben : |
Wenn man's einmal verstanden hat, ist es eigentlich nicht schwer aber für den Einstieg braucht man schon etwas Geduld. |
Ich fand OpenGL einfach zu lernen, erst recht mit den wunderbaren Tutorials und Headern von
DelphiGL [
http://www.delphigl.com].
EDIT: noch was zum Thema.
Was du hier willst ist (als Stichworte) glBegin(GL_POINTS), glVertex3f und glColor3f; wegen der Punktmenge mindestens als DisplayList, ggf. direkt als VBO(Vertex Buffer Object) geladen. User-Interaction bzgl. Drehen, Zoomen etc. kann man mehr oder weniger aus den diversen Tutorials auf DGL raubkopieren ;)
Gewuerzgurke - Mi 18.11.09 20:34
Zitat: |
>>OpenGL soll nicht mehr auf Vista und Windows 7 laufen
>Das ist Quatsch und wäre wirtschaftlicher Selbstmord für MS.
|
Dachte ich auch aber ich bin mir sehr sicher gehörtzuhaben, dass Hardwarebeschleunigung mit OpenGL auf Vista und Win7 sehr eingeschränkt ist :nixweiss:
Das währe dann vielleicht der Grund warum Creative für OpenAL auf Vista eine extra Anwendung braucht, die den CPU in die Höhe treibt :D - egal, das ist eine andere Geschichte.
Für dein Vorhaben, würde ich mich wohl tatsächlich an GL - Wollte ich auch schon längst gelernt haben - halten; damit bist du unabhängiger. DirectX macht nur für "komplexe Hochperformance-Anwendungen" auf Windows Sinn.
Sternkuccker - Do 19.11.09 11:39
Danke schonmal an alle! Ihr habt mir wohl einige richtige Stichworte genannt. Ich werde es in OpenGL realisieren. Programmiere momentan mit Lazarus und habe ein erstes Tutorial mit GLUT am Laufen. Jetzt heißt es wohl erstmal lesen und lernen...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!