From b2f64b9362370afe78bfce2bdeab0e4f28c5c53d Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 12 Nov 2014 12:17:46 -0800 Subject: [PATCH] cleanup --- interface/src/renderer/Model.cpp | 52 ++++++++++++-------------------- interface/src/renderer/Model.h | 2 +- 2 files changed, 20 insertions(+), 34 deletions(-) diff --git a/interface/src/renderer/Model.cpp b/interface/src/renderer/Model.cpp index 3e9536a8db..7455e528b7 100644 --- a/interface/src/renderer/Model.cpp +++ b/interface/src/renderer/Model.cpp @@ -1475,13 +1475,12 @@ void Model::startScene() { _modelsInScene.clear(); } -void Model::endSceneSplitPass(RenderMode mode, RenderArgs* args) { +void Model::endScene(RenderMode mode, RenderArgs* args) { // first, do all the batch/GPU setup work.... // Let's introduce a gpu::Batch to capture all the calls to the graphics api gpu::Batch batch; - GLBATCH(glDisable)(GL_COLOR_MATERIAL); if (mode == DIFFUSE_RENDER_MODE || mode == NORMAL_RENDER_MODE) { @@ -1564,31 +1563,31 @@ void Model::endSceneSplitPass(RenderMode mode, RenderArgs* args) { GLBATCH(glDrawBuffers)(bufferCount, buffers); } - int translucentMeshPartsRendered = 0; + int translucentParts = 0; const float MOSTLY_OPAQUE_THRESHOLD = 0.75f; foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, false, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, false, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, false, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, false, true, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, true, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, true, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, true, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, false, true, true, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, false, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, false, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, false, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, false, true, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, true, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, true, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, false, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_OPAQUE_THRESHOLD, true, false, true, args); } GLBATCH(glDisable)(GL_ALPHA_TEST); @@ -1607,28 +1606,28 @@ void Model::endSceneSplitPass(RenderMode mode, RenderArgs* args) { if (mode == DEFAULT_RENDER_MODE || mode == DIFFUSE_RENDER_MODE) { const float MOSTLY_TRANSPARENT_THRESHOLD = 0.0f; foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, false, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, false, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, false, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, false, true, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, true, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, true, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, true, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, false, true, true, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, false, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, false, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, false, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, false, true, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, true, false, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, true, false, args); } foreach(Model* model, _modelsInScene) { - translucentMeshPartsRendered += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, false, true, args); + translucentParts += model->renderMeshes(batch, mode, true, MOSTLY_TRANSPARENT_THRESHOLD, true, false, true, args); } } @@ -1665,24 +1664,11 @@ void Model::endSceneSplitPass(RenderMode mode, RenderArgs* args) { Application::getInstance()->setupWorldLight(); if (args) { - args->_translucentMeshPartsRendered = translucentMeshPartsRendered; + args->_translucentMeshPartsRendered = translucentParts; args->_opaqueMeshPartsRendered = opaqueMeshPartsRendered; } } -void Model::endScene(RenderMode mode, RenderArgs* args) { - //endSceneSimple(mode, args); - endSceneSplitPass(mode, args); -} - -void Model::endSceneSimple(RenderMode mode, RenderArgs* args) { - // now, for each model in the scene, render the mesh portions - foreach(Model* model, _modelsInScene) { - float alpha = 1.0f; - model->render(alpha, mode, args); - } -} - bool Model::renderInScene(float alpha, RenderArgs* args) { // render the attachments foreach (Model* attachment, _attachments) { diff --git a/interface/src/renderer/Model.h b/interface/src/renderer/Model.h index d77501e0f9..bfe1475d4b 100644 --- a/interface/src/renderer/Model.h +++ b/interface/src/renderer/Model.h @@ -90,7 +90,6 @@ public: enum RenderMode { DEFAULT_RENDER_MODE, SHADOW_RENDER_MODE, DIFFUSE_RENDER_MODE, NORMAL_RENDER_MODE }; bool render(float alpha = 1.0f, RenderMode mode = DEFAULT_RENDER_MODE, RenderArgs* args = NULL); - bool renderCore(float alpha, RenderMode mode, RenderArgs* args); // Scene rendering support static void startScene(); @@ -403,6 +402,7 @@ private: // helper functions used by render() or renderInScene() void renderSetup(RenderArgs* args); + bool renderCore(float alpha, RenderMode mode, RenderArgs* args); int renderMeshes(gpu::Batch& batch, RenderMode mode, bool translucent, float alphaThreshold, bool hasTangents, bool hasSpecular, bool isSkinned, RenderArgs* args = NULL); };