From 1f61b5272310b708fc17871af90aad78308c1e16 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nicolas.pope@utu.fi> Date: Fri, 6 Dec 2019 11:55:42 +0200 Subject: [PATCH] Implements #263 reconstruction scaling --- applications/reconstruct/src/reconstruction.cpp | 3 ++- components/renderers/cpp/include/ftl/render/tri_render.hpp | 2 ++ components/renderers/cpp/src/tri_render.cpp | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/applications/reconstruct/src/reconstruction.cpp b/applications/reconstruct/src/reconstruction.cpp index c9ce1bf89..be99d1581 100644 --- a/applications/reconstruct/src/reconstruction.cpp +++ b/applications/reconstruct/src/reconstruction.cpp @@ -107,5 +107,6 @@ void Reconstruction::render(ftl::rgbd::VirtualSource *vs, ftl::rgbd::Frame &out) // transform.setIdentity(); //} - renderer_->render(vs, out, transform); + Eigen::Affine3d sm = Eigen::Affine3d(Eigen::Scaling(double(value("scale", 1.0f)))); + renderer_->render(vs, out, sm.matrix() * transform); } \ No newline at end of file diff --git a/components/renderers/cpp/include/ftl/render/tri_render.hpp b/components/renderers/cpp/include/ftl/render/tri_render.hpp index dbe797797..27b6db318 100644 --- a/components/renderers/cpp/include/ftl/render/tri_render.hpp +++ b/components/renderers/cpp/include/ftl/render/tri_render.hpp @@ -42,6 +42,8 @@ class Triangular : public ftl::render::Renderer { ftl::render::SplatParams params_; cudaStream_t stream_; float3 light_pos_; + Eigen::Matrix4d transform_; + float scale_; cv::cuda::GpuMat env_image_; ftl::cuda::TextureObject<uchar4> env_tex_; diff --git a/components/renderers/cpp/src/tri_render.cpp b/components/renderers/cpp/src/tri_render.cpp index d1cf0c8a1..567a9d139 100644 --- a/components/renderers/cpp/src/tri_render.cpp +++ b/components/renderers/cpp/src/tri_render.cpp @@ -228,8 +228,8 @@ void Triangular::__reprojectChannel(ftl::rgbd::Frame &output, ftl::codecs::Chann cv::cuda::cvtColor(tmp,col, cv::COLOR_BGR2BGRA); } - auto transform = MatrixConversion::toCUDA(t.cast<float>().inverse() * s->getPose().cast<float>().inverse()) * params_.m_viewMatrixInverse; - auto transformR = MatrixConversion::toCUDA(t.cast<float>().inverse() * s->getPose().cast<float>().inverse()).getFloat3x3(); + auto transform = MatrixConversion::toCUDA(s->getPose().cast<float>().inverse() * t.cast<float>().inverse()) * params_.m_viewMatrixInverse; + auto transformR = MatrixConversion::toCUDA(s->getPose().cast<float>().inverse()).getFloat3x3(); if (mesh_) { ftl::cuda::reproject( -- GitLab