]> git.mxchange.org Git - simgear.git/commitdiff
Change the defaults color specifications
authorehofman <ehofman>
Mon, 8 Sep 2003 13:11:19 +0000 (13:11 +0000)
committerehofman <ehofman>
Mon, 8 Sep 2003 13:11:19 +0000 (13:11 +0000)
simgear/scene/material/mat.cxx

index 480c7f7e8abf144c7367b045dfc6c2c3319d3f0e..8b25673d9ede9c3e385bc1d11256c42563379c0c 100644 (file)
@@ -127,27 +127,28 @@ SGMaterial::read_properties( const string &fg_root, const SGPropertyNode * props
   mipmap = props->getBoolValue("mipmap", true);
   light_coverage = props->getDoubleValue("light-coverage", 0.0);
 
-  ambient[0] = props->getDoubleValue("ambient/r", 0.0);
-  ambient[1] = props->getDoubleValue("ambient/g", 0.0);
-  ambient[2] = props->getDoubleValue("ambient/b", 0.0);
-  ambient[3] = props->getDoubleValue("ambient/a", 0.0);
-
-  diffuse[0] = props->getDoubleValue("diffuse/r", 0.0);
-  diffuse[1] = props->getDoubleValue("diffuse/g", 0.0);
-  diffuse[2] = props->getDoubleValue("diffuse/b", 0.0);
-  diffuse[3] = props->getDoubleValue("diffuse/a", 0.0);
-
-  specular[0] = props->getDoubleValue("specular/r", 0.0);
-  specular[1] = props->getDoubleValue("specular/g", 0.0);
-  specular[2] = props->getDoubleValue("specular/b", 0.0);
-  specular[3] = props->getDoubleValue("specular/a", 0.0);
+  // Taken from default values as used in ac3d
+  ambient[0] = props->getDoubleValue("ambient/r", 0.2);
+  ambient[1] = props->getDoubleValue("ambient/g", 0.2);
+  ambient[2] = props->getDoubleValue("ambient/b", 0.2);
+  ambient[3] = props->getDoubleValue("ambient/a", 1.0);
+
+  diffuse[0] = props->getDoubleValue("diffuse/r", 1.0);
+  diffuse[1] = props->getDoubleValue("diffuse/g", 1.0);
+  diffuse[2] = props->getDoubleValue("diffuse/b", 1.0);
+  diffuse[3] = props->getDoubleValue("diffuse/a", 1.0);
+
+  specular[0] = props->getDoubleValue("specular/r", 0.5);
+  specular[1] = props->getDoubleValue("specular/g", 0.5);
+  specular[2] = props->getDoubleValue("specular/b", 0.5);
+  specular[3] = props->getDoubleValue("specular/a", 1.0);
 
   emission[0] = props->getDoubleValue("emissive/r", 0.0);
   emission[1] = props->getDoubleValue("emissive/g", 0.0);
   emission[2] = props->getDoubleValue("emissive/b", 0.0);
-  emission[3] = props->getDoubleValue("emissive/a", 0.0);
+  emission[3] = props->getDoubleValue("emissive/a", 1.0);
 
-  shininess = props->getDoubleValue("shininess", 0.0);
+  shininess = props->getDoubleValue("shininess", 1.0);
 
   vector<SGPropertyNode_ptr> object_group_nodes =
     ((SGPropertyNode *)props)->getChildren("object-group");
@@ -174,9 +175,12 @@ SGMaterial::init ()
     light_coverage = 0.0;
     texture_loaded = false;
     refcount = 0;
-    shininess = 0.0;
+    shininess = 1.0;
     for (int i = 0; i < 4; i++) {
-        ambient[i] = diffuse[i] = specular[i] = emission[i] = 0.0;
+        ambient[i]  = (i < 3) ? 0.2 : 1.0;
+        specular[i] = (i < 3) ? 0.5 : 1.0;
+        diffuse[i]  = 1.0;
+        emission[i] = (i < 3) ? 0.0 : 1.0;
     }
 }
 
@@ -218,11 +222,6 @@ SGMaterial::build_ssg_state( bool defer_tex_load )
        texture_loaded = false;
     }
     state->enable( GL_COLOR_MATERIAL );
-#if 0
-    state->setColourMaterial( GL_AMBIENT_AND_DIFFUSE );
-    state->setMaterial( GL_EMISSION, 0, 0, 0, 1 );
-    state->setMaterial( GL_SPECULAR, 0, 0, 0, 1 );
-#else
     state->setMaterial ( GL_AMBIENT,
                             ambient[0], ambient[1],
                             ambient[2], ambient[3] ) ;
@@ -236,7 +235,6 @@ SGMaterial::build_ssg_state( bool defer_tex_load )
                             emission[0], emission[1],
                             emission[2], emission[3] ) ;
     state->setShininess ( shininess );
-#endif
 }