fix missing sensorToWorld matrix

This commit is contained in:
SamGondelman 2017-10-06 15:30:34 -07:00
parent 7e6d5d9d98
commit e95ecc3f27
6 changed files with 6 additions and 19 deletions

View file

@ -5053,6 +5053,7 @@ void Application::update(float deltaTime) {
float sensorToWorldScale = getMyAvatar()->getSensorToWorldScale();
appRenderArgs._sensorToWorldScale = sensorToWorldScale;
appRenderArgs._sensorToWorld = getMyAvatar()->getSensorToWorldMatrix();
{
PROFILE_RANGE(render, "/buildFrustrumAndArgs");
{

View file

@ -96,7 +96,6 @@ bool OverlayConductor::updateAvatarHasDriveInput() {
void OverlayConductor::centerUI() {
// place the overlay at the current hmd position in sensor space
auto camMat = cancelOutRollAndPitch(qApp->getHMDSensorPose());
qDebug() << "OverlayConductor::centerUI" << camMat;
qApp->getApplicationCompositor().setModelTransform(Transform(camMat));
}

View file

@ -277,10 +277,10 @@ void Base3DOverlay::update(float duration) {
// then the correct transform used for rendering is computed in the update transaction and assigned.
if (_renderTransformDirty) {
auto itemID = getRenderItemID();
// Capture the render transform value in game loop before
auto latestTransform = evalRenderTransform();
_renderTransformDirty = false;
if (render::Item::isValidID(itemID)) {
// Capture the render transform value in game loop before
auto latestTransform = evalRenderTransform();
_renderTransformDirty = false;
render::ScenePointer scene = qApp->getMain3DScene();
render::Transaction transaction;
transaction.updateItem<Overlay>(itemID, [latestTransform](Overlay& data) {
@ -290,8 +290,6 @@ void Base3DOverlay::update(float duration) {
}
});
scene->enqueueTransaction(transaction);
} else {
setRenderTransform(latestTransform);
}
}
}

View file

@ -570,11 +570,11 @@ std::function<void(gpu::Batch&, const gpu::TexturePointer&)> OpenGLDisplayPlugin
batch.setResourceTexture(0, hudTexture);
if (isStereo()) {
for_each_eye([&](Eye eye) {
batch.setViewportTransform(eyeViewport(eye, getRecommendedRenderSize()));
batch.setViewportTransform(eyeViewport(eye));
batch.draw(gpu::TRIANGLE_STRIP, 4);
});
} else {
batch.setViewportTransform(ivec4(uvec2(0), getRecommendedRenderSize()));
batch.setViewportTransform(ivec4(uvec2(0), _compositeFramebuffer->getSize()));
batch.draw(gpu::TRIANGLE_STRIP, 4);
}
}
@ -840,15 +840,6 @@ ivec4 OpenGLDisplayPlugin::eyeViewport(Eye eye) const {
return ivec4(vpPos, vpSize);
}
ivec4 OpenGLDisplayPlugin::eyeViewport(Eye eye, uvec2 vpSize) const {
vpSize.x /= 2;
uvec2 vpPos;
if (eye == Eye::Right) {
vpPos.x = vpSize.x;
}
return ivec4(vpPos, vpSize);
}
gpu::gl::GLBackend* OpenGLDisplayPlugin::getGLBackend() {
if (!_gpuContext || !_gpuContext->getBackend()) {
return nullptr;

View file

@ -125,7 +125,6 @@ protected:
void present();
virtual void swapBuffers();
ivec4 eyeViewport(Eye eye) const;
ivec4 eyeViewport(Eye eye, uvec2 vpSize) const;
void render(std::function<void(gpu::Batch& batch)> f);

View file

@ -444,7 +444,6 @@ std::function<void(gpu::Batch&, const gpu::TexturePointer&)> HmdDisplayPlugin::H
batch.setUniformBuffer(uniformsLocation, uniformsBuffer);
auto compositorHelper = DependencyManager::get<CompositorHelper>();
qDebug() << "getUITransform" << compositorHelper->getUiTransform();
batch.setModelTransform(compositorHelper->getUiTransform());
batch.setResourceTexture(0, hudTexture);