OpenGL Tutorial (Version 3.3) – Sonnensystem-Simulation Teil 1 (Download)

Unser heutiges OpenGL-Programmbeispiel ist der Auftakt zu einer kleinen Serie, die sich mit der Gestaltung und Darstellung von dynamischen Sonnensystemen befasst. Alle Parameter, die für die Darstellung und Simulation der Planeten, Monde und Asteroiden benötigt werden, finden Sie in der Datei SimpleSolarSystem.txt:






BrightnessFactorSun: 3000.0
SunMass: 100000.0
SunScale: 1000.0
SunTexture: Sun.bmp
LightColor: 1.0, 1.0, 1.0, 1.0

TimeFactorPlanetMovement: 25.0
TimeFactorLunarMovement: 100.0
TimeFactorSolarAsteroidMovement: 25.0
TimeFactorPlanetaryRingAsteroidMovement: 100.0

SimulationStepsPlanetMovement: 1
SimulationStepsLunarMovement: 2

SimulationStepsSolarAsteroidMovement: 1
SimulationStepsPlanetaryRingAsteroidMovement: 2

NumPlanets: 2

Planet1:

. . .

Planet2:

Atmosphere(no=0/yes=1): 1
Clouds(no=0/yes=1): 1
Rings(no=0/yes=1): 1

Textures:
GreenAtmosphere.png
WhiteClouds.png
PlanetRings.png
SurfaceDetails.png
Planet1.png
Planet1Specular.png
Planet1Height.png
HeightMapScaleFactor: 0.005

PlanetScale: 200.0
CloudScale: 205.0
AtmosphereScale: 210.0
PlanetRingWidth: 0.5
RingScale: 700.0

PlanetRotationVelocity: 0.1

CloudRotationVelocity: 0.1
CloudInvDensityValues: 1.0, 1.0, 1.0, 0.425

Mass: 10000.0

InitialWorldSpacePosition: 0.0, 0.0, 5300.0

Bahngeschwindigkeit_SimulationStart: 4.4
Bahnneigung(Inklination)_SimulationStart[°]: 0.0
AxialTilt[°]: 10.0
AxialTiltRotationAxis: 1.0, 0.0, 0.0


NumMoons: 2

Moon1:

. . .

Moon2:

IDOfBelongingPlanet: 1

Atmosphere(no=0/yes=1): 0
Clouds(no=0/yes=1): 0

Textures:
SurfaceDetails.png
Planet2.png
Planet2Specular.png
Planet2Height.png
HeightMapScaleFactor: 0.005

MoonScale: 100.0

MoonRotationVelocity: 0.1

Mass: 1000.0

InitialOrbitalPosition: 0.0, 0.0, 1000.0

Bahngeschwindigkeit_SimulationStart: 3.18

Bahnneigung_PlanetenAbhängig(no=0/yes=1): 1
Bahnneigung(Inklination)_SimulationStart[°]: 0.0
AxialTilt[°]: 20.0
AxialTiltRotationAxis: 1.0, 0.0, 0.0


NumSolarAsteroids: 1

Asteroid1:

Model: Asteroid1.txt
NumLODSteps: 2

Textures:
Asteroid1.png
Asteroid1Height.png
HeightMapScaleFactor: 0.005

Scale: 100.0, 100.0, 100.0

Mass: 20.0
RotationVelocity: 2.0

InitialWorldSpacePosition: -1500.0, 0.0, 0.0

Bahngeschwindigkeit_SimulationStart: 7.08
Bahnneigung(Inklination)_SimulationStart[°]: 0.0
AxialTilt[°]: -30.0
AxialTiltRotationAxis: 1.0, 0.0, 0.0


NumPlanetaryRingAsteroids: 1

Asteroid1:

IDOfBelongingPlanet: 1

Model: Asteroid1.txt
NumLODSteps: 2

Textures:
Asteroid1.png
Asteroid1Height.png
HeightMapScaleFactor: 0.005

Scale: 50.0, 50.0, 50.0

Mass: 10.0
RotationVelocity: 2.0

InitialWorldSpacePosition: -600.0, 0.0, 0.0

Bahngeschwindigkeit_SimulationStart: 4.0

Bahnneigung_PlanetenAbhängig(no=0/yes=1): 1
Bahnneigung(Inklination)_SimulationStart[°]: 0.0
AxialTilt[°]: 30.0
AxialTiltRotationAxis: 1.0, 0.0, 0.0

Hinweise:
  • Optionale Parameter für die Atmosphären-Darstellung sind rot markiert und müssen weggelassen werden, falls der Planet oder Mond keine Atmosphäre besitzt.
  • Optionale Parameter für die Wolken-Darstellung sind grün markiert und müssen weggelassen werden, falls der Planet oder Mond keine Wolkendecke besitzt.
  • Optionale Parameter für die Ring-Darstellung sind grau markiert und müssen weggelassen werden, falls der Planet keine Ringe besitzt.

Hinweis:
Für die Ausführung dieses Programmbeispiels muss der Treiber Ihrer Grafikkarte die OpenGL Version 3.3 unterstützen.

Visual C++ 2010: DemoWithOpenGL2010_Tut23


Interessante Artikel