From 168e47aa62fb790c4ea87aeaa2d1f5fdf0a4e518 Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Thu, 28 Feb 2019 09:59:56 -0800 Subject: [PATCH] bake particles and polylines --- libraries/baking/src/MaterialBaker.cpp | 8 ++++---- tools/oven/src/DomainBaker.cpp | 10 +++++++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/libraries/baking/src/MaterialBaker.cpp b/libraries/baking/src/MaterialBaker.cpp index 054d1ed0fd..558adedf68 100644 --- a/libraries/baking/src/MaterialBaker.cpp +++ b/libraries/baking/src/MaterialBaker.cpp @@ -182,12 +182,12 @@ void MaterialBaker::handleFinishedTextureBaker() { void MaterialBaker::outputMaterial() { if (_materialResource) { - QJsonDocument json; + QJsonObject json; if (_materialResource->parsedMaterials.networkMaterials.size() == 1) { auto networkMaterial = _materialResource->parsedMaterials.networkMaterials.begin(); auto scriptableMaterial = scriptable::ScriptableMaterial(networkMaterial->second); QVariant materialVariant = scriptable::scriptableMaterialToScriptValue(&_scriptEngine, scriptableMaterial).toVariant(); - json = QJsonDocument::fromVariant(materialVariant); + json.insert("materials", QJsonDocument::fromVariant(materialVariant).object()); } else { QJsonArray materialArray; for (auto networkMaterial : _materialResource->parsedMaterials.networkMaterials) { @@ -195,10 +195,10 @@ void MaterialBaker::outputMaterial() { QVariant materialVariant = scriptable::scriptableMaterialToScriptValue(&_scriptEngine, scriptableMaterial).toVariant(); materialArray.append(QJsonDocument::fromVariant(materialVariant).object()); } - json.setArray(materialArray); + json.insert("materials", materialArray); } - QByteArray outputMaterial = json.toJson(QJsonDocument::Compact); + QByteArray outputMaterial = QJsonDocument(json).toJson(QJsonDocument::Compact); if (_isURL) { auto fileName = QUrl(_materialData).fileName(); auto baseName = fileName.left(fileName.lastIndexOf('.')); diff --git a/tools/oven/src/DomainBaker.cpp b/tools/oven/src/DomainBaker.cpp index a74e402b63..42dfe59241 100644 --- a/tools/oven/src/DomainBaker.cpp +++ b/tools/oven/src/DomainBaker.cpp @@ -288,6 +288,8 @@ void DomainBaker::addMaterialBaker(const QString& property, const QString& data, // All the Entity Properties that can be baked // *************************************************************************************** +const QString TYPE_KEY = "type"; + // Models const QString MODEL_URL_KEY = "modelURL"; const QString COMPOUND_SHAPE_URL_KEY = "compoundShapeURL"; @@ -349,7 +351,13 @@ void DomainBaker::enumerateEntities() { // Textures if (entity.contains(TEXTURES_KEY)) { - // TODO: the textures property is treated differently for different entity types + if (entity.contains(TYPE_KEY)) { + QString type = entity[TYPE_KEY].toString(); + // TODO: handle textures for model entities + if (type == "ParticleEffect" || type == "PolyLine") { + addTextureBaker(TEXTURES_KEY, entity[TEXTURES_KEY].toString(), image::TextureUsage::DEFAULT_TEXTURE, *it); + } + } } if (entity.contains(IMAGE_URL_KEY)) { addTextureBaker(IMAGE_URL_KEY, entity[IMAGE_URL_KEY].toString(), image::TextureUsage::DEFAULT_TEXTURE, *it);