Use a different coloring scheme.
This commit is contained in:
@@ -28,10 +28,6 @@ inline int (isinf)(double r) { return isinf(r); }
|
|||||||
inline int (isnan)(double r) { return isnan(r); }
|
inline int (isnan)(double r) { return isnan(r); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__MINGW32__)
|
|
||||||
#define isnan(x) _isnan(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// #include STL_IOSTREAM
|
// #include STL_IOSTREAM
|
||||||
|
|
||||||
#include <plib/sg.h>
|
#include <plib/sg.h>
|
||||||
@@ -47,6 +43,10 @@ inline int (isnan)(double r) { return isnan(r); }
|
|||||||
|
|
||||||
#include "cloud.hxx"
|
#include "cloud.hxx"
|
||||||
|
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#define isnan(x) _isnan(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static ssgStateSelector *layer_states[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
|
static ssgStateSelector *layer_states[SGCloudLayer::SG_MAX_CLOUD_COVERAGES];
|
||||||
static bool state_initialized = false;
|
static bool state_initialized = false;
|
||||||
@@ -865,17 +865,23 @@ void SGCloudLayer::draw( bool top ) {
|
|||||||
glEnable( GL_BLEND );
|
glEnable( GL_BLEND );
|
||||||
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
|
||||||
|
|
||||||
glPolygonMode( GL_FILL, GL_FRONT_AND_BACK );
|
|
||||||
glShadeModel( GL_SMOOTH );
|
glShadeModel( GL_SMOOTH );
|
||||||
glEnable( GL_COLOR_MATERIAL );
|
glEnable( GL_COLOR_MATERIAL );
|
||||||
sgVec4 color;
|
sgVec4 color;
|
||||||
sgSetVec4( color, 0.05, 0.05, 0.05, 0.0 );
|
float emis = 0.05;
|
||||||
|
if ( top ) {
|
||||||
|
ssgGetLight( 0 )->getColour( GL_DIFFUSE, color );
|
||||||
|
emis = ( color[0]+color[1]+color[2] ) / 3.0;
|
||||||
|
if ( emis < 0.05 )
|
||||||
|
emis = 0.05;
|
||||||
|
}
|
||||||
|
sgSetVec4( color, emis, emis, emis, 0.0 );
|
||||||
glMaterialfv( GL_FRONT_AND_BACK, GL_EMISSION, color );
|
glMaterialfv( GL_FRONT_AND_BACK, GL_EMISSION, color );
|
||||||
sgSetVec4( color, 0.8, 0.8, 0.8, 0.0 );
|
sgSetVec4( color, 1.0f, 1.0f, 1.0f, 0.0 );
|
||||||
glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, color );
|
glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT, color );
|
||||||
sgSetVec4( color, 0.5, 0.5, 0.5, 0.0 );
|
sgSetVec4( color, 0.5, 0.5, 0.5, 0.0 );
|
||||||
glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, color );
|
glMaterialfv( GL_FRONT_AND_BACK, GL_DIFFUSE, color );
|
||||||
sgSetVec4( color, 1.0, 1.0, 1.0, 1.0 );
|
sgSetVec4( color, 0.0, 0.0, 0.0, 0.0 );
|
||||||
glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, color );
|
glMaterialfv( GL_FRONT_AND_BACK, GL_SPECULAR, color );
|
||||||
|
|
||||||
glActiveTexturePtr( GL_TEXTURE0_ARB );
|
glActiveTexturePtr( GL_TEXTURE0_ARB );
|
||||||
|
|||||||
Reference in New Issue
Block a user