void ModelBaker::exportScene() { auto fbxData = FBXWriter::encodeFBX(_rootNode); QString bakedModelURL = _bakedModelURL.toString(); QFile bakedFile(bakedModelURL); if (!bakedFile.open(QIODevice::WriteOnly)) { handleError("Error opening " + bakedModelURL + " for writing"); return; } bakedFile.write(fbxData); _outputFiles.push_back(bakedModelURL); #ifdef HIFI_DUMP_FBX { FBXToJSON fbxToJSON; fbxToJSON << _rootNode; QFileInfo modelFile(_bakedModelURL.toString()); QString outFilename(modelFile.dir().absolutePath() + "/" + modelFile.completeBaseName() + "_FBX.json"); QFile jsonFile(outFilename); if (jsonFile.open(QIODevice::WriteOnly)) { jsonFile.write(fbxToJSON.str().c_str(), fbxToJSON.str().length()); jsonFile.close(); } } #endif qCDebug(model_baking) << "Exported" << _modelURL << "with re-written paths to" << bakedModelURL; }
void ModelBaker::exportScene() { // save the relative path to this FBX inside our passed output folder auto fileName = _modelURL.fileName(); auto baseName = fileName.left(fileName.lastIndexOf('.')); auto bakedFilename = baseName + BAKED_FBX_EXTENSION; _bakedModelFilePath = _bakedOutputDir + "/" + bakedFilename; auto fbxData = FBXWriter::encodeFBX(_rootNode); QFile bakedFile(_bakedModelFilePath); if (!bakedFile.open(QIODevice::WriteOnly)) { handleError("Error opening " + _bakedModelFilePath + " for writing"); return; } bakedFile.write(fbxData); _outputFiles.push_back(_bakedModelFilePath); #ifdef HIFI_DUMP_FBX { FBXToJSON fbxToJSON; fbxToJSON << _rootNode; QFileInfo modelFile(_bakedModelFilePath); QString outFilename(modelFile.dir().absolutePath() + "/" + modelFile.completeBaseName() + "_FBX.json"); QFile jsonFile(outFilename); if (jsonFile.open(QIODevice::WriteOnly)) { jsonFile.write(fbxToJSON.str().c_str(), fbxToJSON.str().length()); jsonFile.close(); } } #endif qCDebug(model_baking) << "Exported" << _modelURL << "with re-written paths to" << _bakedModelFilePath; }