diff --git a/DynObj.cpp b/DynObj.cpp
index 18784aeb..6e49fb7d 100644
--- a/DynObj.cpp
+++ b/DynObj.cpp
@@ -3807,26 +3807,9 @@ void TDynamicObject::Render()
}
else
{ // wersja Display Lists
- if( mdLowPolyInt ) {
- // low poly interior
- if( FreeFlyModeFlag ? true : !mdKabina || !bDisplayCab ) {
- // enable cab light if needed
- if( InteriorLightLevel > 0.0f ) {
-
- // crude way to light the cabin, until we have something more complete in place
- auto const cablight = InteriorLight * InteriorLightLevel;
- ::glLightModelfv( GL_LIGHT_MODEL_AMBIENT, &cablight.x );
- }
-
- mdLowPolyInt->Render( ObjSqrDist, ReplacableSkinID, iAlpha );
-
- if( InteriorLightLevel > 0.0f ) {
- // reset the overall ambient
- GLfloat ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
- ::glLightModelfv( GL_LIGHT_MODEL_AMBIENT, ambient );
- }
- }
- }
+ if (mdLowPolyInt)
+ if (FreeFlyModeFlag ? true : !mdKabina || !bDisplayCab)
+ mdLowPolyInt->Render(ObjSqrDist, ReplacableSkinID, iAlpha);
mdModel->Render(ObjSqrDist, ReplacableSkinID, iAlpha);
if (mdLoad) // renderowanie nieprzezroczystego ładunku
mdLoad->Render(ObjSqrDist, ReplacableSkinID, iAlpha);
diff --git a/DynObj.h b/DynObj.h
index 2c675cc0..bda873a7 100644
--- a/DynObj.h
+++ b/DynObj.h
@@ -140,10 +140,11 @@ class TAnim
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
-class TDynamicObject { // klasa pojazdu
-private: // położenie pojazdu w świecie oraz parametry ruchu
+class TDynamicObject
+{ // klasa pojazdu
+ private: // położenie pojazdu w świecie oraz parametry ruchu
vector3 vPosition; // Ra: pozycja pojazdu liczona zaraz po przesunięciu
- vector3 vCoulpler[ 2 ]; // współrzędne sprzęgów do liczenia zderzeń czołowych
+ vector3 vCoulpler[2]; // współrzędne sprzęgów do liczenia zderzeń czołowych
vector3 vUp, vFront, vLeft; // wektory jednostkowe ustawienia pojazdu
int iDirection; // kierunek pojazdu względem czoła składu (1=zgodny,0=przeciwny)
TTrackShape ts; // parametry toru przekazywane do fizyki
@@ -155,10 +156,10 @@ private: // położenie pojazdu w świecie oraz parametry ruchu
float fAxleDist; // rozstaw wózków albo osi do liczenia proporcji zacienienia
vector3 modelRot; // obrot pudła względem świata - do przeanalizowania, czy potrzebne!!!
// bool bCameraNear; //blisko kamer są potrzebne dodatkowe obliczenia szczegółów
- TDynamicObject * ABuFindNearestObject( TTrack *Track, TDynamicObject *MyPointer,
- int &CouplNr );
+ TDynamicObject * ABuFindNearestObject(TTrack *Track, TDynamicObject *MyPointer,
+ int &CouplNr);
-public: // parametry położenia pojazdu dostępne publicznie
+ public: // parametry położenia pojazdu dostępne publicznie
std::string asTrack; // nazwa toru początkowego; wywalić?
std::string asDestination; // dokąd pojazd ma być kierowany "(stacja):(tor)"
matrix4x4 mMatrix; // macierz przekształcenia do renderowania modeli
@@ -174,14 +175,12 @@ public: // parametry położenia pojazdu dostępne publicznie
private:
// returns type of the nearest functional power source present in the trainset
-public: // modele składowe pojazdu
+ public: // modele składowe pojazdu
TModel3d *mdModel; // model pudła
TModel3d *mdLoad; // model zmiennego ładunku
TModel3d *mdPrzedsionek; // model przedsionków dla EZT - może użyć mdLoad zamiast?
TModel3d *mdKabina; // model kabiny dla użytkownika; McZapkie-030303: to z train.h
TModel3d *mdLowPolyInt; // ABu 010305: wnetrze lowpoly
- float3 InteriorLight{ 0.9f * 255.0f / 255.0f, 0.9f * 216.0f / 255.0f, 0.9f * 176.0f / 255.0f }; // tungsten light. TODO: allow definition of light type?
- float InteriorLightLevel{ 0.0f }; // current level of interior lighting
float fShade; // zacienienie: 0:normalnie, -1:w ciemności, +1:dodatkowe światło (brak koloru?)
private: // zmienne i metody do animacji submodeli; Ra: sprzatam animacje w pojeździe
diff --git a/Globals.cpp b/Globals.cpp
index 3e68f5e7..8285f434 100644
--- a/Globals.cpp
+++ b/Globals.cpp
@@ -47,7 +47,6 @@ double Global::fOpenGL = 0.0; // wersja OpenGL - do sprawdzania obecności rozsz
bool Global::bOpenGL_1_5 = false; // czy są dostępne funkcje OpenGL 1.5
*/
double Global::fLuminance = 1.0; // jasność światła do automatycznego zapalania
-float Global::SunAngle = 0.0f;
int Global::iReCompile = 0; // zwiększany, gdy trzeba odświeżyć siatki
HWND Global::hWnd = NULL; // uchwyt okna
int Global::ScreenWidth = 1;
diff --git a/Globals.h b/Globals.h
index c46932e1..a9ca3c85 100644
--- a/Globals.h
+++ b/Globals.h
@@ -258,7 +258,6 @@ class Global
static bool bOpenGL_1_5; // czy są dostępne funkcje OpenGL 1.5
*/
static double fLuminance; // jasność światła do automatycznego zapalania
- static float SunAngle; // angle of the sun relative to horizon
static int iMultiplayer; // blokada działania niektórych eventów na rzecz kominikacji
static HWND hWnd; // uchwyt okna
static int ScreenWidth; // current window dimensions. TODO: move it to renderer
diff --git a/Model3d.cpp b/Model3d.cpp
index 3ac52358..eb55533d 100644
--- a/Model3d.cpp
+++ b/Model3d.cpp
@@ -742,7 +742,7 @@ void TSubModel::DisplayLists()
glNewList(uiDisplayList, GL_COMPILE);
GfxRenderer.Bind(0); // tekstury nie ma
glColorMaterial(GL_FRONT, GL_EMISSION);
-// glDisable(GL_LIGHTING); // Tolaris-030603: bo mu punkty swiecace sie blendowaly
+ glDisable(GL_LIGHTING); // Tolaris-030603: bo mu punkty swiecace sie blendowaly
glBegin(GL_POINTS);
for (int i = 0; i < iNumVerts; i++)
{
@@ -751,7 +751,7 @@ void TSubModel::DisplayLists()
glVertex3fv(&Vertices[i].Point.x);
};
glEnd();
-// glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHTING);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
glMaterialfv(GL_FRONT, GL_EMISSION, emm2);
glEndList();
@@ -816,13 +816,10 @@ void TSubModel::InitialRotate(bool doit)
Vertices[i].Point.y = Vertices[i].Point.z;
Vertices[i].Point.z = t;
// wektory normalne również trzeba przekształcić, bo się źle oświetlają
- if( eType != TP_STARS ) {
- // gwiazdki mają kolory zamiast normalnych, to // ich wtedy nie ruszamy
- Vertices[ i ].Normal.x = -Vertices[ i ].Normal.x; // zmiana znaku X
- t = Vertices[ i ].Normal.y; // zamiana Y i Z
- Vertices[ i ].Normal.y = Vertices[ i ].Normal.z;
- Vertices[ i ].Normal.z = t;
- }
+ Vertices[i].Normal.x = -Vertices[i].Normal.x; // zmiana znaku X
+ t = Vertices[i].Normal.y; // zamiana Y i Z
+ Vertices[i].Normal.y = Vertices[i].Normal.z;
+ Vertices[i].Normal.z = t;
}
if (Child)
Child->InitialRotate(doit); // potomne ewentualnie obrócimy
diff --git a/Train.cpp b/Train.cpp
index ce35b35c..66599599 100644
--- a/Train.cpp
+++ b/Train.cpp
@@ -5001,40 +5001,6 @@ bool TTrain::Update( double const Deltatime )
btHaslerBrakes.Turn(DynamicObject->MoverParameters->BrakePress > 0.4); // ciśnienie w cylindrach
btHaslerCurrent.Turn(DynamicObject->MoverParameters->Im != 0.0); // prąd na silnikach
- // calculate current level of interior illumination
- // TODO: organize it along with rest of train update in a more sensible arrangement
- switch( iCabLightFlag ) // Ra: uzeleżnic od napięcia w obwodzie sterowania
- { // hunter-091012: uzaleznienie jasnosci od przetwornicy
- case 0: {
- //światło wewnętrzne zgaszone
- DynamicObject->InteriorLightLevel = 0.0f;
- break;
- }
- case 1: {
- //światło wewnętrzne przygaszone (255 216 176)
- if( mvOccupied->ConverterFlag == true ) {
- // jasnosc dla zalaczonej przetwornicy
- DynamicObject->InteriorLightLevel = 0.75f;
- }
- else {
- DynamicObject->InteriorLightLevel = 0.375f;
- }
- break;
- }
- case 2: {
- //światło wewnętrzne zapalone (255 216 176)
- if( mvOccupied->ConverterFlag ==
- true ) // jasnosc dla zalaczonej przetwornicy
- {
- DynamicObject->InteriorLightLevel = 1.0f;
- }
- else {
- DynamicObject->InteriorLightLevel = 0.5f;
- }
- break;
- }
- }
-
m_updated = true;
return true; //(DynamicObject->Update(dt));
} // koniec update
diff --git a/World.cpp b/World.cpp
index e216d765..025857b8 100644
--- a/World.cpp
+++ b/World.cpp
@@ -590,7 +590,8 @@ bool TWorld::Init(HWND NhWnd, HDC hDC)
Ground.Init(Global::SceneryFile, hDC);
// Global::tSinceStart= 0;
- Environment.init();
+ Sun.init();
+ Clouds.Init();
WriteLog("Ground init OK");
if (Global::detonatoryOK)
{
@@ -1194,7 +1195,7 @@ bool TWorld::Update()
Global::fClockAngleDeg[4] = 36.0 * (GlobalTime->hh % 10); // jednostki godzin
Global::fClockAngleDeg[5] = 36.0 * (GlobalTime->hh / 10); // dziesiątki godzin
- Update_Environment();
+ Update_Lights();
} // koniec działań niewykonywanych podczas pauzy
// poprzednie jakoś tam działało
double dt = Timer::GetDeltaRenderTime(); // nie uwzględnia pauzowania ani mnożenia czasu
@@ -1432,7 +1433,7 @@ TWorld::Update_Camera( double const Deltatime ) {
}
}
-void TWorld::Update_Environment() {
+void TWorld::Update_Lights() {
#ifdef EU07_USE_OLD_LIGHTING_MODEL
@@ -1531,8 +1532,44 @@ void TWorld::Update_Environment() {
glFogfv( GL_FOG_COLOR, Global::FogColor ); // kolor mgły
}
#else
- Environment.update();
+ Sun.update();
+ auto const position = Sun.getPosition();
+ // update skydome with current sun position
+ SkyDome.Update( position );
+ auto const skydomecolour = SkyDome.GetAverageColor();
+ auto const skydomehsv = RGBtoHSV( skydomecolour );
+ // update sunlight object
+ Global::DayLight.position[0] = position.x;
+ Global::DayLight.position[1] = position.y;
+ Global::DayLight.position[2] = position.z;
+
+ Global::DayLight.direction = -1.0 * Sun.getDirection();
+
+ auto const intensity = std::min( 0.05f + Sun.getIntensity() + skydomehsv.z, 1.25f );
+
+ Global::DayLight.diffuse[ 0 ] = intensity * 255.0f / 255.0f;
+ Global::DayLight.diffuse[ 1 ] = intensity * 242.0f / 255.0f;
+ Global::DayLight.diffuse[ 2 ] = intensity * 231.0f / 255.0f;
+// Global::DayLight.diffuse[ 3 ] = 1.0f;// std::min( 0.15f + intensity, 1.0f );
+ Global::DayLight.ambient[ 0 ] = skydomecolour.x;
+ Global::DayLight.ambient[ 1 ] = skydomecolour.y;
+ Global::DayLight.ambient[ 2 ] = skydomecolour.z;
+/*
+ Global::DayLight.ambient[ 0 ] = 155.0 / 255.0 * intensity * 0.75f;
+ Global::DayLight.ambient[ 1 ] = 192.0 / 255.0 * intensity * 0.75f;
+ Global::DayLight.ambient[ 2 ] = 231.0 / 255.0 * intensity * 0.75f;
+*/
+// Global::DayLight.ambient[ 3 ] = 1.0f;
+
+ Global::fLuminance = intensity;
+
+ Global::FogColor[ 0 ] = skydomecolour.x;
+ Global::FogColor[ 1 ] = skydomecolour.y;
+ Global::FogColor[ 2 ] = skydomecolour.z;
+ glFogfv( GL_FOG_COLOR, Global::FogColor ); // kolor mgły
#endif
+
+ glClearColor( skydomecolour.x, skydomecolour.y, skydomecolour.z, 1.0f ); // kolor nieba
}
bool TWorld::Render()
@@ -1551,9 +1588,31 @@ bool TWorld::Render()
glLoadIdentity();
Camera.SetMatrix(); // ustawienie macierzy kamery względem początku scenerii
- if( !Global::bWireFrame ) {
- // bez nieba w trybie rysowania linii
- Environment.render();
+ if( !Global::bWireFrame ) { // bez nieba w trybie rysowania linii
+
+ glDisable( GL_LIGHTING );
+ glDisable( GL_FOG );
+ glDisable( GL_DEPTH_TEST );
+ glDepthMask( GL_FALSE );
+ glPushMatrix();
+ glTranslatef( Global::pCameraPosition.x, Global::pCameraPosition.y, Global::pCameraPosition.z );
+
+ SkyDome.Render();
+// Clouds.Render();
+
+#ifdef EU07_USE_OLD_LIGHTING_MODEL
+ glLightfv( GL_LIGHT0, GL_POSITION, Global::lightPos );
+#else
+ Sun.render();
+ Global::DayLight.apply_angle();
+ Global::DayLight.apply_intensity();
+#endif
+
+ glPopMatrix();
+ glDepthMask( GL_TRUE );
+ glEnable( GL_DEPTH_TEST );
+ glEnable( GL_FOG );
+ glEnable( GL_LIGHTING );
}
if (Global::bUseVBO)
@@ -1700,7 +1759,7 @@ TWorld::Render_Cab() {
float z = i * i * i * 0.01f;//25/4;
//float C = (36 - i*0.5)*0.005*(1.5 - sqrt(ddl));
float C = ( 36 - i*0.5 )*0.005*sqrt( ( 1 / sqrt( Global::fLuminance + 0.015 ) ) - 1 ) * frontlightstrength;
- glColor4f( C, C, C, 1.0f );// *frontlightstrength );
+ glColor4f( C, C, C, 0.35f );// *frontlightstrength );
glTexCoord2f( 0, 0 ); glVertex3f( -10 / 2 - 2 * i / 4, 6.0 + 0.3*z, 13 + 1.7*z / 3 );
glTexCoord2f( 1, 0 ); glVertex3f( 10 / 2 + 2 * i / 4, 6.0 + 0.3*z, 13 + 1.7*z / 3 );
glTexCoord2f( 1, 1 ); glVertex3f( 10 / 2 + 2 * i / 4, -5.0 - 0.5*z, 13 + 1.7*z / 3 );
@@ -1821,13 +1880,6 @@ TWorld::Render_Cab() {
glLightfv( GL_LIGHT0, GL_AMBIENT, ambientCabLight );
glLightfv( GL_LIGHT0, GL_DIFFUSE, diffuseCabLight );
glLightfv( GL_LIGHT0, GL_SPECULAR, specularCabLight );
-#else
- if( dynamic->InteriorLightLevel > 0.0f ) {
-
- // crude way to light the cabin, until we have something more complete in place
- auto const cablight = dynamic->InteriorLight * dynamic->InteriorLightLevel;
- ::glLightModelfv( GL_LIGHT_MODEL_AMBIENT, &cablight.x );
- }
#endif
if( Global::bUseVBO ) { // renderowanie z użyciem VBO
dynamic->mdKabina->RaRender( 0.0, dynamic->ReplacableSkinID, dynamic->iAlpha );
@@ -1843,12 +1895,6 @@ TWorld::Render_Cab() {
glLightfv( GL_LIGHT0, GL_AMBIENT, Global::ambientDayLight );
glLightfv( GL_LIGHT0, GL_DIFFUSE, Global::diffuseDayLight );
glLightfv( GL_LIGHT0, GL_SPECULAR, Global::specularDayLight );
-#else
- if( dynamic->InteriorLightLevel > 0.0f ) {
- // reset the overall ambient
- GLfloat ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
- ::glLightModelfv( GL_LIGHT_MODEL_AMBIENT, ambient );
- }
#endif
}
glPopMatrix();
@@ -2319,8 +2365,6 @@ TWorld::Render_UI() {
" " +
std::string( "S SEE NEN NWW SW" )
.substr( 1 + 2 * floor( fmod( 8 + ( Camera.Yaw + 0.5 * M_PI_4 ) / M_PI_4, 8 ) ), 2 );
- // current luminance level
- OutText2 = "Light level: " + to_string( Global::fLuminance, 3 );
}
// OutText3= AnsiString(" Online documentation (PL, ENG, DE, soon CZ):
// http://www.eu07.pl");
@@ -3016,81 +3060,3 @@ void TWorld::CabChange(TDynamicObject *old, TDynamicObject *now)
Global::changeDynObj = now; // uruchomienie protezy
};
//---------------------------------------------------------------------------
-
-void
-world_environment::init() {
-
- m_sun.init();
- m_stars.init();
- m_clouds.Init();
-}
-
-void
-world_environment::update() {
-
- // move sun...
- m_sun.update();
- auto const position = m_sun.getPosition();
- // ...update the global data to match new sun state...
- Global::SunAngle = m_sun.getAngle();
- Global::DayLight.position[ 0 ] = position.x;
- Global::DayLight.position[ 1 ] = position.y;
- Global::DayLight.position[ 2 ] = position.z;
- Global::DayLight.direction = -1.0 * m_sun.getDirection();
- // ...update skydome to match the current sun position as well...
- m_skydome.Update( position );
- // ...retrieve current sky colour and brightness...
- auto const skydomecolour = m_skydome.GetAverageColor();
- auto const skydomehsv = RGBtoHSV( skydomecolour );
- auto const intensity = std::min( 0.05f + m_sun.getIntensity() + skydomehsv.z, 1.25f );
- // ...update light colours and intensity.
- // NOTE: intensity combines intensity of the sun and the light reflected by the sky dome
- // it'd be more technically correct to have just the intensity of the sun here,
- // but whether it'd _look_ better is something to be tested
- Global::DayLight.diffuse[ 0 ] = intensity * 255.0f / 255.0f;
- Global::DayLight.diffuse[ 1 ] = intensity * 242.0f / 255.0f;
- Global::DayLight.diffuse[ 2 ] = intensity * 231.0f / 255.0f;
-
- Global::DayLight.ambient[ 0 ] = skydomecolour.x;
- Global::DayLight.ambient[ 1 ] = skydomecolour.y;
- Global::DayLight.ambient[ 2 ] = skydomecolour.z;
-
- Global::fLuminance = intensity;
-
- // update the fog. setting it to match the average colour of the sky dome is cheap
- // but quite effective way to make the distant items blend with background better
- Global::FogColor[ 0 ] = skydomecolour.x;
- Global::FogColor[ 1 ] = skydomecolour.y;
- Global::FogColor[ 2 ] = skydomecolour.z;
- ::glFogfv( GL_FOG_COLOR, Global::FogColor ); // kolor mgły
-
- ::glClearColor( skydomecolour.x, skydomecolour.y, skydomecolour.z, 1.0f ); // kolor nieba
-}
-
-void
-world_environment::render() {
-
- ::glDisable( GL_LIGHTING );
- ::glDisable( GL_FOG );
- ::glDisable( GL_DEPTH_TEST );
- ::glDepthMask( GL_FALSE );
- ::glPushMatrix();
- ::glTranslatef( Global::pCameraPosition.x, Global::pCameraPosition.y, Global::pCameraPosition.z );
-
- m_skydome.Render();
- m_stars.render();
-// m_clouds.Render();
-
- if( DebugModeFlag == true ) {
- // mark sun position for easier debugging
- m_sun.render();
- }
- Global::DayLight.apply_angle();
- Global::DayLight.apply_intensity();
-
- ::glPopMatrix();
- ::glDepthMask( GL_TRUE );
- ::glEnable( GL_DEPTH_TEST );
- ::glEnable( GL_FOG );
- ::glEnable( GL_LIGHTING );
-}
diff --git a/World.h b/World.h
index eb5f3dde..7a409460 100644
--- a/World.h
+++ b/World.h
@@ -14,25 +14,9 @@ http://mozilla.org/MPL/2.0/.
#include "Ground.h"
#include "sky.h"
#include "sun.h"
-#include "stars.h"
#include "skydome.h"
#include "mczapkie/mover.h"
-// wrapper for environment elements -- sky, sun, stars, clouds etc
-class world_environment {
-
-public:
- void init();
- void update();
- void render();
-
-private:
- CSkyDome m_skydome;
- cStars m_stars;
- cSun m_sun;
- TSky m_clouds;
-};
-
class TWorld
{
void InOutKey();
@@ -58,19 +42,21 @@ class TWorld
std::string OutText2;
std::string OutText3;
std::string OutText4;
- void Update_Environment();
+ void Update_Lights();
void Update_Camera( const double Deltatime );
bool Render();
void Render_Cab();
void Render_UI();
TCamera Camera;
TGround Ground;
- world_environment Environment;
TTrain *Train;
TDynamicObject *pDynamicNearest;
bool Paused;
GLuint base; // numer DL dla znaków w napisach
texture_manager::size_type light; // numer tekstury dla smugi
+ TSky Clouds;
+ CSkyDome SkyDome;
+ cSun Sun;
TEvent *KeyEvents[10]; // eventy wyzwalane z klawiaury
TMoverParameters *mvControlled; // wskaźnik na człon silnikowy, do wyświetlania jego parametrów
int iCheckFPS; // kiedy znów sprawdzić FPS, żeby wyłączać optymalizacji od razu do zera
@@ -86,6 +72,5 @@ class TWorld
void CreateE3D(std::string const &dir = "", bool dyn = false);
void CabChange(TDynamicObject *old, TDynamicObject *now);
};
-
//---------------------------------------------------------------------------
diff --git a/color.h b/color.h
index 68890616..e3e879e8 100644
--- a/color.h
+++ b/color.h
@@ -7,9 +7,9 @@ float3
XYZtoRGB( float3 const &XYZ ) {
// M^-1 for Adobe RGB from http://www.brucelindbloom.com/Eqn_RGB_XYZ_Matrix.html
- float const mi[ 3 ][ 3 ] = { 2.041369, -0.969266, 0.0134474, -0.5649464, 1.8760108, -0.1183897, -0.3446944, 0.041556, 1.0154096 };
+// float const mi[ 3 ][ 3 ] = { 2.041369, -0.969266, 0.0134474, -0.5649464, 1.8760108, -0.1183897, -0.3446944, 0.041556, 1.0154096 };
// m^-1 for sRGB:
-// float const mi[ 3 ][ 3 ] = { 3.240479, -0.969256, 0.055648, -1.53715, 1.875991, -0.204043, -0.49853, 0.041556, 1.057311 };
+ float const mi[ 3 ][ 3 ] = { 3.240479, -0.969256, 0.055648, -1.53715, 1.875991, -0.204043, -0.49853, 0.041556, 1.057311 };
return float3{
XYZ.x*mi[ 0 ][ 0 ] + XYZ.y*mi[ 1 ][ 0 ] + XYZ.z*mi[ 2 ][ 0 ],
diff --git a/maszyna.vcxproj b/maszyna.vcxproj
index 3cd10c56..be008947 100644
--- a/maszyna.vcxproj
+++ b/maszyna.vcxproj
@@ -126,7 +126,6 @@
-
Create
Create
@@ -192,7 +191,6 @@
-
diff --git a/maszyna.vcxproj.filters b/maszyna.vcxproj.filters
index e38ea0db..4b343051 100644
--- a/maszyna.vcxproj.filters
+++ b/maszyna.vcxproj.filters
@@ -198,9 +198,6 @@
Source Files
-
- Source Files
-
@@ -389,9 +386,6 @@
Header Files
-
- Header Files
-
diff --git a/skydome.cpp b/skydome.cpp
index cf9e7064..c84113c5 100644
--- a/skydome.cpp
+++ b/skydome.cpp
@@ -316,7 +316,6 @@ void CSkyDome::RebuildColors() {
color.z = 0.75f * std::max( color.z + m_sundirection.y, 0.075f );
color.x = 0.20f * color.z;
color.y = 0.65f * color.z;
- color = color * ( 1.15f - vertex.y ); // simple gradient, darkening towards the top
}
// save
diff --git a/stars.cpp b/stars.cpp
deleted file mode 100644
index 451d6aa0..00000000
--- a/stars.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#include "stdafx.h"
-#include "stars.h"
-#include "globals.h"
-
-//////////////////////////////////////////////////////////////////////////////////////////
-// cStars -- simple starfield model, simulating appearance of starry sky
-
-void
-cStars::init() {
-
- m_stars.LoadFromFile( "models\\skydome_stars.t3d", false );
-}
-
-void
-cStars::render() {
-
- ::glPushMatrix();
-
- ::glRotatef( m_latitude, 1.0f, 0.0f, 0.0f ); // ustawienie osi OY na północ
- ::glRotatef( -std::fmod( Global::fTimeAngleDeg, 360.0f ), 0.0f, 1.0f, 0.0f ); // obrót dobowy osi OX
-
- ::glPointSize( 2.0f );
- m_stars.Render( 1.0 );
- ::glPointSize( 3.0f );
-
- ::glPopMatrix();
-}
\ No newline at end of file
diff --git a/stars.h b/stars.h
deleted file mode 100644
index d5eb7989..00000000
--- a/stars.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#pragma once
-
-#include "Model3d.h"
-
-
-//////////////////////////////////////////////////////////////////////////////////////////
-// cStars -- simple starfield model, simulating appearance of starry sky
-
-class cStars {
-
-public:
-// types:
-
-// methods:
- void init();
- void render();
-
-// constructors:
-
-// deconstructor:
-
-// members:
-
-private:
-// types:
-
-// methods:
-
-// members:
- float m_longitude{ 19.0f }; // geograpic coordinates hardcoded roughly to Poland location, for the time being
- float m_latitude{ 52.0f };
- TModel3d m_stars;
-};