Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2015-07-30 15:43:58 +0300
committerAntony Riakiotakis <kalast@gmail.com>2015-07-30 15:43:58 +0300
commit2ec00ea0c1be1ace7cd0c7b68e43cc8e87dd07c7 (patch)
treebcea6f830039d7ef67dcd1a9a95b767d2af19958 /source/gameengine/Converter/BL_BlenderDataConversion.cpp
parent9d335d29c775939b22dffedc303ecce9fec4e52f (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.cpp10
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);
}