Revision: 47930
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47930
Author:   aramis_acg
Date:     2012-06-15 01:06:14 +0000 (Fri, 15 Jun 2012)
Log Message:
-----------
- bf_assimp: convert assimp lights to blender lamps with similar appearance.
- bf_assimp: fix error message in mesh converter

Modified Paths:
--------------
    branches/soc-2012-bratwurst/source/blender/assimp/MeshImporter.cpp
    branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp

Modified: branches/soc-2012-bratwurst/source/blender/assimp/MeshImporter.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/assimp/MeshImporter.cpp  
2012-06-15 00:46:19 UTC (rev 47929)
+++ branches/soc-2012-bratwurst/source/blender/assimp/MeshImporter.cpp  
2012-06-15 01:06:14 UTC (rev 47930)
@@ -299,8 +299,7 @@
                }
                else {
                        if (m.GetNumUVChannels() != uv_count) {
-                               // XXX error
-
+                               error("unexpected number of UV channels, 
ignoring");
                                return;
                        }
                }

Modified: branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp 
2012-06-15 00:46:19 UTC (rev 47929)
+++ branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp 
2012-06-15 01:06:14 UTC (rev 47930)
@@ -308,8 +308,46 @@
                return NULL;
        }
 
-       // XXX: import light attributes
+       lamp->r = light.mColorDiffuse.r;
+       lamp->g = light.mColorDiffuse.g;
+       lamp->b = light.mColorDiffuse.b;
 
+       if(light.mColorSpecular.r < 1e-4f && light.mColorSpecular.g < 1e-4f && 
light.mColorSpecular.b < 1e-4f)
+       {
+               lamp->mode |= LA_NO_SPEC;
+       }
+
+       switch(light.mType) 
+       {
+               case aiLightSource_UNDEFINED:
+
+               case aiLightSource_DIRECTIONAL:
+                       lamp->type = LA_SUN;
+                       break;
+
+               case aiLightSource_POINT:
+                       lamp->type = LA_LOCAL;
+                       break;
+
+               case aiLightSource_SPOT:
+                       lamp->type = LA_SPOT;
+                       
+                       break;
+       }
+
+       // XXX should also set Att1,Att2?
+       if (light.mAttenuationQuadratic > 0.0f)
+       {
+               lamp->falloff_type = LA_FALLOFF_INVSQUARE;
+       }
+       else if (light.mAttenuationLinear > 0.0f)
+       {
+               lamp->falloff_type = LA_FALLOFF_INVLINEAR;
+       }
+       else {
+               lamp->falloff_type = LA_FALLOFF_CONSTANT;
+       }
+
        Lamp* const old_lamp = static_cast<Lamp*>(ob->data);
 
        ob->data = lamp;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to