Skip to content
Implementation

Planète rocheuse

Corps tellurique à terrain procédural FBM. Le relief est quantifié en bandes entières par initBodySimulation ; les cratères, les fissures et la lave sont des couches visuelles indépendantes pilotées par les flags hasCracks / hasLava et les paramètres shader.

Comportement

La lib est agnostique du climat : elle ne lit aucun champ de température et ne dérive ni couleur ni phase à partir d'un modèle thermique. Tout ce qui dépend du climat (couleur de surface, présence d'un océan, lave) est résolu côté caller et poussé dans BodyConfig :

  • présence d'un océan → liquidState !== 'none'
  • couleur du liquide → liquidColor (votre catalogue substance → couleur)
  • couleur de surface → terrainColorLow / terrainColorHigh (ancres de la rampe)
  • effets visuels → flags hasLava / hasCracks + intensités passées via BodyVariation

atmosphereThickness règle l'épaisseur radiale du shell atmo, atmosphereOpacity son opacité en mode shader.

BodyConfig

PropTypeDescription
type'planetary'Discriminant obligatoire
surfaceLook'terrain'Famille de rendu — terrain hex à relief
namestringSeed déterministe — même nom = même planète
radiusnumberRayon de la silhouette totale (sol + atmo, unités monde)
liquidState'liquid' | 'frozen' | 'none'État physique du liquide de surface (défaut 'none')
liquidCoveragenumber 0–1Fraction initiale de tuiles immergées (défaut 0.5)
liquidColorColorInputCouleur opaque du liquide — requise si liquidState !== 'none'
atmosphereThicknessnumber 0–1Fraction radiale de radius occupée par l'atmo — sol = radius × (1 - thickness)
atmosphereOpacitynumber 0–1Opacité de l'atmo en vue shader
coreRadiusRationumber 0–1Rayon du noyau interne (override)
massnumberMasse en M⊕ — métadonnée
hasCracksbooleanActive le réseau de fissures
hasLavabooleanActive la lave dans les bandes basses
hasRingsbooleanAjoute un anneau visuel
terrainColorLow / terrainColorHighColorInputAncres de la rampe terrain par défaut

Paramètres shader

Groupés par section du panneau de contrôle. Tous sont mis à jour en temps réel via planetMaterial.setParams().

Terrain

ParamètrePlageDéfautDescription
seed0 – 100042Graine du bruit procédural
noiseFreq0.5 – 2.01.0Fréquence du bruit FBM
roughness0 – 10.7Rugosité de la surface
heightScale0 – 10.6Amplitude du relief
craterDensity1.0 – 1.51.2Densité spatiale des cratères
craterCount0 – 95Nombre de cratères

Couleurs

ParamètreTypeDéfaut
colorAcouleur#5c3d2e — teinte foncée
colorBcouleur#b08060 — teinte claire

Fissures

ParamètrePlageDéfautDescription
crackAmount0.50 – 1.000.50Intensité du réseau de fissures
crackScale1.0 – 4.02.0Échelle spatiale des fissures
crackWidth0.10 – 0.500.20Largeur des fissures
crackDepth0.50 – 1.000.70Profondeur visuelle
crackColorcouleur#1a0f08Couleur de remplissage
crackBlendselectMixMode de fusion

Lave

ParamètrePlageDéfautDescription
lavaAmount0 – 10.0Quantité de lave dans les fissures
lavaColorcouleur#ff3300Couleur de la lave
lavaEmissive0 – 31.5Intensité d'émission lumineuse

Vagues (liquide)

ParamètrePlageDéfautDescription
waveAmount0 – 10.0Intensité de la couche liquide
waveColorcouleur#d0d8e8Couleur du liquide
waveScale0.5 – 2.51.2Échelle des vagues

Distribué sous la licence indiquée dans le dépôt.