OpenGL Tutorial (Version 3.3) – Lens Flares, City Lights auf der Planeten-Nachtseite und Asteroidengürtel – Sonnensystem-Simulation Teil 2 (Download)

Im zweiten Teil unserer kleinen Serie über die Gestaltung und Darstellung von dynamischen Sonnensystemen erweitern wir unser Programmbeispiel wie folgt:









  • Zum einen lässt sich nunmehr eine beliebige Anzahl von Asteroidengürteln definieren. Die zugehörigen Asteroiden umkreisen entweder die Sonne (solare Asteroidengürtel) oder einen Planeten (planetare Asteroidengürtel).
  • Des Weiteren können Großstadtlichter via Light Mapping auf der Nachtseite von bewohnbaren Planeten oder Monden dargestellt werden, sofern die Städte nicht durch Wolken bedeckt sind.
  • Darstellung von Linsenreflektionen (Lens Flares), sofern die Sonne weder durch Planeten, Monde oder Asteroiden verdeckt ist.

Alle Parameter, die für die Darstellung und Simulation unseres Sonnensystems benötigt werden, finden Sie wie gehabt in der Datei SimpleSolarSystem.txt. Durch die neuen Darstellungselemente sind folgende Erweiterungen notwendig:








Darstellung der Lens Flares:

BrightnessFactorSun: 4000.0
SunMass: 100000.0
SunScale: 1000.0
SunLightScale: 1200.0
SunTexture: Sun.bmp
SunLightTexture: SunLight3.bmp
LightColor: 1.0, 1.0, 1.0, 1.0
LensFlareDescription: LensFlares.txt
SunLightScaleFactorX: 1000.0
SunLightScaleFactorY: 1000.0
SunLensFlareScaleFactor: 50.0
SunLensFlareIntensityDecrease: 0.00001


Großstadtlichter via Light Mapping:

Planet1:

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

Textures:
CityLights.png
Rest wie gehabt!

Moon1:

IDOfBelongingPlanet: 0

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

Textures:
CityLights.png
Rest wie gehabt!


solare Asteroidengürtel:

NumSolarAsteroidBelts: 1

Belt1:

NumAsteroids: 100

MeanSolarDistance: 1500.0
HalfDiamenter: 100.0
MeanOrbitalInclination[°]: 10.0
OrbitalInclinationVariance[°]: 20.0
OrbitalInclinationAxis: 0.0, 0.0, 1.0

NumOfPossibleModels: 1

Model: Asteroid1.txt
NumLODSteps: 2

NumOfPossibleTextures: 1

Asteroid1.png
Asteroid1Height.png
HeightMapScaleFactor: 0.005

Asteroid_MinMass: 20.0
Asteroid_MaxMass: 20.0
Asteroid_MinScaleFactor: 20.0
Asteroid_MaxScaleFactor: 50.0
Asteroid_MinOrbitalVelocity: 7.08
Asteroid_MaxOrbitalVelocity: 7.08
Asteroid_MinRotationVelocity: 0.5
Asteroid_MaxRotationVelocity: 0.5


planetare Asteroidengürtel:

NumPlanetaryRingAsteroidBelts: 1

Belt1:

NumAsteroids: 100

IDOfBelongingPlanet: 1

MeanPlanetaryDistance: 600.0
HalfDiamenter: 50.0

NumOfPossibleModels: 1

Model: Asteroid1.txt
NumLODSteps: 2

NumOfPossibleTextures: 1

Asteroid1.png
Asteroid1Height.png
HeightMapScaleFactor: 0.005

Asteroid_MinMass: 10.0
Asteroid_MaxMass: 10.0
Asteroid_MinScaleFactor: 10.0
Asteroid_MaxScaleFactor: 20.0
Asteroid_MinOrbitalVelocity: 4.0
Asteroid_MaxOrbitalVelocity: 4.0
Asteroid_MinRotationVelocity: 0.5
Asteroid_MaxRotationVelocity: 0.5


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

Visual C++ 2010: DemoWithOpenGL2010_Tut24


Interessante Artikel