mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-15 11:16:46 +02:00
Merge branch 'master' of https://github.com/highfidelity/hifi
This commit is contained in:
commit
df8e1ac467
4 changed files with 24 additions and 12 deletions
|
@ -957,12 +957,15 @@ void Application::paintGL() {
|
||||||
displaySide(&renderArgs, _myCamera);
|
displaySide(&renderArgs, _myCamera);
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
|
|
||||||
|
renderArgs._renderMode = RenderArgs::MIRROR_RENDER_MODE;
|
||||||
if (Menu::getInstance()->isOptionChecked(MenuOption::FullscreenMirror)) {
|
if (Menu::getInstance()->isOptionChecked(MenuOption::FullscreenMirror)) {
|
||||||
_rearMirrorTools->render(&renderArgs, true, _glWidget->mapFromGlobal(QCursor::pos()));
|
_rearMirrorTools->render(&renderArgs, true, _glWidget->mapFromGlobal(QCursor::pos()));
|
||||||
} else if (Menu::getInstance()->isOptionChecked(MenuOption::Mirror)) {
|
} else if (Menu::getInstance()->isOptionChecked(MenuOption::Mirror)) {
|
||||||
renderRearViewMirror(&renderArgs, _mirrorViewRect);
|
renderRearViewMirror(&renderArgs, _mirrorViewRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderArgs._renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
||||||
|
|
||||||
auto finalFbo = DependencyManager::get<GlowEffect>()->render(&renderArgs);
|
auto finalFbo = DependencyManager::get<GlowEffect>()->render(&renderArgs);
|
||||||
|
|
||||||
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
|
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
|
||||||
|
@ -3440,7 +3443,6 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se
|
||||||
"Application::displaySide() ... entities...");
|
"Application::displaySide() ... entities...");
|
||||||
|
|
||||||
RenderArgs::DebugFlags renderDebugFlags = RenderArgs::RENDER_DEBUG_NONE;
|
RenderArgs::DebugFlags renderDebugFlags = RenderArgs::RENDER_DEBUG_NONE;
|
||||||
RenderArgs::RenderMode renderMode = RenderArgs::DEFAULT_RENDER_MODE;
|
|
||||||
|
|
||||||
if (Menu::getInstance()->isOptionChecked(MenuOption::PhysicsShowHulls)) {
|
if (Menu::getInstance()->isOptionChecked(MenuOption::PhysicsShowHulls)) {
|
||||||
renderDebugFlags = (RenderArgs::DebugFlags) (renderDebugFlags | (int) RenderArgs::RENDER_DEBUG_HULLS);
|
renderDebugFlags = (RenderArgs::DebugFlags) (renderDebugFlags | (int) RenderArgs::RENDER_DEBUG_HULLS);
|
||||||
|
@ -3449,10 +3451,6 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se
|
||||||
renderDebugFlags =
|
renderDebugFlags =
|
||||||
(RenderArgs::DebugFlags) (renderDebugFlags | (int) RenderArgs::RENDER_DEBUG_SIMULATION_OWNERSHIP);
|
(RenderArgs::DebugFlags) (renderDebugFlags | (int) RenderArgs::RENDER_DEBUG_SIMULATION_OWNERSHIP);
|
||||||
}
|
}
|
||||||
if (theCamera.getMode() == CAMERA_MODE_MIRROR) {
|
|
||||||
renderMode = RenderArgs::MIRROR_RENDER_MODE;
|
|
||||||
}
|
|
||||||
renderArgs->_renderMode = renderMode;
|
|
||||||
renderArgs->_debugFlags = renderDebugFlags;
|
renderArgs->_debugFlags = renderDebugFlags;
|
||||||
_entities.render(renderArgs);
|
_entities.render(renderArgs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2082,6 +2082,9 @@ void Model::pickPrograms(gpu::Batch& batch, RenderMode mode, bool translucent, f
|
||||||
Locations*& locations) {
|
Locations*& locations) {
|
||||||
|
|
||||||
RenderKey key(mode, translucent, alphaThreshold, hasLightmap, hasTangents, hasSpecular, isSkinned, isWireframe);
|
RenderKey key(mode, translucent, alphaThreshold, hasLightmap, hasTangents, hasSpecular, isSkinned, isWireframe);
|
||||||
|
if (mode == RenderArgs::MIRROR_RENDER_MODE) {
|
||||||
|
key = RenderKey(key.getRaw() | RenderKey::IS_MIRROR);
|
||||||
|
}
|
||||||
auto pipeline = _renderPipelineLib.find(key.getRaw());
|
auto pipeline = _renderPipelineLib.find(key.getRaw());
|
||||||
if (pipeline == _renderPipelineLib.end()) {
|
if (pipeline == _renderPipelineLib.end()) {
|
||||||
qDebug() << "No good, couldn't find a pipeline from the key ?" << key.getRaw();
|
qDebug() << "No good, couldn't find a pipeline from the key ?" << key.getRaw();
|
||||||
|
|
|
@ -136,10 +136,12 @@ template <> void render::jobRun(const DrawOpaqueDeferred& job, const SceneContex
|
||||||
Transform viewMat;
|
Transform viewMat;
|
||||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
args->_viewFrustum->evalViewTransform(viewMat);
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
if (args->_renderMode == RenderArgs::MIRROR_RENDER_MODE) {
|
||||||
|
viewMat.postScale(glm::vec3(-1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
batch.setProjectionTransform(projMat);
|
batch.setProjectionTransform(projMat);
|
||||||
batch.setViewTransform(viewMat);
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
renderContext->args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
|
||||||
{
|
{
|
||||||
GLenum buffers[3];
|
GLenum buffers[3];
|
||||||
int bufferCount = 0;
|
int bufferCount = 0;
|
||||||
|
@ -204,11 +206,12 @@ template <> void render::jobRun(const DrawTransparentDeferred& job, const SceneC
|
||||||
Transform viewMat;
|
Transform viewMat;
|
||||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
args->_viewFrustum->evalViewTransform(viewMat);
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
if (args->_renderMode == RenderArgs::MIRROR_RENDER_MODE) {
|
||||||
|
viewMat.postScale(glm::vec3(-1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
batch.setProjectionTransform(projMat);
|
batch.setProjectionTransform(projMat);
|
||||||
batch.setViewTransform(viewMat);
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
|
||||||
|
|
||||||
const float TRANSPARENT_ALPHA_THRESHOLD = 0.0f;
|
const float TRANSPARENT_ALPHA_THRESHOLD = 0.0f;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -263,7 +263,6 @@ template <> void render::jobRun(const DrawOpaque& job, const SceneContextPointer
|
||||||
|
|
||||||
renderContext->_numDrawnOpaqueItems = renderedItems.size();
|
renderContext->_numDrawnOpaqueItems = renderedItems.size();
|
||||||
|
|
||||||
|
|
||||||
ItemIDsBounds sortedItems;
|
ItemIDsBounds sortedItems;
|
||||||
sortedItems.reserve(culledItems.size());
|
sortedItems.reserve(culledItems.size());
|
||||||
if (renderContext->_sortOpaque) {
|
if (renderContext->_sortOpaque) {
|
||||||
|
@ -280,10 +279,12 @@ template <> void render::jobRun(const DrawOpaque& job, const SceneContextPointer
|
||||||
Transform viewMat;
|
Transform viewMat;
|
||||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
args->_viewFrustum->evalViewTransform(viewMat);
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
if (args->_renderMode == RenderArgs::MIRROR_RENDER_MODE) {
|
||||||
|
viewMat.postScale(glm::vec3(-1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
batch.setProjectionTransform(projMat);
|
batch.setProjectionTransform(projMat);
|
||||||
batch.setViewTransform(viewMat);
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
renderContext->args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
|
||||||
{
|
{
|
||||||
GLenum buffers[3];
|
GLenum buffers[3];
|
||||||
int bufferCount = 0;
|
int bufferCount = 0;
|
||||||
|
@ -347,11 +348,12 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
|
||||||
Transform viewMat;
|
Transform viewMat;
|
||||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
args->_viewFrustum->evalViewTransform(viewMat);
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
if (args->_renderMode == RenderArgs::MIRROR_RENDER_MODE) {
|
||||||
|
viewMat.postScale(glm::vec3(-1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
batch.setProjectionTransform(projMat);
|
batch.setProjectionTransform(projMat);
|
||||||
batch.setViewTransform(viewMat);
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
|
||||||
|
|
||||||
const float MOSTLY_OPAQUE_THRESHOLD = 0.75f;
|
const float MOSTLY_OPAQUE_THRESHOLD = 0.75f;
|
||||||
const float TRANSPARENT_ALPHA_THRESHOLD = 0.0f;
|
const float TRANSPARENT_ALPHA_THRESHOLD = 0.0f;
|
||||||
|
|
||||||
|
@ -434,6 +436,9 @@ template <> void render::jobRun(const DrawBackground& job, const SceneContextPoi
|
||||||
Transform viewMat;
|
Transform viewMat;
|
||||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
args->_viewFrustum->evalViewTransform(viewMat);
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
if (args->_renderMode == RenderArgs::MIRROR_RENDER_MODE) {
|
||||||
|
viewMat.postScale(glm::vec3(-1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
batch.setProjectionTransform(projMat);
|
batch.setProjectionTransform(projMat);
|
||||||
batch.setViewTransform(viewMat);
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
|
@ -475,6 +480,9 @@ template <> void render::jobRun(const DrawPostLayered& job, const SceneContextPo
|
||||||
Transform viewMat;
|
Transform viewMat;
|
||||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
args->_viewFrustum->evalViewTransform(viewMat);
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
if (args->_renderMode == RenderArgs::MIRROR_RENDER_MODE) {
|
||||||
|
viewMat.postScale(glm::vec3(-1.0f, 1.0f, 1.0f));
|
||||||
|
}
|
||||||
batch.setProjectionTransform(projMat);
|
batch.setProjectionTransform(projMat);
|
||||||
batch.setViewTransform(viewMat);
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue