mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 02:25:48 +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;
|
||||
|
||||
void renderWorldBox() {
|
||||
return;
|
||||
auto geometryCache = DependencyManager::get<GeometryCache>();
|
||||
|
||||
// Show edge of world
|
||||
|
|
|
@ -45,6 +45,9 @@
|
|||
#include "Util.h"
|
||||
#include "InterfaceLogging.h"
|
||||
|
||||
#include "gpu/GLBackend.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
const glm::vec3 DEFAULT_UP_DIRECTION(0.0f, 1.0f, 0.0f);
|
||||
|
@ -1472,7 +1475,8 @@ void MyAvatar::maybeUpdateBillboard() {
|
|||
return;
|
||||
}
|
||||
}
|
||||
RenderArgs renderArgs;
|
||||
gpu::Context context(new gpu::GLBackend());
|
||||
RenderArgs renderArgs(&context);
|
||||
QImage image = Application::getInstance()->renderAvatarBillboard(&renderArgs);
|
||||
_billboard.clear();
|
||||
QBuffer buffer(&_billboard);
|
||||
|
|
|
@ -523,9 +523,9 @@ void EntityTreeRenderer::render(RenderArgs* renderArgs) {
|
|||
Model::endScene(renderArgs);
|
||||
_tree->unlock();
|
||||
|
||||
glPushMatrix();
|
||||
renderArgs->_context->render(batch);
|
||||
glPopMatrix();
|
||||
// glPushMatrix();
|
||||
// renderArgs->_context->render(batch);
|
||||
// glPopMatrix();
|
||||
|
||||
renderArgs->_batch = nullptr;
|
||||
|
||||
|
|
|
@ -2232,7 +2232,7 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran
|
|||
}
|
||||
|
||||
// _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)
|
||||
_transforms[0].preTranslate(-_translation);
|
||||
|
|
|
@ -267,12 +267,15 @@ template <> void render::jobRun(const DrawOpaque& job, const SceneContextPointer
|
|||
|
||||
|
||||
RenderArgs* args = renderContext->args;
|
||||
gpu::Batch theBatch;
|
||||
args->_batch = &theBatch;
|
||||
gpu::Batch batch;
|
||||
args->_batch = &batch;
|
||||
|
||||
glm::mat4 proj;
|
||||
args->_viewFrustum->evalProjectionMatrix(proj);
|
||||
theBatch.setProjectionTransform(proj);
|
||||
glm::mat4 projMat;
|
||||
Transform viewMat;
|
||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||
args->_viewFrustum->evalViewTransform(viewMat);
|
||||
batch.setProjectionTransform(projMat);
|
||||
batch.setViewTransform(viewMat);
|
||||
|
||||
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_ATTACHMENT1;
|
||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT2;
|
||||
theBatch._glDrawBuffers(bufferCount, buffers);
|
||||
batch._glDrawBuffers(bufferCount, buffers);
|
||||
}
|
||||
|
||||
renderItems(sceneContext, renderContext, renderedItems);
|
||||
|
@ -316,8 +319,15 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
|
|||
renderedItems = sortedItems;
|
||||
|
||||
RenderArgs* args = renderContext->args;
|
||||
gpu::Batch theBatch;
|
||||
args->_batch = &theBatch;
|
||||
gpu::Batch batch;
|
||||
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;
|
||||
|
||||
|
@ -330,7 +340,7 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
|
|||
int bufferCount = 0;
|
||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT1;
|
||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT2;
|
||||
theBatch._glDrawBuffers(bufferCount, buffers);
|
||||
batch._glDrawBuffers(bufferCount, buffers);
|
||||
args->_alphaThreshold = MOSTLY_OPAQUE_THRESHOLD;
|
||||
}
|
||||
|
||||
|
@ -340,7 +350,7 @@ template <> void render::jobRun(const DrawTransparent& job, const SceneContextPo
|
|||
GLenum buffers[3];
|
||||
int bufferCount = 0;
|
||||
buffers[bufferCount++] = GL_COLOR_ATTACHMENT0;
|
||||
theBatch._glDrawBuffers(bufferCount, buffers);
|
||||
batch._glDrawBuffers(bufferCount, buffers);
|
||||
args->_alphaThreshold = TRANSPARENT_ALPHA_THRESHOLD;
|
||||
}
|
||||
|
||||
|
@ -395,8 +405,16 @@ template <> void render::jobRun(const DrawBackground& job, const SceneContextPoi
|
|||
inItems.push_back(id);
|
||||
}
|
||||
RenderArgs* args = renderContext->args;
|
||||
gpu::Batch theBatch;
|
||||
args->_batch = &theBatch;
|
||||
gpu::Batch batch;
|
||||
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);
|
||||
args->_context->render((*args->_batch));
|
||||
args->_batch = nullptr;
|
||||
|
|
Loading…
Reference in a new issue