tuesday morning rendering poor performances networking issue

This commit is contained in:
Sam Gateau 2015-06-02 10:58:56 -07:00
parent cd7914ad9d
commit ef2d8a0dbe
3 changed files with 28 additions and 21 deletions

View file

@ -3464,6 +3464,26 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se
}); });
} }
if (!billboard) {
DependencyManager::get<DeferredLightingEffect>()->setAmbientLightMode(getRenderAmbientLight());
auto skyStage = DependencyManager::get<SceneScriptingInterface>()->getSkyStage();
DependencyManager::get<DeferredLightingEffect>()->setGlobalLight(skyStage->getSunLight()->getDirection(), skyStage->getSunLight()->getColor(), skyStage->getSunLight()->getIntensity(), skyStage->getSunLight()->getAmbientIntensity());
DependencyManager::get<DeferredLightingEffect>()->setGlobalAtmosphere(skyStage->getAtmosphere());
auto skybox = model::SkyboxPointer();
if (skyStage->getBackgroundMode() == model::SunSkyStage::SKY_BOX) {
skybox = skyStage->getSkybox();
}
DependencyManager::get<DeferredLightingEffect>()->setGlobalSkybox(skybox);
// Not needed anymore here, taken care off by the Engine
/*
PROFILE_RANGE("DeferredLighting");
PerformanceTimer perfTimer("lighting");
DependencyManager::get<DeferredLightingEffect>()->render();*/
}
{ {
PerformanceTimer perfTimer("SceneProcessPendingChanges"); PerformanceTimer perfTimer("SceneProcessPendingChanges");
_main3DScene->enqueuePendingChanges(pendingChanges); _main3DScene->enqueuePendingChanges(pendingChanges);
@ -3489,25 +3509,6 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se
} }
if (!billboard) {
DependencyManager::get<DeferredLightingEffect>()->setAmbientLightMode(getRenderAmbientLight());
auto skyStage = DependencyManager::get<SceneScriptingInterface>()->getSkyStage();
DependencyManager::get<DeferredLightingEffect>()->setGlobalLight(skyStage->getSunLight()->getDirection(), skyStage->getSunLight()->getColor(), skyStage->getSunLight()->getIntensity(), skyStage->getSunLight()->getAmbientIntensity());
DependencyManager::get<DeferredLightingEffect>()->setGlobalAtmosphere(skyStage->getAtmosphere());
auto skybox = model::SkyboxPointer();
if (skyStage->getBackgroundMode() == model::SunSkyStage::SKY_BOX) {
skybox = skyStage->getSkybox();
}
DependencyManager::get<DeferredLightingEffect>()->setGlobalSkybox(skybox);
// Not needed anymore here, taken care off by the Engine
/*
PROFILE_RANGE("DeferredLighting");
PerformanceTimer perfTimer("lighting");
DependencyManager::get<DeferredLightingEffect>()->render();*/
}
//Render the sixense lasers //Render the sixense lasers
if (Menu::getInstance()->isOptionChecked(MenuOption::SixenseLasers)) { if (Menu::getInstance()->isOptionChecked(MenuOption::SixenseLasers)) {

View file

@ -2313,7 +2313,7 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran
model::MaterialPointer material = part._material; model::MaterialPointer material = part._material;
if (material == nullptr) { if (material == nullptr) {
qCDebug(renderutils) << "WARNING: material == nullptr!!!"; // qCDebug(renderutils) << "WARNING: material == nullptr!!!";
} }
if (material != nullptr) { if (material != nullptr) {

View file

@ -94,6 +94,7 @@ bool LODManager::shouldRenderMesh(float largestDimension, float distanceToCamera
}*/ }*/
void render::cullItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const ItemIDs& inItems, ItemIDs& outItems) { void render::cullItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const ItemIDs& inItems, ItemIDs& outItems) {
PerformanceTimer perfTimer("cullItems");
assert(renderContext->args); assert(renderContext->args);
assert(renderContext->args->_viewFrustum); assert(renderContext->args->_viewFrustum);
@ -156,6 +157,7 @@ struct BackToFrontSort {
}; };
void render::depthSortItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, bool frontToBack, const ItemIDs& inItems, ItemIDs& outItems) { void render::depthSortItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, bool frontToBack, const ItemIDs& inItems, ItemIDs& outItems) {
PerformanceTimer perfTimer("depthSortItems");
assert(renderContext->args); assert(renderContext->args);
assert(renderContext->args->_viewFrustum); assert(renderContext->args->_viewFrustum);
@ -194,6 +196,7 @@ void render::depthSortItems(const SceneContextPointer& sceneContext, const Rende
} }
void render::renderItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const ItemIDs& inItems) { void render::renderItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const ItemIDs& inItems) {
PerformanceTimer perfTimer("renderItems");
auto& scene = sceneContext->_scene; auto& scene = sceneContext->_scene;
RenderArgs* args = renderContext->args; RenderArgs* args = renderContext->args;
// render // render
@ -300,7 +303,7 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
ItemIDs inItems; ItemIDs inItems;
inItems.reserve(items.size()); inItems.reserve(items.size());
for (auto id : items) { for (auto id : items) {
inItems.push_back(id); // inItems.push_back(id);
} }
ItemIDs& renderedItems = inItems; ItemIDs& renderedItems = inItems;
@ -397,4 +400,7 @@ template <> void render::jobRun(const DrawBackground& job, const SceneContextPoi
renderItems(sceneContext, renderContext, inItems); renderItems(sceneContext, renderContext, inItems);
args->_context->render((*args->_batch)); args->_context->render((*args->_batch));
args->_batch = nullptr; args->_batch = nullptr;
// Force the context sync
args->_context->syncCache();
} }