[BraLUG] 3D Programming
Norbert Böhm
sternentanz at friedenswarte.de
So Jun 4 09:18:13 CEST 2023
Liebe Linux- Freunde
Kennt sich jemand von Euch mit dem Programmieren von Game- Engines bzw.
3D- Engines aus?
Ich möchte ja die Sphärenmusik verwirklichen, also das Planetensystem
als Soundsystem durchfliegen
und die Planetensounds anhören. Das haben wir 2020 schon gemacht, indem
die Positionsänderung unseres Spaceshuttles
im Loop einfach durch Winkelveränderungen bewirkt wurde, und das Ganze
dann als MP4 gerendert wurde:
https://www.youtube.com/watch?v=l-J_p7ElxfM
Nun soll es so werden, dass man während des Fluges entscheiden kann,
wohin man fliegen will, d.h. das ganze Rendering
soll aktuell in time geschehen. Ich habe sowas natürlich noch nie
gemacht aber prinzipiell stelle ich es mir so vor:
1. In einer Datanbank sind die Positionsdaten der Planeten enthalten und
separat auch die Sternpositionen;
dann liest man aus der Datenbank den Teil der Daten in ein Array,
für das der Flug sein soll: z.B. die Positionsdaten im Zeitraum von 1900
bis 2050 n.Chr.
2. Dann plottet man Sternpositionen und Bahnellipsen der Planeten in den
Raum - diese sind ja unveränderlich und die große Frage ist,
ob dies eine GPU- Programmierung ist, da sie sich nur beim Verändern
meiner Position und Perspektive auf dem Bildschirm verändern
3. Der Hauptloop loopt dann einfach im geeigneten Zeitschritt durch das
Array und erzeugt so sie veränderlichen Planetenpositionen d.h.
die Planetenbewegungen - dies wäre dann vielleicht die CPU-
Programmierung, die bei mehreren Kernen und Multiprocessing flott geht (?!?)
4. Beim Hauptloop werden aus der Datenbank auch die Sounds (Hz) und
Lautstärkeparameter ausgelesen, wobei letztere noch entsprechend
unserer Nähe zum jew. Planeten in time korrigiert werden. Diese
harmonikalen Daten werden in time an den DJ- weitergeleitet.
Das ist eigentlich alles und die Performance ist dann ein 2-Mann-Job:
der VJ steuert den Raumflug und der DJ macht die Sounds.
Die große Frage ist, was man in der CPU und was man in der GPU
programmiert und welche Game/3D- Engine dafür sinnvoll ist???
Ich arbeite bislang mit Python und habe mit der Matplotlib-
Plotbibliothek geplottet- das ging ja soweit auch ganz gut.
Aber als interaktives Sonnensystem, wo ich jederzeit Richtung und
Perspektive ändern kann,
ist wohl eine Engine besser !?!?
Bitte gib mal Bescheid, wenn Du Erfahrung damit hast und Tipps geben kannst,
denn die Datenbank ist schon feddich, es kann also dann auch irgendwann
los gehen : DDD
Natürlich bin ich besonders an sauberen Open- Source- Lösungen
interessiert ; )
Einen schönen Sonntag wünscht Euch
Norbert Böhm
: )
Mehr Informationen über die Mailingliste Bralug