From 1c8030472ae6a06f85ec0d9f71aa61278fd78d1b Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 17 Aug 2015 12:40:56 -0700 Subject: [PATCH] back out the more controversial changes --- libraries/fbx/src/FBXReader.cpp | 20 ++++++++++++-------- libraries/render-utils/src/Model.cpp | 11 +++++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/libraries/fbx/src/FBXReader.cpp b/libraries/fbx/src/FBXReader.cpp index ebffa4410a..2db5f5fa51 100644 --- a/libraries/fbx/src/FBXReader.cpp +++ b/libraries/fbx/src/FBXReader.cpp @@ -976,7 +976,7 @@ ExtractedMesh extractMesh(const FBXNode& object, unsigned int& meshIndex) { data.extracted.mesh.meshIndex = meshIndex++; QVector materials; QVector textures; - // bool isMaterialPerPolygon = false; + bool isMaterialPerPolygon = false; foreach (const FBXNode& child, object.children) { if (child.name == "Vertices") { @@ -1107,13 +1107,12 @@ ExtractedMesh extractMesh(const FBXNode& object, unsigned int& meshIndex) { foreach (const FBXNode& subdata, child.children) { if (subdata.name == "Materials") { materials = getIntVector(subdata); - } // else if (subdata.name == "MappingInformationType") { - // if (subdata.properties.at(0) == "ByPolygon") - // isMaterialPerPolygon = true; - // } else { - // isMaterialPerPolygon = false; - // } - // } + } else if (subdata.name == "MappingInformationType") { + if (subdata.properties.at(0) == "ByPolygon") + isMaterialPerPolygon = true; + } else { + isMaterialPerPolygon = false; + } } @@ -1126,6 +1125,11 @@ ExtractedMesh extractMesh(const FBXNode& object, unsigned int& meshIndex) { } } + bool isMultiMaterial = false; + if (isMaterialPerPolygon) { + isMultiMaterial = true; + } + // convert the polygons to quads and triangles int polygonIndex = 0; QHash, int> materialTextureParts; diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 8a9a3f68dc..7452c32ed2 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -1808,6 +1808,17 @@ void Model::segregateMeshGroups() { const FBXMesh& mesh = geometry.meshes.at(i); const MeshState& state = _meshStates.at(i); + bool translucentMesh = networkMesh.getTranslucentPartCount(mesh) == networkMesh.parts.size(); + bool hasTangents = !mesh.tangents.isEmpty(); + bool hasSpecular = mesh.hasSpecularTexture(); + bool hasLightmap = mesh.hasEmissiveTexture(); + bool isSkinned = state.clusterMatrices.size() > 1; + bool wireframe = isWireframe(); + + if (wireframe) { + translucentMesh = hasTangents = hasSpecular = hasLightmap = isSkinned = false; + } + // Create the render payloads int totalParts = mesh.parts.size(); for (int partIndex = 0; partIndex < totalParts; partIndex++) {