Remove deprecated render stats

This commit is contained in:
Atlante45 2015-06-04 14:47:04 +02:00
parent 41be3fee87
commit a4340b17e9
5 changed files with 12 additions and 81 deletions

View file

@ -467,28 +467,13 @@ void Stats::display(
horizontalOffset += 5; horizontalOffset += 5;
// Model/Entity render details // Model/Entity render details
EntityTreeRenderer* entities = Application::getInstance()->getEntities();
octreeStats.str(""); octreeStats.str("");
octreeStats << "Entity Items rendered: " << _renderDetails._itemsRendered octreeStats << "Triangles: " << _renderDetails._trianglesRendered
<< " / Out of view:" << _renderDetails._itemsOutOfView << " / Quads:" << _renderDetails._quadsRendered
<< " / Too small:" << _renderDetails._itemsTooSmall; << " / Material Switches:" << _renderDetails._materialSwitches;
drawText(horizontalOffset, verticalOffset, scale, rotation, font, (char*)octreeStats.str().c_str(), color); drawText(horizontalOffset, verticalOffset, scale, rotation, font, (char*)octreeStats.str().c_str(), color);
if (_expanded) { 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.str("");
octreeStats << " Mesh Parts Rendered Opaque: " << _renderDetails._opaqueMeshPartsRendered octreeStats << " Mesh Parts Rendered Opaque: " << _renderDetails._opaqueMeshPartsRendered
<< " / Translucent:" << _renderDetails._translucentMeshPartsRendered; << " / Translucent:" << _renderDetails._translucentMeshPartsRendered;

View file

@ -654,7 +654,6 @@ void EntityTreeRenderer::renderProxies(EntityItemPointer entity, RenderArgs* arg
} }
void EntityTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args) { void EntityTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args) {
args->_outsideEngineDetails._elementsTouched++;
// actually render it here... // actually render it here...
// we need to iterate the actual entityItems of the element // we need to iterate the actual entityItems of the element
EntityTreeElement* entityTreeElement = static_cast<EntityTreeElement*>(element); EntityTreeElement* entityTreeElement = static_cast<EntityTreeElement*>(element);
@ -719,15 +718,10 @@ void EntityTreeRenderer::renderElement(OctreeElement* element, RenderArgs* args)
glower = new Glower(args, entityItem->getGlowLevel()); glower = new Glower(args, entityItem->getGlowLevel());
} }
entityItem->render(args); entityItem->render(args);
args->_outsideEngineDetails._itemsRendered++;
if (glower) { if (glower) {
delete glower; delete glower;
} }
} else {
args->_outsideEngineDetails._itemsTooSmall++;
} }
} else {
args->_outsideEngineDetails._itemsOutOfView++;
} }
} }
} }

View file

@ -1118,11 +1118,6 @@ bool Model::renderCore(RenderArgs* args, float alpha) {
// restore all the default material settings // restore all the default material settings
_viewState->setupWorldLight(); _viewState->setupWorldLight();
if (args) {
args->_outsideEngineDetails._translucentMeshPartsRendered = translucentMeshPartsRendered;
args->_outsideEngineDetails._opaqueMeshPartsRendered = opaqueMeshPartsRendered;
}
#ifdef WANT_DEBUG_MESHBOXES #ifdef WANT_DEBUG_MESHBOXES
renderDebugMeshBoxes(); renderDebugMeshBoxes();
#endif #endif
@ -2189,11 +2184,6 @@ void Model::endScene(RenderArgs* args) {
// Back to no program // Back to no program
GLBATCH(glUseProgram)(0); GLBATCH(glUseProgram)(0);
if (args) {
args->_outsideEngineDetails._translucentMeshPartsRendered = translucentParts;
args->_outsideEngineDetails._opaqueMeshPartsRendered = opaqueMeshPartsRendered;
}
} }
// Render! // 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, pickPrograms(batch, mode, translucent, alphaThreshold, hasLightmap, hasTangents, hasSpecular, isSkinned, wireframe,
args, locations); args, locations);
int meshPartsRendered = 0;
updateVisibleJointStates(); updateVisibleJointStates();
// if our index is ever out of range for either meshes or networkMeshes, then skip it, and set our _meshGroupsKnown // 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 emissiveOffset = part.emissiveParams.x;
float emissiveScale = part.emissiveParams.y; float emissiveScale = part.emissiveParams.y;
GLBATCH(glUniform2f)(locations->emissiveParams, emissiveOffset, emissiveScale); GLBATCH(glUniform2f)(locations->emissiveParams, emissiveOffset, emissiveScale);
Texture* emissiveMap = networkPart.emissiveTexture.data(); Texture* emissiveMap = networkPart.emissiveTexture.data();
batch.setUniformTexture(locations->emissiveTextureUnit, !emissiveMap ? batch.setUniformTexture(locations->emissiveTextureUnit, !emissiveMap ?
textureCache->getWhiteTexture() : emissiveMap->getGPUTexture()); textureCache->getWhiteTexture() : emissiveMap->getGPUTexture());
} }
} }
} }
meshPartsRendered++;
if (part.quadIndices.size() > 0) { if (part.quadIndices.size() > 0) {
batch.drawIndexed(gpu::QUADS, part.quadIndices.size(), offset); batch.drawIndexed(gpu::QUADS, part.quadIndices.size(), offset);
offset += part.quadIndices.size() * sizeof(int); 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; const int INDICES_PER_QUAD = 4;
args->_details._trianglesRendered += part.triangleIndices.size() / INDICES_PER_TRIANGLE; args->_details._trianglesRendered += part.triangleIndices.size() / INDICES_PER_TRIANGLE;
args->_details._quadsRendered += part.quadIndices.size() / INDICES_PER_QUAD; 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<int>& list, gpu::Batch& batch, RenderMod
// if we got here, then check to see if this mesh is in view // if we got here, then check to see if this mesh is in view
if (args) { if (args) {
bool shouldRender = true; bool shouldRender = true;
args->_outsideEngineDetails._meshesConsidered++;
if (args->_viewFrustum) { if (args->_viewFrustum) {
shouldRender = forceRenderMeshes || shouldRender = forceRenderMeshes ||
@ -2692,17 +2682,10 @@ int Model::renderMeshesFromList(QVector<int>& list, gpu::Batch& batch, RenderMod
float distance = args->_viewFrustum->distanceToCamera(_calculatedMeshBoxes.at(i).calcCenter()); float distance = args->_viewFrustum->distanceToCamera(_calculatedMeshBoxes.at(i).calcCenter());
shouldRender = !_viewState ? false : _viewState->shouldRenderMesh(_calculatedMeshBoxes.at(i).getLargestDimension(), shouldRender = !_viewState ? false : _viewState->shouldRenderMesh(_calculatedMeshBoxes.at(i).getLargestDimension(),
distance); distance);
if (!shouldRender) {
args->_outsideEngineDetails._meshesTooSmall++;
}
} else {
args->_outsideEngineDetails._meshesOutOfView++;
} }
} }
if (shouldRender) { if (!shouldRender) {
args->_outsideEngineDetails._meshesRendered++;
} else {
continue; // skip this mesh continue; // skip this mesh
} }
} }
@ -2793,11 +2776,6 @@ int Model::renderMeshesFromList(QVector<int>& list, gpu::Batch& batch, RenderMod
batch.setUniformTexture(locations->specularTextureUnit, !specularMap ? batch.setUniformTexture(locations->specularTextureUnit, !specularMap ?
textureCache->getWhiteTexture() : specularMap->getGPUTexture()); 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 // 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<int>& list, gpu::Batch& batch, RenderMod
offset += part.triangleIndices.size() * sizeof(int); 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;
}
} }
} }

View file

@ -63,8 +63,6 @@ void render::cullItems(const SceneContextPointer& sceneContext, const RenderCont
auto& scene = sceneContext->_scene; auto& scene = sceneContext->_scene;
RenderArgs* args = renderContext->args; RenderArgs* args = renderContext->args;
int startingSize = outItems.size();
// Culling / LOD // Culling / LOD
for (auto id : inItems) { for (auto id : inItems) {
@ -81,18 +79,11 @@ void render::cullItems(const SceneContextPointer& sceneContext, const RenderCont
bool outOfView = args->_viewFrustum->boxInFrustum(bound) == ViewFrustum::OUTSIDE; bool outOfView = args->_viewFrustum->boxInFrustum(bound) == ViewFrustum::OUTSIDE;
if (!outOfView) { if (!outOfView) {
bool bigEnoughToRender = (args->_shouldRender) ? args->_shouldRender(args, bound) : true; bool bigEnoughToRender = (args->_shouldRender) ? args->_shouldRender(args, bound) : true;
if (bigEnoughToRender) { if (bigEnoughToRender) {
outItems.push_back(id); // One more Item to render 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 { struct ItemBound {

View file

@ -23,16 +23,6 @@ class Context;
} }
struct RenderDetails { 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 _materialSwitches = 0;
int _trianglesRendered = 0; int _trianglesRendered = 0;
int _quadsRendered = 0; int _quadsRendered = 0;
@ -89,7 +79,6 @@ public:
ShoudRenderFunctor _shouldRender; ShoudRenderFunctor _shouldRender;
RenderDetails _details; RenderDetails _details;
RenderDetails _outsideEngineDetails;
float _alphaThreshold = 0.5f; float _alphaThreshold = 0.5f;
}; };