Aligning object perspective from an image to the same object in Blender

I have this product image and I need to align it as close as I can with the product in the Blender scene, but I am having trouble with it. It seems like the perspectives don’t match at all. The final video is going to be a fade from the product image to the blender scene animation and I need it to be as little difference as possible after that fade.
Is there a way I can more easily do this? If I match them by the length, then the depth doesn’t align and vice versa. I’ve tried doing it by taking an image plane on which I put the image with the perspective I need to align and work from there, making the plane move and rotate along with the camera.

I know about fSpy, but I don’t think it would help me in this case. Plus it would ruin scene perspective now if I would use it.

That is what I used in the past, it worked for me. Not sure why you think it will mess up perspective, since the whole point of fspy to give you the right perspective, if yours needs to change it be it, if fspy’s values are more correct.

Your other option is to get the measurements of the actual product with the camera values, then do precise modeling of the base and go from there, which is where fspy is useful.

Hi @ radumitoi, The lens of the camera you’re using in Blender looks like the default 35mm lens, but the image your trying to match looks much more like it’s a 70mm, the shallower perspective gives that away. Here’s a quick alignment test I did just guessing at the proportions of the lower box but specifically using a 70 mm lens:


As I have no idea what actual size the model is in your scene I’ve used the default cube and scaled it as I thought appropriate to match.

Note: When I’m doing this sort of thing I map the reference image to a plane, align the camera to face the plane exactly square on. I then parent the plane to the camera and move the plane AWAY from the camera along the planes LOCAL axis. Now you can place the geometry you’re trying to match between the camera and the image plane. Because the plane is parented to the camera it doesn’t matter how you rotate/transform alter lens etc of the camera the image will always be perfectly facing it. However, when you change the lens the scale of the image-plane will require changing to keep it full in view, so either move it towards/away from the camera [ local axis] or scale it [ local axis], so it fills the clipping plane for the cameras aspect ratio.

Be sure to rotate the camera around your ‘product’ [ this is easiest if it is at 0,0,0 ] then you’re able to use the 3d cursor at the origin for convenience when rotating the camera.

Here’s my Blend file if you want to see how it works: Box.blend (772.4 KB)

I cropped out the top image of your post to use, so here it is [ in case the blend file can’t see it ]:


1 Like

Hey, that did the trick, thank you. The thing was the blender object wasn’t made by me, it was done by the clients and sent to me so I assumed they were the right dimensions. Changing the focal length to 75mm, in my case, got me almost exactly aligned with the image, I just had to do some minor scaling.
Thank you again!

1 Like

I thought it would mess up my perspective because there is a whole bedroom in which this product sits and I know from using fSpy a couple of times that it rotates/scales the whole camera to match your image. I didn’t want to have to do any rework on the rest of the scene if I were using fSpy.

Sure, Fspy assumes that you are going to rely on it for the actual camera calculations.

It seems like you fixed the shot.