[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