1
$\begingroup$

What I've got:

  • An existing mesh of my living room (made with MeshRoom)
  • A few 3D boxes added to the scene to simulate where I'll put a TV stand
  • A picture of the living room. One of the pictures that got used to create the mesh of the living room with MeshRoom
  • An fspy project, with axes and length reference defined

What I want:

  • Once I'm in Blender and I'm seeing through the camera created by fspy, I want to align the existing mesh of the living room (and the 3D tv stand boxes I've added) to the scene

Question:

  • How to align/move/scale the meshes I've got, perfectly with the view of the camera? End goal being to have the picture rendered with only the 3D boxes I've added

I know I could skip the living room mesh and re-create the boxes only from the scene. That'd probably be way easier and I'm going to do that on the side. But I find the use case super interesting, so I just want to know how one would do.

$\endgroup$
4
  • $\begingroup$ For those not familiar with Fspy some images might help. Maybe not the ones based on your living room (to keep your privacy) but a similar example? $\endgroup$ Feb 3, 2023 at 8:04
  • $\begingroup$ That'd be kinda hard because I wouldn't have the mesh matching the scene I'm afraid $\endgroup$
    – maxime1992
    Feb 3, 2023 at 8:32
  • $\begingroup$ I'm not sure there's any easy way to align an existing mesh with an image, fSpy is precisely made because it's very hard, and even fSpy can not find a solution for every photo (if the objects are not perfectly aligned and perpendicular, etc), but maybe I misunderstand your question... $\endgroup$
    – moonboots
    Feb 3, 2023 at 9:50
  • $\begingroup$ I can try to reformulate. I've got a picture. I want to render more or less realistically 3D boxes in the scene, to see how much space some furniture is going to take for real. I've seen loads of tutorials to do that while drawing the furnitures from the fspy camera. Here it's a bit different. I've got objects already that I need to align in the scene instead of creating them from the camera POV $\endgroup$
    – maxime1992
    Feb 3, 2023 at 16:14

1 Answer 1

1
$\begingroup$
  • In fSpy, place the world origin at some known point. Import into Blender.
    step1
  • Snap the 3D cursor to world origin (Shift+S). Create an Empty object.
    step2
  • Parent the fSpy camera to the new Empty (by shift-dragging it in Outliner).
    step3
  • Move the 3D cursor to the point that you had previously chosen in fSpy.
    step4
  • Select the Empty and Snap it to the 3D cursor position (Shift+S).
    step5
  • If your fSpy and Blender axes don't match, rotate the Empty in 90° increments.
  • If you didn't set reference distance in fSpy, roughly rescale the Empty.
    step6
  • Enter the camera view. Select it and navigate to the camera data tab.
  • Under Background Images, set Depth to "Front" and tweak Opacity to taste.
    step7
  • Select the Empty and adjust the final transform. Hold Shift while transforming for better precision.
    step8

Note: in the above example, the camera is placed outside the wall, so it had to have its clipping adjusted as well. This was done off-screen, and is unnecessary for most cases.

$\endgroup$
3
  • $\begingroup$ While this sounds awesome, I'm way too newbie in Blender to understand all this. Could you add a gif, video or screenshots to the post? Thanks! $\endgroup$
    – maxime1992
    Feb 4, 2023 at 17:06
  • $\begingroup$ Edited the answer. Apart from the demos, I have changed the answer itself. Instead of parenting everything (which can cause problems on complex scenes), it's better to just parent the new camera. $\endgroup$
    – chedap
    Feb 5, 2023 at 0:16
  • $\begingroup$ This looks brilliant thank you very much for the detailed answer, I'm out of time at the moment but I'll look into it soon! $\endgroup$
    – maxime1992
    Feb 6, 2023 at 9:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .