Blender 2.8 Camera mapping (projection) tutorial (how to make photo 3d)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
In this tutorial I'm going to show you how to take any image, in this case we're going to be using this one right here. And we're going to take it and turn it into a photorealistic 3d scene. So we're going from photo to something with depth. And the technique we're going to be using is very popular, it's called camera mapping. Some people call it projection mapping. And the basic idea is we need two things. We need a camera that pretty much matches the camera this photo was taken with, so the perspective and the view is lined up. And the second thing is we need the geometry of the scene, so in this case we need a floor plane we need three walls and we also need a ceiling. So in this case it's super easy because it's just a giant box. So we need our camera and our box. And the first thing we do is we do the camera alignment and you can do this in blender right away, however, it's very difficult to tweak and get it to look like it was taken from the correct angle. So the best way to do it is there is a free program. The link will be in the description. It's called fspy or fspy I really don't know how to pronounce it. So you download this free program and also a free addon for blender so you can import the files from fspy which is what I'm going to call it from now on. So once you download it, link in the description, we're going to open it here. And then what we need to do is bring this photo into fspy. I really hope that's right. What we do is we take the ceiling photo, we bring it in. Ok so here is our interface. First thing you might notice is that everything may or may not look super dark. If it does just go to dim image and disable this. So we can actually see what we're doing. And then the idea is we're going to take these lines, red being the x axis, y being or sorry green being the y axis, and then blue which we can enable down here being the z axis. We're going to take these and we're going to line them up to our photo. And then the software is actually going to know where the camera should be. So let's start off with our x axis and I want this to be horizontal across the photo. So we're going to take one of these and we're just going to line it up against this wall. So something like this. And then we want to finetune it so you're going to take this and hold shift. And that's going to let us zoom in. And make sure that you do this as accurately as possible because the quality of our camera is going to be determined by how accurately we do this. So here we have one of our red lines. And to do the other we need to make sure that it's parallel to this x axis. So we can actually put it up here or along the carpet which is what I'm going to go for. So we're going to put one here again holding shift. And then the other somewhat over here. Let me make sure that's aligned. So once you're happy with this you want to move on to the other axis, in this case the y axis. And that's going to be perpendicular going along here. So we're just going to bring this over to the wall. Just like that and then the obvious other option is going to be the other wall. So this scene is very very simple. Other scenes might have, you might have a bit harder time actually finding what you should be using for your lines. But generally every scene will have something. Ok so once you're happy with this we actually want to see the quality of what we did. So go to 3d guide and change it from off into xy grid floor. If you didn't use x and y, you used x and z then go to xz. So we used x and y. So we're going to enable this. We're going to bring this dot down here and you may or may not see anything. If you don't that means that there is a vanishing point error as you can see right here. And that basically means you need to do a bit more tweaking like we're doing. And you see this ground plane is popping on and off. Think this line is the issue, ya there we go. And since this is so sensitive to where we put this basically that means we should pick a different spot because this isn't very accurate. So I'm just going to pick this line over here. Because it's easier to see. Something like that. Make sure our y axis is well defined. And again make sure that you do this as accurately as possible. Ok let's adjust this line over here. Move that all the way down here. And then you see that we're getting a floor plane that is lining up pretty well. And you can put this wherever you want. I'm going to put it about here. And again you can do a lot more tweaking you can actually find out the focal length of your camera from this picture. You just enable this but you need to know what camera you're using. In this case I actually don't know what camera was used for this photo so I'm just going to ignore that. But then once you have your ground plane and again you might have to tweak with it if your vanishing point has a calculation error. Once you're happy with this go to file, save as, and then we're just going to name it in this case camera map. And then you're actually done with fspy so you can close that and open up blender where we're going to import everything. So again make sure that you have the free addon. You can make sure it's enabled by going to edit, preferences, addons, and then just typing in fspy. In this case I actually already have it imported and enabled. So make sure that's the case. So we're going to take everything a. And we're going to delete it with x. And then we're going to go to file, import, and you're going to see that we have a fspy option with the addon. And then just find our camera map. And you see it's already imported everything. And basically all this is is a camera with a background image. So if you go to your camera settings and go to background images you can actually edit this. You can make it less transparent like that which is what we're going to do. And then what we're also going to do is shift a to add a plane. Just like that, and you see it's already matching. This plane looks like it's flush with the floor. Ok so that's good. Also something that you might notice is that everything is upside down. As you can see if that's the case what you can do is I'm just going to select all my objects, rotate it along the y axis by 180 degrees. But then something that we also need to do is bring this up. And you can also do some stuff with the 3d cursor to do this but this is much faster. I think I am happy with this. Yes, everything still matches. So now what we need to do now that our camera is matched up, the next step is reconstructing our scene using geometry. So we're going to take our plane, we're going to go into edit mode, and then we're just going to drag these edges so that they go along the floor. So we're going to go 2 for edge mode. And then we can actually zoom in and then g x and just bring that there. And this should be pretty accurate like when we bring our edge it should line up. And that depends on the accuracy of what you did but we did a pretty good job. We're going to bring this back. And then we're going to take this and bring it forwards. Once we're happy with that and we have our floor plane I'm going to select this edge, this edge, and this edge. Click e to extrude and then right click to move it back to where it was. And then g z to bring it up. And that should be lining up pretty well, you can see that there is a bit of error here but we can always fix that later. Make sure that you line this up to the best of your ability. So this is pretty good, we're going to select two edges, this one and this one and click f to fill in our ceiling. And then the last thing we need to do is select this edge, this edge, let's actually exit out of camera, this one and this one and then just bring them back a bit. Ok so we have reconstructed our scene pretty easy. So now let's actually project our textures onto here. So I'm going to go into object mode, go into shading. I'm going to make a new material and we don't actually need any principled bsdf or any shaders at all really. We're just going to import a raw image into the surface here. But you can also add shading if you want. So shift a, go to texture, image texture. And plug this in here. And then all we have to do is put in our photo inside this image texture. So navigate and find that. There we go, and you see that everything is looking pretty messed up. But we need to do is project this texture from the perspective of this camera. And there is a couple ways to do that but my favorite way is as follows. Let me go into rendered view. So select your geometry, I'm just going to call this, I'll call it room. Select your room object and then what we're going to do is go to modifiers and add a uv project. Which is exactly what we want. So we need to click a couple things, first of all we need a uv map. I'm just going to use the default one. We need our projector, where it's going to project from and that's being this camera. So select your camera and you already see it's looking a lot better. Still really distorted but a lot better. First thing we need to do is this aspect right here, this is assuming it's a one by one image which it's not. It's not like a 100 by 100 or 1500 by 1500. We actually need to calculate this aspect but that's super easy. We're going to go to our photo and go to the properties. And you see here it's 3264 by 2448. I'm just going to open up a calculator and all you do is divide these numbers. So 3264 divided by 2448. So our aspect ratio one point three repeated. So we're just going to type here let's do four threes, one two three four. So already looking better but still some heavy distortion. And basically the trick here is our uv modifier depends on how much geometry we have. So here we only have, let's see, we only have five faces. So to get this to be more accurate we need to add more geometry without changing the shape of this. So that basically means we need to sudivide. So we're going to add a modifier, add a subsurf. And we're just going to bring this up but you see it's actually changing the shape. But this looks kind of cool actually. But if you don't want this just change this to simple mode like that. And then you can bring this up and you see the distortion is going down. Let me just bring this back down so you can see. This is original and then bring that up. And you want to make sure your modifier stack is in the right order. Moving this up is not going to give the same results as down. And in this case we actually want it up I believe. Yes, and you see that it's looking distorted from this view but that's actually what is going on. So here is what we got, we can go to camera and everything lines up perfectly. And now to actually see the results of what we've made, let's take this camera and put another camera inside of here. So not from the projector. So shift d to duplicate, right click to put it back, and then g y to bring this in. Ok so this is our new camera we're going to call this the viewing camera. So this is viewing and then you just want to do, when you go into camera mode it's the same camera. If you want to switch it go to view, cameras, set active object when you have this selected. Go to view, cameras, set active object as camera. And now we have this like that. Let's go back into that. And we can go to, we can hit n to open some settings and actually rotate around our 3d scene. So this is actually truly 3d now. Which is pretty cool. We can go into cycles render and do some trippy things which I think is a good idea. Ok so we are in cycles and I think something interesting to do is to add a giant mirror in the middle of this. So we're going to go shift a, mesh, plane. Make that big, and have it kind of cut through our surface here. So you can see now we have a true 3d scene that other objects can cut through and interact with. In this one we're going to go to shading and we're going to add a new material, principle bsdf. And just make it this metallic low roughness kind of mirror surface. Ok perfect and then go back into rendered. Let's go to layout. Ok go to camera view. And you see now we have this giant mirror in our scene and we can rotate it. Woops, I am not rotating the right thing. Make sure that you have the right object selected and we can rotate our giant mirror and do a lot of cool effects like this. Rotate it on this axis like that. So I don't know you can do a whole bunch of stuff with this but this is just a video about camera mapping so let's close this out. So this is again a simple example because we just made a cube. In other cases we have stairs, we have trees and a lot of that will require cylinders and a bunch of harder geometry. But this is the most simple case, I think I'm also going to make a video about the harder case but either way I hope you learned something. Thank you for watching, make sure to use subsurf after you put uv project. Either way thanks for watching. Bye guys.
Info
Channel: CGMatter
Views: 181,360
Rating: undefined out of 5
Keywords: blender, 2.8, camera, mapping, projection, map, 3d, photo, how to, tutorial, uv, uv project, fspy
Id: p9IfDeNU8K0
Channel Id: undefined
Length: 13min 57sec (837 seconds)
Published: Fri Mar 01 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.