Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/render/draw.cc14
-rw-r--r--src/render/draw.h2
-rwxr-xr-xsrc/ui/modelview.cc10
3 files changed, 16 insertions, 10 deletions
diff --git a/src/render/draw.cc b/src/render/draw.cc
index 3b7acad..71b8631 100644
--- a/src/render/draw.cc
+++ b/src/render/draw.cc
@@ -54,6 +54,10 @@ bool draw_particles = true;
bool draw_lights = true;
size_t max_lights = 8;
+float ambient_light_intensity = 0.1f;
+float diffuse_light_intensity = 0.75f;
+float specular_light_intensity = 0.75f;
+
GLenum zone_gllight = GL_LIGHT0;
typedef std::map<float, core::EntityGlobe *> Globes;
@@ -69,7 +73,7 @@ void pass_reset_lights()
}
// Lights
-int create_light(float* location, float attenuation, math::Color color)
+int add_light(float* location, float attenuation, math::Color color)
{
int gllight;
@@ -93,9 +97,9 @@ int create_light(float* location, float attenuation, math::Color color)
for (size_t i = 0; i < 3; i++) {
gllight_location[i] = location[i];
- ambient_light[i] = color[i] * 0.1;
- diffuse_light[i] = color[i] * 0.75;
- specular_light[i] = color[i] * 0.75;
+ ambient_light[i] = color[i] * ambient_light_intensity;
+ diffuse_light[i] = color[i] * diffuse_light_intensity;
+ specular_light[i] = color[i] * specular_light_intensity;
}
gllight_location[3] = 1.0f;
ambient_light[3] = 1.0f;
@@ -169,7 +173,7 @@ void pass_prepare(float seconds)
zone_light[i] = globe->location()[i];
zone_color[i] = globe->color()[i];
}
- GLenum zone_gllight = create_light(zone_light, 0.00025f, globe->color());
+ GLenum zone_gllight = add_light(zone_light, 0.00025f, globe->color());
gl::enable(zone_gllight);
has_zone_light = true;
}
diff --git a/src/render/draw.h b/src/render/draw.h
index e35c7c5..59a5b4a 100644
--- a/src/render/draw.h
+++ b/src/render/draw.h
@@ -27,7 +27,7 @@ void draw_target(const core::Entity *entity);
void reset();
/// create light
-int create_light(float* location, float attenuation, math::Color color);
+int add_light(float* location, float attenuation, math::Color color);
/// draw a sphere
void draw_sphere(math::Color const & color, float radius);
diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc
index e3a3c79..303f8e2 100755
--- a/src/ui/modelview.cc
+++ b/src/ui/modelview.cc
@@ -20,6 +20,8 @@ namespace ui
{
GLenum modelview_gllight = GL_LIGHT0;
+float modelview_light_distance = -10.0f;
+float modelview_light_attenuation = 0.05f;
ModelView::ModelView(Widget *parent) : Widget(parent)
{
@@ -204,10 +206,10 @@ void ModelView::draw_globe()
glEnableClientState(GL_NORMAL_ARRAY);
// we set up the light in camera space
- float modelview_light_location[] = {-10.0f * reference_radius, 0, 0};
+ float modelview_light_location[] = {modelview_light_distance * reference_radius, 0, 0};
math::Color modelview_light_color;
modelview_light_color.assign(1.0);
- modelview_gllight = render::create_light(modelview_light_location, 0.05f, modelview_light_color);
+ modelview_gllight = render::add_light(modelview_light_location, modelview_light_attenuation, modelview_light_color);
gl::enable(modelview_gllight);
@@ -304,10 +306,10 @@ void ModelView::draw_model()
glEnableClientState(GL_NORMAL_ARRAY);
// we set up the light in camera space
- float modelview_light_location[] = {-10.0f * reference_radius, 0, 0};
+ float modelview_light_location[] = {modelview_light_distance * reference_radius, 0, 0};
math::Color modelview_light_color;
modelview_light_color.assign(1.0);
- modelview_gllight = render::create_light(modelview_light_location, 0.05f, modelview_light_color);
+ modelview_gllight = render::add_light(modelview_light_location, modelview_light_attenuation, modelview_light_color);
gl::enable(modelview_gllight);