Replace Texture/MaterialID in OBJBaker with NodeID

This commit is contained in:
Ryan Huffman 2017-12-08 15:56:35 -08:00
parent 373b29c031
commit 53ce137b7c
2 changed files with 15 additions and 15 deletions

View file

@ -200,9 +200,9 @@ void OBJBaker::createFBXNodeTree(FBXNode& rootNode, FBXGeometry& geometry) {
FBXNode geometryNode; FBXNode geometryNode;
geometryNode.name = GEOMETRY_NODE_NAME; geometryNode.name = GEOMETRY_NODE_NAME;
{ {
_geometryID = _nodeID; _geometryID = nextNodeID();
geometryNode.properties = { geometryNode.properties = {
_nodeID++, _geometryID,
GEOMETRY_NODE_NAME, GEOMETRY_NODE_NAME,
MESH MESH
}; };
@ -218,8 +218,8 @@ void OBJBaker::createFBXNodeTree(FBXNode& rootNode, FBXGeometry& geometry) {
FBXNode modelNode; FBXNode modelNode;
modelNode.name = MODEL_NODE_NAME; modelNode.name = MODEL_NODE_NAME;
{ {
_modelID = _nodeID++; _modelID = nextNodeID();
modelNode.properties = { _nodeID, MODEL_NODE_NAME, MESH }; modelNode.properties = { _modelID, MODEL_NODE_NAME, MESH };
} }
_objectNode.children = { geometryNode, modelNode }; _objectNode.children = { geometryNode, modelNode };
@ -248,13 +248,13 @@ void OBJBaker::createFBXNodeTree(FBXNode& rootNode, FBXGeometry& geometry) {
QString material = meshParts[i].materialID; QString material = meshParts[i].materialID;
FBXMaterial currentMaterial = geometry.materials[material]; FBXMaterial currentMaterial = geometry.materials[material];
if (!currentMaterial.albedoTexture.filename.isEmpty() || !currentMaterial.specularTexture.filename.isEmpty()) { if (!currentMaterial.albedoTexture.filename.isEmpty() || !currentMaterial.specularTexture.filename.isEmpty()) {
_textureID = _nodeID; _textureID = nextNodeID();
_mapTextureMaterial.emplace_back(_textureID, i); _mapTextureMaterial.emplace_back(_textureID, i);
FBXNode textureNode; FBXNode textureNode;
{ {
textureNode.name = TEXTURE_NODE_NAME; textureNode.name = TEXTURE_NODE_NAME;
textureNode.properties = { _nodeID++ }; textureNode.properties = { _textureID };
} }
// Texture node child - TextureName node // Texture node child - TextureName node
@ -336,7 +336,7 @@ void OBJBaker::createFBXNodeTree(FBXNode& rootNode, FBXGeometry& geometry) {
// Set properties for material nodes // Set properties for material nodes
void OBJBaker::setMaterialNodeProperties(FBXNode& materialNode, QString material, FBXGeometry& geometry) { void OBJBaker::setMaterialNodeProperties(FBXNode& materialNode, QString material, FBXGeometry& geometry) {
auto materialID = _nodeID++; auto materialID = nextNodeID();
_materialIDs.push_back(materialID); _materialIDs.push_back(materialID);
materialNode.properties = { materialID, material, MESH }; materialNode.properties = { materialID, material, MESH };

View file

@ -20,8 +20,7 @@
using TextureBakerThreadGetter = std::function<QThread*()>; using TextureBakerThreadGetter = std::function<QThread*()>;
using TextureID = qlonglong; using NodeID = qlonglong;
using MaterialID = qlonglong;
class OBJBaker : public ModelBaker { class OBJBaker : public ModelBaker {
Q_OBJECT Q_OBJECT
@ -42,13 +41,14 @@ private:
void loadOBJ(); void loadOBJ();
void createFBXNodeTree(FBXNode& rootNode, FBXGeometry& geometry); void createFBXNodeTree(FBXNode& rootNode, FBXGeometry& geometry);
void setMaterialNodeProperties(FBXNode& materialNode, QString material, FBXGeometry& geometry); void setMaterialNodeProperties(FBXNode& materialNode, QString material, FBXGeometry& geometry);
NodeID nextNodeID() { return _nodeID++; }
qlonglong _nodeID = 0; NodeID _nodeID { 0 };
qlonglong _geometryID; NodeID _geometryID;
qlonglong _modelID; NodeID _modelID;
std::vector<MaterialID> _materialIDs; std::vector<NodeID> _materialIDs;
qlonglong _textureID; NodeID _textureID;
std::vector<std::pair<TextureID, int>> _mapTextureMaterial; std::vector<std::pair<NodeID, int>> _mapTextureMaterial;
FBXNode _objectNode; FBXNode _objectNode;
}; };
#endif // hifi_OBJBaker_h #endif // hifi_OBJBaker_h