diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index 5f3b67ab53..069a8d6fd2 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -467,28 +467,13 @@ void Stats::display( horizontalOffset += 5; // Model/Entity render details - EntityTreeRenderer* entities = Application::getInstance()->getEntities(); octreeStats.str(""); - octreeStats << "Entity Items rendered: " << _renderDetails._itemsRendered - << " / Out of view:" << _renderDetails._itemsOutOfView - << " / Too small:" << _renderDetails._itemsTooSmall; + octreeStats << "Triangles: " << _renderDetails._trianglesRendered + << " / Quads:" << _renderDetails._quadsRendered + << " / Material Switches:" << _renderDetails._materialSwitches; drawText(horizontalOffset, verticalOffset, scale, rotation, font, (char*)octreeStats.str().c_str(), color); if (_expanded) { - octreeStats.str(""); - octreeStats << " Meshes rendered: " << _renderDetails._meshesRendered - << " / Out of view:" << _renderDetails._meshesOutOfView - << " / Too small:" << _renderDetails._meshesTooSmall; - verticalOffset += STATS_PELS_PER_LINE; - drawText(horizontalOffset, verticalOffset, scale, rotation, font, (char*)octreeStats.str().c_str(), color); - - octreeStats.str(""); - octreeStats << " Triangles: " << _renderDetails._trianglesRendered - << " / Quads:" << _renderDetails._quadsRendered - << " / Material Switches:" << _renderDetails._materialSwitches; - verticalOffset += STATS_PELS_PER_LINE; - drawText(horizontalOffset, verticalOffset, scale, rotation, font, (char*)octreeStats.str().c_str(), color); - octreeStats.str(""); octreeStats << " Mesh Parts Rendered Opaque: " << _renderDetails._opaqueMeshPartsRendered << " / Translucent:" << _renderDetails._translucentMeshPartsRendered; diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index 02a3747cec..6446194452 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -654,7 +654,6 @@ void EntityTreeRenderer::renderProxies(EntityItemPointer entity, RenderArgs* arg } void EntityTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args) { - args->_outsideEngineDetails._elementsTouched++; // actually render it here... // we need to iterate the actual entityItems of the element EntityTreeElement* entityTreeElement = static_cast(element); @@ -719,15 +718,10 @@ void EntityTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args) glower = new Glower(args, entityItem->getGlowLevel()); } entityItem->render(args); - args->_outsideEngineDetails._itemsRendered++; if (glower) { delete glower; } - } else { - args->_outsideEngineDetails._itemsTooSmall++; } - } else { - args->_outsideEngineDetails._itemsOutOfView++; } } } diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp index 6f4b9bca9e..9c21c1a21a 100644 --- a/libraries/render-utils/src/Model.cpp +++ b/libraries/render-utils/src/Model.cpp @@ -1118,11 +1118,6 @@ bool Model::renderCore(RenderArgs* args, float alpha) { // restore all the default material settings _viewState->setupWorldLight(); - if (args) { - args->_outsideEngineDetails._translucentMeshPartsRendered = translucentMeshPartsRendered; - args->_outsideEngineDetails._opaqueMeshPartsRendered = opaqueMeshPartsRendered; - } - #ifdef WANT_DEBUG_MESHBOXES renderDebugMeshBoxes(); #endif @@ -2189,11 +2184,6 @@ void Model::endScene(RenderArgs* args) { // Back to no program GLBATCH(glUseProgram)(0); - if (args) { - args->_outsideEngineDetails._translucentMeshPartsRendered = translucentParts; - args->_outsideEngineDetails._opaqueMeshPartsRendered = opaqueMeshPartsRendered; - } - } // Render! @@ -2307,8 +2297,6 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran pickPrograms(batch, mode, translucent, alphaThreshold, hasLightmap, hasTangents, hasSpecular, isSkinned, wireframe, args, locations); - - int meshPartsRendered = 0; updateVisibleJointStates(); // if our index is ever out of range for either meshes or networkMeshes, then skip it, and set our _meshGroupsKnown @@ -2438,16 +2426,14 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran float emissiveOffset = part.emissiveParams.x; float emissiveScale = part.emissiveParams.y; GLBATCH(glUniform2f)(locations->emissiveParams, emissiveOffset, emissiveScale); - + Texture* emissiveMap = networkPart.emissiveTexture.data(); batch.setUniformTexture(locations->emissiveTextureUnit, !emissiveMap ? - textureCache->getWhiteTexture() : emissiveMap->getGPUTexture()); + textureCache->getWhiteTexture() : emissiveMap->getGPUTexture()); } } } - meshPartsRendered++; - if (part.quadIndices.size() > 0) { batch.drawIndexed(gpu::QUADS, part.quadIndices.size(), offset); offset += part.quadIndices.size() * sizeof(int); @@ -2463,6 +2449,12 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran const int INDICES_PER_QUAD = 4; args->_details._trianglesRendered += part.triangleIndices.size() / INDICES_PER_TRIANGLE; args->_details._quadsRendered += part.quadIndices.size() / INDICES_PER_QUAD; + + if (translucent) { + args->_details._translucentMeshPartsRendered++; + } else { + args->_details._opaqueMeshPartsRendered++; + } } } @@ -2681,8 +2673,6 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod // if we got here, then check to see if this mesh is in view if (args) { bool shouldRender = true; - args->_outsideEngineDetails._meshesConsidered++; - if (args->_viewFrustum) { shouldRender = forceRenderMeshes || @@ -2692,17 +2682,10 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod float distance = args->_viewFrustum->distanceToCamera(_calculatedMeshBoxes.at(i).calcCenter()); shouldRender = !_viewState ? false : _viewState->shouldRenderMesh(_calculatedMeshBoxes.at(i).getLargestDimension(), distance); - if (!shouldRender) { - args->_outsideEngineDetails._meshesTooSmall++; - } - } else { - args->_outsideEngineDetails._meshesOutOfView++; } } - if (shouldRender) { - args->_outsideEngineDetails._meshesRendered++; - } else { + if (!shouldRender) { continue; // skip this mesh } } @@ -2793,11 +2776,6 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod batch.setUniformTexture(locations->specularTextureUnit, !specularMap ? textureCache->getWhiteTexture() : specularMap->getGPUTexture()); } - - if (args) { - args->_outsideEngineDetails._materialSwitches++; - } - } // HACK: For unkwon reason (yet!) this code that should be assigned only if the material changes need to be called for every @@ -2828,12 +2806,6 @@ int Model::renderMeshesFromList(QVector& list, gpu::Batch& batch, RenderMod offset += part.triangleIndices.size() * sizeof(int); } - if (args) { - const int INDICES_PER_TRIANGLE = 3; - const int INDICES_PER_QUAD = 4; - args->_outsideEngineDetails._trianglesRendered += part.triangleIndices.size() / INDICES_PER_TRIANGLE; - args->_outsideEngineDetails._quadsRendered += part.quadIndices.size() / INDICES_PER_QUAD; - } } } diff --git a/libraries/render/src/render/DrawTask.cpp b/libraries/render/src/render/DrawTask.cpp index 55e489d5ae..f396fb45ab 100755 --- a/libraries/render/src/render/DrawTask.cpp +++ b/libraries/render/src/render/DrawTask.cpp @@ -63,8 +63,6 @@ void render::cullItems(const SceneContextPointer& sceneContext, const RenderCont auto& scene = sceneContext->_scene; RenderArgs* args = renderContext->args; - - int startingSize = outItems.size(); // Culling / LOD for (auto id : inItems) { @@ -81,18 +79,11 @@ void render::cullItems(const SceneContextPointer& sceneContext, const RenderCont bool outOfView = args->_viewFrustum->boxInFrustum(bound) == ViewFrustum::OUTSIDE; if (!outOfView) { bool bigEnoughToRender = (args->_shouldRender) ? args->_shouldRender(args, bound) : true; - if (bigEnoughToRender) { outItems.push_back(id); // One more Item to render - } else { - args->_details._itemsTooSmall++; } - } else { - args->_details._itemsOutOfView++; } } - - args->_details._itemsRendered += (outItems.size() - startingSize); } struct ItemBound { diff --git a/libraries/shared/src/RenderArgs.h b/libraries/shared/src/RenderArgs.h index 1bce99907c..b2a0d75cd6 100644 --- a/libraries/shared/src/RenderArgs.h +++ b/libraries/shared/src/RenderArgs.h @@ -23,16 +23,6 @@ class Context; } struct RenderDetails { - int _elementsTouched = 0; - int _itemsRendered = 0; - int _itemsOutOfView = 0; - int _itemsTooSmall = 0; - - int _meshesConsidered = 0; - int _meshesRendered = 0; - int _meshesOutOfView = 0; - int _meshesTooSmall = 0; - int _materialSwitches = 0; int _trianglesRendered = 0; int _quadsRendered = 0; @@ -89,7 +79,6 @@ public: ShoudRenderFunctor _shouldRender; RenderDetails _details; - RenderDetails _outsideEngineDetails; float _alphaThreshold = 0.5f; };