bake particles and polylines

This commit is contained in:
SamGondelman 2019-02-28 09:59:56 -08:00 committed by sabrina-shanman
parent 1a1277e9e7
commit 168e47aa62
2 changed files with 13 additions and 5 deletions

View file

@ -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('.'));

View file

@ -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);