diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-07-30 15:43:58 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-07-30 15:43:58 +0300 |
commit | 2ec00ea0c1be1ace7cd0c7b68e43cc8e87dd07c7 (patch) | |
tree | bcea6f830039d7ef67dcd1a9a95b767d2af19958 /source/gameengine/Converter/BL_BlenderDataConversion.cpp | |
parent | 9d335d29c775939b22dffedc303ecce9fec4e52f (diff) |
Move tangents and baking to looptris:
Notes:
* Code in rendering and in game engine will still convert
tangents to a tessface representation. Added code that
takes care of tangent layer only, might be removed
when BGE and rendering goes full mlooptri mode.
* Baking should work discovered some dead code while
I was working on the patch, also tangents are broken
when baking from multires (also in master), but those
are separate issues that can be fixed later.
This should fix T45491 as well
Diffstat (limited to 'source/gameengine/Converter/BL_BlenderDataConversion.cpp')
-rw-r--r-- | source/gameengine/Converter/BL_BlenderDataConversion.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/gameengine/Converter/BL_BlenderDataConversion.cpp b/source/gameengine/Converter/BL_BlenderDataConversion.cpp index 33c4ffd9a0c..b6bf96028d4 100644 --- a/source/gameengine/Converter/BL_BlenderDataConversion.cpp +++ b/source/gameengine/Converter/BL_BlenderDataConversion.cpp @@ -959,8 +959,16 @@ RAS_MeshObject* BL_ConvertMesh(Mesh* mesh, Object* blenderobj, KX_Scene* scene, int totface = dm->getNumTessFaces(dm); const char *tfaceName = ""; + /* needs to be rewritten for loopdata */ if (tface) { - DM_add_tangent_layer(dm); + if (CustomData_get_layer_index(&dm->faceData, CD_TANGENT) == -1) { + bool generate_data = false; + if (CustomData_get_layer_index(&dm->loopData, CD_TANGENT) == -1) { + DM_add_tangent_layer(dm); + generate_data = true; + } + DM_generate_tangent_tessface_data(dm, generate_data); + } tangent = (float(*)[4])dm->getTessFaceDataArray(dm, CD_TANGENT); } |