Added lighting done by moon
This commit is contained in:
parent
3786b21e15
commit
0e837f00c6
3 changed files with 21 additions and 1 deletions
|
@ -171,7 +171,8 @@ SoftwareBrunetonAtmosphereRenderer::~SoftwareBrunetonAtmosphereRenderer()
|
|||
|
||||
void SoftwareBrunetonAtmosphereRenderer::getLightingStatus(LightStatus* status, Vector3 normal, int opaque)
|
||||
{
|
||||
return model->fillLightingStatus(status, normal, opaque);
|
||||
model->fillLightingStatus(status, normal, opaque);
|
||||
parent->getNightSky()->fillLightingStatus(status, normal, opaque);
|
||||
}
|
||||
|
||||
AtmosphereResult SoftwareBrunetonAtmosphereRenderer::applyAerialPerspective(Vector3 location, Color base)
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
#include "Scenery.h"
|
||||
#include "AtmosphereDefinition.h"
|
||||
#include "SurfaceMaterial.h"
|
||||
#include "LightComponent.h"
|
||||
#include "LightStatus.h"
|
||||
|
||||
#define WORLD_SCALING 0.05
|
||||
#define MOON_DISTANCE 384403.0
|
||||
|
@ -86,3 +88,18 @@ const Color NightSky::getColor(double altitude, const Vector3 &direction)
|
|||
return result;
|
||||
|
||||
}
|
||||
|
||||
void NightSky::fillLightingStatus(LightStatus *status, const Vector3 &, int)
|
||||
{
|
||||
LightComponent moon;
|
||||
|
||||
AtmosphereDefinition* atmosphere = renderer->getScenery()->getAtmosphere();
|
||||
VectorSpherical moon_location_s = {MOON_DISTANCE_SCALED, atmosphere->moon_theta, -atmosphere->moon_phi};
|
||||
|
||||
moon.color = Color(0.03, 0.03, 0.03); // TODO take moon phase into account
|
||||
moon.direction = Vector3(moon_location_s).normalize().scale(-1.0);
|
||||
moon.reflection = 0.2;
|
||||
moon.altered = 1;
|
||||
|
||||
status->pushComponent(moon);
|
||||
}
|
||||
|
|
|
@ -26,6 +26,8 @@ public:
|
|||
*/
|
||||
virtual const Color getColor(double altitude, const Vector3 &direction);
|
||||
|
||||
virtual void fillLightingStatus(LightStatus *status, const Vector3 &normal, int opaque);
|
||||
|
||||
private:
|
||||
SoftwareRenderer* renderer;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue