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