Génération procédurale de systèmes planétaires semi-corrects

14

Il existe donc de nombreuses ressources que vous pouvez trouver via Google ou en utilisant la recherche ici sur la façon de générer une galaxie entière. Mais je n'ai trouvé aucune bonne ressource sur la façon de générer des systèmes planétaires qui suivent ces critères:

Les systèmes ne doivent pas nécessairement être des simulations précises des orbites mais doivent être proches des orbites plausibles. Je ne me soucie pas d'une simulation qui se soucie de l'apparence du système dans 200 000 ans, les orbites pourraient être solides. Le principal problème auquel je suis confronté est de savoir comment générer de manière aléatoire un système qui pourrait être considéré comme plausible. Cela devient particulièrement intéressant lorsque vous avez un système avec une étoile binaire.

Créer des orbites au hasard ne constituera pas un système plausible, vous vous retrouverez avec des orbites manifestement non fonctionnelles. Oui, je suis conscient du problème du N-corps :) mais cela ne m'aide pas, du moins je pense, à résoudre le problème de génération d'un système plausible procédural?

Je pense que vous pouvez simplement générer des planètes au hasard sur leur orbite et leur donner une masse, puis utiliser les mathématiques à N corps pour calculer si elles sont plus ou moins valides, sinon recommencer et générer aléatoirement de nouvelles orbites jusqu'à ce que vous obteniez quelque chose qui correspond , mais ce serait très inefficace.

burzum
la source
Vous pouvez d'abord générer une masse ou peut-être même une densité et un diamètre (cela peut se produire de manière aléatoire dans certaines limites), puis calculer le rayon d'orbite et la vitesse nécessaires en fonction d'une formule. S'il y a déjà une planète dans ce rayon d'orbite, générez-la à nouveau. Cela devrait réduire considérablement les générations redondantes et devrait sembler plutôt raisonnable, d'autant plus si vous inclinez un peu les orbites au hasard. Cela ne tiendra pas compte de l'interaction gravitationnelle interplanétaire, mais vu que vous demandez une représentation assez basique, cela peut être suffisant.
cozmic
4
Pour répondre à cette question, vous devez être un astronome, pas un développeur de jeux. Ce pourrait être davantage une question d'astronomie.
Philipp
Créez un ensemble de règles pour qu'une planète soit viable. Créez un ensemble de règles pour qu'un ensemble de planètes soit viable. Vérifiez ces règles. Terminé.
Mast
Cela ne répond pas exactement à votre question, mais vous pourriez trouver mon travail utile: quotientring.com Il y a quelques réponses dans le jeu de règles Cosmos-2: alternityrpg.net/resources/1375/original/cosmos-2.pdf
Macktuesday

Réponses:

11

Afin de créer un système solaire plausible, assurez-vous que chaque orbite se trouve dans la sphère d'influence du corps parent, mais pas dans la sphère de colline ou la limite de roche d'un autre corps.

La sphère d'influence est le rayon maximum autour d'une planète où des satellites stables peuvent être attendus.

La limite de la roche est le rayon orbital minimum qu'un corps céleste peut avoir autour d'un autre. Lorsqu'il est sur une orbite inférieure, il se brise et devient un anneau.

La sphère de colline est pertinente lorsque vous voulez éviter de créer deux satellites autour du même corps qui ont des orbites très proches. C'est la plage entre le rayon orbital minimum et maximum qu'une planète "occupe".

Les trois valeurs peuvent être calculées à partir de la masse et du rayon orbital avec les formules dans les articles Wikipédia liés.

Je voudrais donc essayer l'algorithme suivant:

  1. Créez un nombre aléatoire de corps célestes avec un rayon orbital et une masse aléatoires. Le rayon et la masse doivent être sur une échelle logarithmique.
  2. Du plus massif au moins massif, calculez la sphère de colline de chaque planète. Toute planète moins massive dans la sphère de colline d'une planète plus massive devient une lune de cette planète. Génère aléatoirement le rayon orbital de la lune autour du parent avec une distribution logarithmique entre 0 et la sphère d'influence du parent.
  3. Effectuez l'étape 2 pour tous les systèmes lunaires afin de résoudre les conflits de lune et de sphère de lune. La question de savoir si une lune peut avoir un satellite stable est un sujet de débat parmi la communauté astronomique (aucun exemple n'est connu dans notre système solaire). Lorsque vous ne voulez pas de lune-lune, supprimez simplement la plus petite lune ou placez-la sur une orbite aléatoire différente.
  4. Vérifiez la limite Roche de chaque objet autour de son parent. Lorsqu'il est en dessous de la limite de roche, convertissez-le en anneau (ou supprimez-le simplement).

Cela couvre les systèmes à une seule étoile, mais pas les systèmes à étoiles binaires . Un système d'étoiles binaires a deux étoiles en orbite autour d'un barycentre commun. Les planètes peuvent orbiter l'une des étoiles (orbite de type S) ou le barycentre commun sur une orbite très large (orbite de type P).

Si vous voulez un système d'étoiles binaires, je recommanderais de générer la deuxième étoile comme un autre satellite autour de l'étoile primaire dans un premier temps. Tout ce qui se trouve dans la sphère montagneuse de la deuxième étoile tourne autour de la deuxième étoile et tout ce qui a un rayon plus petit que la sphère montagneuse de la deuxième étoile tourne autour de la première étoile. Calculez le barycentre et faites en sorte que les deux étoiles tournent autour de leur lune. Tout ce qui a un obit plus grand que la sphère de la colline orbite autour du barycentre des deux étoiles (orbite de type P).

Les systèmes d'étoiles n-aires trinaires et plus grands ne sont stables que lorsque les étoiles au-delà du 2e sont très petites par rapport à l'autre. Ces étoiles supplémentaires devraient être gérées comme n'importe quelle autre planète.

Philipp
la source
Je vais juste ajouter la troisième loi de Kepler sur le mouvement planétaire à cette réponse,The square of the orbital period of a planet is directly proportional to the cube of the semi-major axis of its orbit.
Draco18s ne fait plus confiance au SE
15

Simplifiez la physique à 2 corps. La physique des N-corps est en général chaotique et vous ne pouvez pas les simuler sur une orbite stable.

Étoiles simples

Pour les systèmes avec une seule étoile, j'ignorerais le problème du N-corps et ferais simplement un ensemble de planètes grossièrement réparties à une distance géométriquement croissante du soleil . Peut-être pourriez-vous avoir une règle selon laquelle si une planète particulièrement grande est générée, tous les voisins trop proches se déstabilisent et forment une ceinture d'astéroïdes .

Les planètes proches de l'étoile ne sont pas nécessairement rocheuses comme c'est le cas dans notre système solaire .

La masse, la distance et la vitesse orbitale d'une planète sont interdépendantes - lorsque vous choisissez des valeurs au hasard, faites dépendre l'une d'entre elles (probablement la vitesse orbitale) des deux autres.

Étoiles binaires

Je ne connaissais pas vraiment les étoiles binaires habitables auparavant avant de consulter Wikipedia pour cette réponse, alors lisez sur Habitability_of_binary_star_systems où j'ai obtenu certains de ces chiffres.

  1. Dans les planètes non circumbinaires (la planète n'orbite que sur une des étoiles du système binaire), si la distance d'une planète à son primaire dépasse environ un cinquième de l'approche la plus proche de l'autre étoile, la stabilité orbitale n'est pas garantie. Cela signifie que si les étoiles A et B forment un système binaire avec la distance AB , vous pouvez avoir des orbites planétaires stables autour de A ou B à des distances plus proches que 0,2 * AB . Pour ces systèmes, j'utiliserais à nouveau la physique des 2 corps comme approximation.

  2. Dans les systèmes circumbinaires, tant que la planète est 2 à 4 fois plus éloignée de la paire binaire que les unes des autres, vous pouvez à nouveau traiter cela comme un problème à 2 corps où la planète tourne autour du centre de masse des deux. étoiles

  3. Vous pourriez également avoir des planètes en orbite autour des points Lagrange L4 et L5 du système binaire . Je n'ai vu que des discussions à ce sujet dans des contextes de science-fiction - je pense que seuls les corps de la taille d'un astéroïde sont connus pour occuper les points de planètes de Lagrange dans notre système solaire, bien qu'ils puissent être utiles pour les vaisseaux spatiaux. Techniquement, l' une des étoiles doit être beaucoup plus grande que l'autre pour que ces points soient stables , mais c'est à vous de décider à quel point vous voulez laisser la vraie physique entraver la configuration de votre jeu.

Jimmy
la source
1
Les systèmes à trois corps ont des solutions périodiques connues qui peuvent être codées en dur et choisies au hasard en.wikipedia.org/wiki/Three-body_problem#Periodic_solutions
Nakilon
1
@Nakilon La question demandait cependant des systèmes d'étoiles planétaires plausibles . L'une des solutions connues au problème des 3 corps avec des masses non négligeables est pratiquement impossible à produire naturellement. Ils peuvent cependant se produire dans un jeu mettant en vedette des extraterrestres suffisamment avancés qui aiment faire de l' ingénierie astucieuse .
Philipp
0

Il s'agit d'un long commentaire pour compléter les réponses existantes.

Avec suffisamment de temps, un système planétaire devient principalement planaire. Vous pouvez aussi bien simplifier votre simulation en la définissant comme étant planaire dès le départ. Ensuite, vous pouvez faire le reste avec l' équation de Binet , du moins si vous utilisez la simplification à 2 corps suggérée par Jimmy. Si vous négligez la relativité générale, la solution est analytique; sinon, vous aurez besoin de quelque chose comme Runge-Kutta.

JG
la source