From b56c78d36c96f5c3196915843e8d6b02222a47c9 Mon Sep 17 00:00:00 2001 From: Elisa Lupin-Jimenez Date: Fri, 23 Feb 2018 17:06:29 -0800 Subject: [PATCH 1/4] image has correct orientation and is collisionless --- .../meshes/images/default-image-model.fbx | Bin 51420 -> 34348 bytes interface/resources/qml/hifi/AssetServer.qml | 7 +++++-- .../qml/hifi/dialogs/TabletAssetServer.qml | 9 ++++++--- interface/src/Application.cpp | 10 ++++++---- .../entities/src/EntityScriptingInterface.cpp | 3 ++- .../entities/src/EntityScriptingInterface.h | 2 +- scripts/system/edit.js | 7 ++++--- 7 files changed, 24 insertions(+), 14 deletions(-) diff --git a/interface/resources/meshes/images/default-image-model.fbx b/interface/resources/meshes/images/default-image-model.fbx index 641a7f82ebd0a67a9364c21867bad4a02d246048..781b01fb0fb66afda96da659343b42c4840776ca 100644 GIT binary patch delta 3568 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 delta 16782 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 R2r9pWu6Hhi|GJa 1) { return false; @@ -188,9 +188,10 @@ Rectangle { var textures = JSON.stringify({ "tex.picture": defaultURL}); var shapeType = "box"; var dynamic = false; + var collisionless = true; var position = Vec3.sum(MyAvatar.position, Vec3.multiply(2, Quat.getForward(MyAvatar.orientation))); var gravity = Vec3.multiply(Vec3.fromPolar(Math.PI / 2, 0), 0); - Entities.addModelEntity(name, modelURL, textures, shapeType, dynamic, position, gravity); + Entities.addModelEntity(name, modelURL, textures, shapeType, dynamic, collisionless, position, gravity); } else { var SHAPE_TYPE_NONE = 0; var SHAPE_TYPE_SIMPLE_HULL = 1; @@ -235,6 +236,7 @@ Rectangle { var result = JSON.parse(jsonResult); var url = result.textInput.trim(); var shapeType; + var collisionless = false; switch (result.comboBox) { case SHAPE_TYPE_SIMPLE_HULL: shapeType = "simple-hull"; @@ -253,6 +255,7 @@ Rectangle { break; default: shapeType = "none"; + collisionless = true; } var dynamic = result.checkBox !== null ? result.checkBox : DYNAMIC_DEFAULT; @@ -274,7 +277,7 @@ Rectangle { print("Asset browser - adding asset " + url + " (" + name + ") to world."); // Entities.addEntity doesn't work from QML, so we use this. - Entities.addModelEntity(name, url, "", shapeType, dynamic, addPosition, gravity); + Entities.addModelEntity(name, url, "", shapeType, dynamic, collisionless, addPosition, gravity); } } }); diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index d2593dfa18..e18980d24f 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -6605,8 +6605,8 @@ void Application::addAssetToWorldSetMapping(QString filePath, QString mapping, Q addAssetToWorldError(filenameFromPath(filePath), errorInfo); } else { // to prevent files that aren't models from being loaded into world automatically - if (filePath.endsWith(OBJ_EXTENSION) || filePath.endsWith(FBX_EXTENSION) || - filePath.endsWith(JPG_EXTENSION) || filePath.endsWith(PNG_EXTENSION)) { + if (filePath.toLower().endsWith(OBJ_EXTENSION) || filePath.toLower().endsWith(FBX_EXTENSION) || + filePath.toLower().endsWith(JPG_EXTENSION) || filePath.toLower().endsWith(PNG_EXTENSION)) { addAssetToWorldAddEntity(filePath, mapping); } else { qCDebug(interfaceapp) << "Zipped contents are not supported entity files"; @@ -6623,7 +6623,7 @@ void Application::addAssetToWorldAddEntity(QString filePath, QString mapping) { EntityItemProperties properties; properties.setType(EntityTypes::Model); properties.setName(mapping.right(mapping.length() - 1)); - if (filePath.endsWith(PNG_EXTENSION) || filePath.endsWith(JPG_EXTENSION)) { + if (filePath.toLower().endsWith(PNG_EXTENSION) || filePath.toLower().endsWith(JPG_EXTENSION)) { QJsonObject textures { {"tex.picture", QString("atp:" + mapping) } }; @@ -6719,7 +6719,9 @@ void Application::addAssetToWorldCheckModelSize() { EntityItemProperties properties; properties.setDimensions(dimensions); properties.setVisible(true); - properties.setCollisionless(false); + if (!name.toLower().endsWith(PNG_EXTENSION) && !name.toLower().endsWith(JPG_EXTENSION)) { + properties.setCollisionless(false); + } properties.setUserData(GRABBABLE_USER_DATA); properties.setLastEdited(usecTimestampNow()); entityScriptingInterface->editEntity(entityID, properties); diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 2b44b47128..f126537957 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -305,7 +305,7 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties } QUuid EntityScriptingInterface::addModelEntity(const QString& name, const QString& modelUrl, const QString& textures, const QString& shapeType, - bool dynamic, const glm::vec3& position, const glm::vec3& gravity) { + bool dynamic, bool collisionless, const glm::vec3& position, const glm::vec3& gravity) { _activityTracking.addedEntityCount++; EntityItemProperties properties; @@ -314,6 +314,7 @@ QUuid EntityScriptingInterface::addModelEntity(const QString& name, const QStrin properties.setModelURL(modelUrl); properties.setShapeTypeFromString(shapeType); properties.setDynamic(dynamic); + properties.setCollisionless(collisionless); properties.setPosition(position); properties.setGravity(gravity); if (!textures.isEmpty()) { diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index cdb784ffa8..6b4cd81e44 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -165,7 +165,7 @@ public slots: /// temporary method until addEntity can be used from QJSEngine /// Deliberately not adding jsdoc, only used internally. Q_INVOKABLE QUuid addModelEntity(const QString& name, const QString& modelUrl, const QString& textures, const QString& shapeType, bool dynamic, - const glm::vec3& position, const glm::vec3& gravity); + bool collisionless, const glm::vec3& position, const glm::vec3& gravity); /**jsdoc * Return the properties for the specified {EntityID}. diff --git a/scripts/system/edit.js b/scripts/system/edit.js index 2853355c5a..414be2d836 100644 --- a/scripts/system/edit.js +++ b/scripts/system/edit.js @@ -565,11 +565,12 @@ var toolBar = (function () { createNewEntity({ type: "Model", dimensions: { - x: 4.16, - y: 0.02, - z: 2.58 + x: 0.5385, + y: 0.2819, + z: 0.0092 }, shapeType: "box", + collisionless: true, modelURL: IMAGE_MODEL, textures: JSON.stringify({ "tex.picture": DEFAULT_IMAGE }) }); From efba6bb5246d56de989f55e827a6bcb96e8cc6ef Mon Sep 17 00:00:00 2001 From: samcake Date: Tue, 27 Feb 2018 09:11:14 -0800 Subject: [PATCH 2/4] Adding a counter for the other parts of the gameloop --- interface/src/ui/Stats.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index 80f57bfe0e..bbc8de5987 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -482,7 +482,7 @@ void Stats::updateStats(bool force) { float dt = (float)itr.value().getMovingAverage() / (float)USECS_PER_MSEC; _gameUpdateStats = QString("/idle/update = %1 ms").arg(dt); - QVector categories = { "devices", "physics", "otherAvatars", "MyAvatar", "misc" }; + QVector categories = { "devices", "physics", "otherAvatars", "MyAvatar", "pickManager", "postUpdateLambdas", "misc" }; for (int32_t j = 0; j < categories.size(); ++j) { QString recordKey = "/idle/update/" + categories[j]; itr = allRecords.find(recordKey); From 17ddf210281b4e7267179c29167ef5cec8e0a810 Mon Sep 17 00:00:00 2001 From: Elisa Lupin-Jimenez Date: Tue, 27 Feb 2018 15:05:51 -0800 Subject: [PATCH 3/4] fixed line length --- libraries/entities/src/EntityScriptingInterface.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index f126537957..93cbe781be 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -304,8 +304,9 @@ QUuid EntityScriptingInterface::addEntity(const EntityItemProperties& properties } } -QUuid EntityScriptingInterface::addModelEntity(const QString& name, const QString& modelUrl, const QString& textures, const QString& shapeType, - bool dynamic, bool collisionless, const glm::vec3& position, const glm::vec3& gravity) { +QUuid EntityScriptingInterface::addModelEntity(const QString& name, const QString& modelUrl, const QString& textures, + const QString& shapeType, bool dynamic, bool collisionless, + const glm::vec3& position, const glm::vec3& gravity) { _activityTracking.addedEntityCount++; EntityItemProperties properties; From 9e5ed7b905bc95d5e8a17686e6f9cfea31cf3117 Mon Sep 17 00:00:00 2001 From: samcake Date: Wed, 28 Feb 2018 10:48:35 -0800 Subject: [PATCH 4/4] Add more timing stats in explanded mode --- interface/resources/qml/Stats.qml | 6 +++++- interface/src/ui/Stats.cpp | 29 +++++++++++++++++++++++++++++ interface/src/ui/Stats.h | 2 ++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/interface/resources/qml/Stats.qml b/interface/resources/qml/Stats.qml index 4626d9bcda..a12bd4b2c0 100644 --- a/interface/resources/qml/Stats.qml +++ b/interface/resources/qml/Stats.qml @@ -257,7 +257,11 @@ Item { id: octreeCol spacing: 4; x: 4; y: 4; StatText { - text: "Engine: " + root.engineFrameTime.toFixed(1) + " ms" + text: "Render Engine: " + root.engineFrameTime.toFixed(1) + " ms" + } + StatText { + visible: root.expanded + text: root.renderEngineStats } StatText { text: "Batch: " + root.batchFrameTime.toFixed(1) + " ms" diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index bbc8de5987..ff42ed09e7 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -502,10 +502,39 @@ void Stats::updateStats(bool force) { _gameUpdateStats = ""; emit gameUpdateStatsChanged(); } + + itr = allRecords.find("/paintGL/display/EngineRun/Engine"); + std::priority_queue renderEngineStats; + if (itr != allRecords.end()) { + float dt = (float)itr.value().getMovingAverage() / (float)USECS_PER_MSEC; + _renderEngineStats = QString("/render = %1 ms").arg(dt); + + QVector categories = { "RenderMainView", "SecondaryCameraJob", "UpdateScene"}; + for (int32_t j = 0; j < categories.size(); ++j) { + QString recordKey = "/paintGL/display/EngineRun/Engine/" + categories[j]; + itr = allRecords.find(recordKey); + if (itr != allRecords.end()) { + float dt = (float)itr.value().getMovingAverage() / (float)USECS_PER_MSEC; + QString message = QString("\n %1 = %2").arg(categories[j]).arg(dt); + renderEngineStats.push(SortableStat(message, dt)); + } + } + while (!renderEngineStats.empty()) { + SortableStat stat = renderEngineStats.top(); + _renderEngineStats += stat.message; + renderEngineStats.pop(); + } + emit renderEngineStatsChanged(); + } else if (_renderEngineStats != "") { + _renderEngineStats = ""; + emit renderEngineStatsChanged(); + } } else if (_showGameUpdateStats) { _showGameUpdateStats = false; _gameUpdateStats = ""; + _renderEngineStats = ""; emit gameUpdateStatsChanged(); + emit renderEngineStatsChanged(); } } diff --git a/interface/src/ui/Stats.h b/interface/src/ui/Stats.h index af3189f20b..e5fc0beaf6 100644 --- a/interface/src/ui/Stats.h +++ b/interface/src/ui/Stats.h @@ -106,6 +106,7 @@ class Stats : public QQuickItem { STATS_PROPERTY(QString, lodStatus, QString()) STATS_PROPERTY(QString, timingStats, QString()) STATS_PROPERTY(QString, gameUpdateStats, QString()) + STATS_PROPERTY(QString, renderEngineStats, QString()) STATS_PROPERTY(int, serverElements, 0) STATS_PROPERTY(int, serverInternal, 0) STATS_PROPERTY(int, serverLeaves, 0) @@ -239,6 +240,7 @@ signals: void localLeavesChanged(); void timingStatsChanged(); void gameUpdateStatsChanged(); + void renderEngineStatsChanged(); void glContextSwapchainMemoryChanged(); void qmlTextureMemoryChanged(); void texturePendingTransfersChanged();