So i know there's threads like Alpha Aquilae's- i mean Altair's that go surface-level already, but since there's some confusion about the individual parameters in the planet data files, i'm gonna try explaining it here. Feel free to move the thread if appropiate, i based the placement on the aformentioned linked thread.
I've helped someone with this before in private, so for the sake of public access, here's my attempt at describing what the parameters are and what i do with then.
Some notes:
- I'm going to avoid talking about the texture data section. The atmosphere one is already a bit repetitive by itself so the texture one is only going to complicate things.
- Most of the atmospheric knowledge comes from Altair himself, especially from this thread.
Radius - The same as real life, but at a 1:20 scale. Unit used is meters.
Surface gravity - Same as real life. Unit used is m/s². You can derive that from CGS by calculating like so: (10^cgs)/100.
Color (Map) - Self-explanatory. Units are RGBA 0-1.
Atmospheric parameters - This is where it gets really complicated.
- Height: The height of the atmosphere in meters. For ACSS 2's 1-4-20 scaling (1=Stock 1:20, 20=RSS) for Normal, Hard, and Realistic, i use height scales of 5-4-20, but its mainly up to you to decide.
- Density: Uses real-world values (Times about 0.41 for consistency with stock SFS. Don't ask why.). This is NOT the same as atmospheric pressure! Density can be converted from pressure using the ideal gas law:
ρ = (P×M)/(R×T)
- ρ (Rho) = Density (g/m³)
- P = Atmospheric pressure (Pascals)
- M = Molar mass of the atmosphere (g/mol)
- R = Ideal gas constant (8.31446261815324 J•K•mol, or more exactly, the Avogadro constant times the Boltzmann constant)
Unit used is tons per cubic meter.
- Curve: This one requires a few assumptions... AND a few adjustments depending on scale. Its the annoying one of the bunch.
Lets assume that, for simplicity sake, the temperature remains constant with altitude (it does not!). You get this equation:
curve = M×g×h/(R×T)
- M = Molar mass of the atmosphere (but in kg/mol this time)
- g = Surface gravity of the planet. You may see more technical SFS players such as Altaïr use "gravitational constant" instead, even though i disagree with its usage due to a misnomer issue.
- h = Height of the atmosphere (meters)
- R = Ideal gas constant (see Density)
- T = Temperature (K)
This allows us to set a value used in-game. Or you can just use height/scale_height.
- Upper Atmosphere (upperAtmosphere): This one is purely cosmetic as it tells the game where to place "reached Upper atmosphere of [body]" achievements. I use the 1/10th base density mark as that point, which can be found by this equation:
h = Ln(10) × (H / curve)
- h = upperAtmosphere in meters
- H = height of the atmosphere in meters
- Ln(10) = Natural logarithm of 10 (about 2.302585093)
Then you divide that by H as defined above. That's your unit.
- parachuteMultiplier: That's where you can open your parachute basically. You calculate the height in meters the same way you did in upperAtmosphere, but divide that by 2500 meters instead of the height of the atmosphere.
Terrain height - The format is as follows:
AddHeightMap([Heightmap file name, with extension, eg. heightmap.txt or heightmap.png], Ω, h)
- Ω = 2πR / L
- R = Radius of the planet.
- L = How many times do you need the heightmap to repeat until it loops around the planet. I recommend using a whole number to avoid seams.
- h = Height of the displacement, in meters.
Orbital parameters - The second simplest part.
- semiMajorAxis: In meters, same as real life at a 1:20 scale (in stock SFS). I think we all know what SMA is.
- eccentricity: How elongated your orbit is. Its a dimension-less value from 0 to 1; you can go hyperbolic (>1), but while the physics for the object do work, its orbit doesn't render at all.
- argumentOfPeriapsis: Where your orbit will be oriented. Goes from 0 to 360 degrees.
- direction: Its a boolean value determing whether your orbit is prograde (1) or retrograde (-1).
I'm open to any corrections and help on this part too!
I've helped someone with this before in private, so for the sake of public access, here's my attempt at describing what the parameters are and what i do with then.
Some notes:
- I'm going to avoid talking about the texture data section. The atmosphere one is already a bit repetitive by itself so the texture one is only going to complicate things.
- Most of the atmospheric knowledge comes from Altair himself, especially from this thread.
Radius - The same as real life, but at a 1:20 scale. Unit used is meters.
Surface gravity - Same as real life. Unit used is m/s². You can derive that from CGS by calculating like so: (10^cgs)/100.
Color (Map) - Self-explanatory. Units are RGBA 0-1.
Atmospheric parameters - This is where it gets really complicated.
- Height: The height of the atmosphere in meters. For ACSS 2's 1-4-20 scaling (1=Stock 1:20, 20=RSS) for Normal, Hard, and Realistic, i use height scales of 5-4-20, but its mainly up to you to decide.
- Density: Uses real-world values (Times about 0.41 for consistency with stock SFS. Don't ask why.). This is NOT the same as atmospheric pressure! Density can be converted from pressure using the ideal gas law:
ρ = (P×M)/(R×T)
- ρ (Rho) = Density (g/m³)
- P = Atmospheric pressure (Pascals)
- M = Molar mass of the atmosphere (g/mol)
- R = Ideal gas constant (8.31446261815324 J•K•mol, or more exactly, the Avogadro constant times the Boltzmann constant)
Unit used is tons per cubic meter.
- Curve: This one requires a few assumptions... AND a few adjustments depending on scale. Its the annoying one of the bunch.
Lets assume that, for simplicity sake, the temperature remains constant with altitude (it does not!). You get this equation:
curve = M×g×h/(R×T)
- M = Molar mass of the atmosphere (but in kg/mol this time)
- g = Surface gravity of the planet. You may see more technical SFS players such as Altaïr use "gravitational constant" instead, even though i disagree with its usage due to a misnomer issue.
- h = Height of the atmosphere (meters)
- R = Ideal gas constant (see Density)
- T = Temperature (K)
This allows us to set a value used in-game. Or you can just use height/scale_height.
- Upper Atmosphere (upperAtmosphere): This one is purely cosmetic as it tells the game where to place "reached Upper atmosphere of [body]" achievements. I use the 1/10th base density mark as that point, which can be found by this equation:
h = Ln(10) × (H / curve)
- h = upperAtmosphere in meters
- H = height of the atmosphere in meters
- Ln(10) = Natural logarithm of 10 (about 2.302585093)
Then you divide that by H as defined above. That's your unit.
- parachuteMultiplier: That's where you can open your parachute basically. You calculate the height in meters the same way you did in upperAtmosphere, but divide that by 2500 meters instead of the height of the atmosphere.
Terrain height - The format is as follows:
AddHeightMap([Heightmap file name, with extension, eg. heightmap.txt or heightmap.png], Ω, h)
- Ω = 2πR / L
- R = Radius of the planet.
- L = How many times do you need the heightmap to repeat until it loops around the planet. I recommend using a whole number to avoid seams.
- h = Height of the displacement, in meters.
Orbital parameters - The second simplest part.
- semiMajorAxis: In meters, same as real life at a 1:20 scale (in stock SFS). I think we all know what SMA is.
- eccentricity: How elongated your orbit is. Its a dimension-less value from 0 to 1; you can go hyperbolic (>1), but while the physics for the object do work, its orbit doesn't render at all.
- argumentOfPeriapsis: Where your orbit will be oriented. Goes from 0 to 360 degrees.
- direction: Its a boolean value determing whether your orbit is prograde (1) or retrograde (-1).
I'm open to any corrections and help on this part too!
Last edited by a moderator: