mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 22:16:39 +02:00
making sure the proj and view matrix are correctly assigned
This commit is contained in:
parent
901717fb2c
commit
453fa87654
5 changed files with 40 additions and 17 deletions
|
@ -34,6 +34,7 @@
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
void renderWorldBox() {
|
void renderWorldBox() {
|
||||||
|
return;
|
||||||
auto geometryCache = DependencyManager::get<GeometryCache>();
|
auto geometryCache = DependencyManager::get<GeometryCache>();
|
||||||
|
|
||||||
// Show edge of world
|
// Show edge of world
|
||||||
|
|
|
@ -45,6 +45,9 @@
|
||||||
#include "Util.h"
|
#include "Util.h"
|
||||||
#include "InterfaceLogging.h"
|
#include "InterfaceLogging.h"
|
||||||
|
|
||||||
|
#include "gpu/GLBackend.h"
|
||||||
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
const glm::vec3 DEFAULT_UP_DIRECTION(0.0f, 1.0f, 0.0f);
|
const glm::vec3 DEFAULT_UP_DIRECTION(0.0f, 1.0f, 0.0f);
|
||||||
|
@ -1472,7 +1475,8 @@ void MyAvatar::maybeUpdateBillboard() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RenderArgs renderArgs;
|
gpu::Context context(new gpu::GLBackend());
|
||||||
|
RenderArgs renderArgs(&context);
|
||||||
QImage image = Application::getInstance()->renderAvatarBillboard(&renderArgs);
|
QImage image = Application::getInstance()->renderAvatarBillboard(&renderArgs);
|
||||||
_billboard.clear();
|
_billboard.clear();
|
||||||
QBuffer buffer(&_billboard);
|
QBuffer buffer(&_billboard);
|
||||||
|
|
|
@ -523,9 +523,9 @@ void EntityTreeRenderer::render(RenderArgs* renderArgs) {
|
||||||
Model::endScene(renderArgs);
|
Model::endScene(renderArgs);
|
||||||
_tree->unlock();
|
_tree->unlock();
|
||||||
|
|
||||||
glPushMatrix();
|
// glPushMatrix();
|
||||||
renderArgs->_context->render(batch);
|
// renderArgs->_context->render(batch);
|
||||||
glPopMatrix();
|
// glPopMatrix();
|
||||||
|
|
||||||
renderArgs->_batch = nullptr;
|
renderArgs->_batch = nullptr;
|
||||||
|
|
||||||
|
|
|
@ -2232,7 +2232,7 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran
|
||||||
}
|
}
|
||||||
|
|
||||||
// _transforms[0] = _viewState->getViewTransform();
|
// _transforms[0] = _viewState->getViewTransform();
|
||||||
_transforms[0].evalFromRawMatrix(args->_viewFrustum->getView()); //_viewState->getViewTransform();
|
args->_viewFrustum->evalViewTransform(_transforms[0]);
|
||||||
|
|
||||||
// apply entity translation offset to the viewTransform in one go (it's a preTranslate because viewTransform goes from world to eye space)
|
// apply entity translation offset to the viewTransform in one go (it's a preTranslate because viewTransform goes from world to eye space)
|
||||||
_transforms[0].preTranslate(-_translation);
|
_transforms[0].preTranslate(-_translation);
|
||||||
|
|
|
@ -267,12 +267,15 @@ template <> void render::jobRun(const DrawOpaque& job, const SceneContextPointer
|
||||||
|
|
||||||
|
|
||||||
RenderArgs* args = renderContext->args;
|
RenderArgs* args = renderContext->args;
|
||||||
gpu::Batch theBatch;
|
gpu::Batch batch;
|
||||||
args->_batch = &theBatch;
|
args->_batch = &batch;
|
||||||
|
|
||||||
glm::mat4 proj;
|
glm::mat4 projMat;
|
||||||
args->_viewFrustum->evalProjectionMatrix(proj);
|
Transform viewMat;
|
||||||
theBatch.setProjectionTransform(proj);
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
batch.setProjectionTransform(projMat);
|
||||||
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
renderContext->args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
renderContext->args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
||||||
{
|
{
|
||||||
|
@ -281,7 +284,7 @@ template <> void render::jobRun(const DrawOpaque& job, const SceneContextPointer
|
||||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT0;
|
buffers[bufferCount++] = GL_COLOR_ATTACHMENT0;
|
||||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT1;
|
buffers[bufferCount++] = GL_COLOR_ATTACHMENT1;
|
||||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT2;
|
buffers[bufferCount++] = GL_COLOR_ATTACHMENT2;
|
||||||
theBatch._glDrawBuffers(bufferCount, buffers);
|
batch._glDrawBuffers(bufferCount, buffers);
|
||||||
}
|
}
|
||||||
|
|
||||||
renderItems(sceneContext, renderContext, renderedItems);
|
renderItems(sceneContext, renderContext, renderedItems);
|
||||||
|
@ -316,8 +319,15 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
|
||||||
renderedItems = sortedItems;
|
renderedItems = sortedItems;
|
||||||
|
|
||||||
RenderArgs* args = renderContext->args;
|
RenderArgs* args = renderContext->args;
|
||||||
gpu::Batch theBatch;
|
gpu::Batch batch;
|
||||||
args->_batch = &theBatch;
|
args->_batch = &batch;
|
||||||
|
|
||||||
|
glm::mat4 projMat;
|
||||||
|
Transform viewMat;
|
||||||
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
batch.setProjectionTransform(projMat);
|
||||||
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
args->_renderMode = RenderArgs::NORMAL_RENDER_MODE;
|
||||||
|
|
||||||
|
@ -330,7 +340,7 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
|
||||||
int bufferCount = 0;
|
int bufferCount = 0;
|
||||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT1;
|
buffers[bufferCount++] = GL_COLOR_ATTACHMENT1;
|
||||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT2;
|
buffers[bufferCount++] = GL_COLOR_ATTACHMENT2;
|
||||||
theBatch._glDrawBuffers(bufferCount, buffers);
|
batch._glDrawBuffers(bufferCount, buffers);
|
||||||
args->_alphaThreshold = MOSTLY_OPAQUE_THRESHOLD;
|
args->_alphaThreshold = MOSTLY_OPAQUE_THRESHOLD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,7 +350,7 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
|
||||||
GLenum buffers[3];
|
GLenum buffers[3];
|
||||||
int bufferCount = 0;
|
int bufferCount = 0;
|
||||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT0;
|
buffers[bufferCount++] = GL_COLOR_ATTACHMENT0;
|
||||||
theBatch._glDrawBuffers(bufferCount, buffers);
|
batch._glDrawBuffers(bufferCount, buffers);
|
||||||
args->_alphaThreshold = TRANSPARENT_ALPHA_THRESHOLD;
|
args->_alphaThreshold = TRANSPARENT_ALPHA_THRESHOLD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -395,8 +405,16 @@ template <> void render::jobRun(const DrawBackground& job, const SceneContextPoi
|
||||||
inItems.push_back(id);
|
inItems.push_back(id);
|
||||||
}
|
}
|
||||||
RenderArgs* args = renderContext->args;
|
RenderArgs* args = renderContext->args;
|
||||||
gpu::Batch theBatch;
|
gpu::Batch batch;
|
||||||
args->_batch = &theBatch;
|
args->_batch = &batch;
|
||||||
|
|
||||||
|
glm::mat4 projMat;
|
||||||
|
Transform viewMat;
|
||||||
|
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||||
|
args->_viewFrustum->evalViewTransform(viewMat);
|
||||||
|
batch.setProjectionTransform(projMat);
|
||||||
|
batch.setViewTransform(viewMat);
|
||||||
|
|
||||||
renderItems(sceneContext, renderContext, inItems);
|
renderItems(sceneContext, renderContext, inItems);
|
||||||
args->_context->render((*args->_batch));
|
args->_context->render((*args->_batch));
|
||||||
args->_batch = nullptr;
|
args->_batch = nullptr;
|
||||||
|
|
Loading…
Reference in a new issue