Hey guys welcome back to another blender 2.8
tutorial. Today I'm going to be showing you how to do
some camera mapping but also how to bake in the textures from that camera projection. So I have this photo that we're going to be
using for this tutorial. We have essentially what is a box and then
a bunch of stuff in the background. And the main idea is we're going to do some
camera mappIng. So we're going to have a camera over here. And then a box that you know pretty much matches
this box. We are going to project this image from the
perspective of that camera on to that box. But then the new step is we want to have this
box have any custom uv map we want. So we can unwrap it however we want. And then we want to bake the textures onto
that uv unwrap. So unlike the projection, here we're going
to have a custom uv map and bake it on to there. So again, the first step is to do some camera
mapping. And I did cover this in a previous tutorial. So I'm going to do it. But I'm going to do it very quickly. If you want the full details there is a link
in the description to the full tutorial for camera mapping. But this should be pretty quick. We're going to open up fspy to get the camera
in the correct perspective. Use this photo right here. And then we just need to match up our x and
y axes. So I'm going to turn off dim image so we can
actually see what we're doing. We can have the y axis be along here and then
the x axis be along here. Which is going to be really easy to set up
because of course we have this box. So y axis. I'm just going to grab this handle and hold
shift to get this zoomed in perspective. So again handlebar and then hold shift to
get that zoomed in mode. And then of course we need 2 of these so it
makes sense to have one y axis going here and then the other one going up here. We know they're parallel because they're part
of the same box. So put one here. And also put one, where is it? Let me try that again. And also put one here. And then for the x axis same thing but in
this direction. Again I'm doing this very quickly because
I did cover it before. But I just want to make sure these fundamentals
are still here. Think it's important. Put our other x axis over here. Just like that. And then once we're happy with this we can
turn on our 3d guide and set it to xy. Because you know x and y axis. xy grid floor. And then we're going to take what's going
to be the world origin in blender. We're going to take it and then just move
it down to the corner. Holding shift so we can see what we're doing. Ok perfect. So when we import this into blender we're
going to get a scene with this background and then the world oriented correctly with
this camera in the right perspective. And then the origin is going to be in this
corner. So let's do file. Save as. And then I'm just going to call this projection. And we're going to import this into blender. So I'm going to open up blender and of course
you also need the plugin which again is free. All this is covered in the first tutorial. We need the plugin to import fspy files. So I'm going to delete this camera. We don't need it. We don't need this light. And I'm just going to keep this cube right
here. So file, import, fspy. And then just navigate to wherever you have
it. Ok so it set up our background. It set up our camera. And then you know the world origin is in the
corner of the box. So the first thing we're going to do is we're
going to save with control s. And then desktop. And let's call this thing, let's call it bake
camera projection. Because you know this is what this tutorial
is about. We're going to bake the textures. I'm going to go into our camera. Go into camera parameters. Background images and make this brighter. So we can see what we're doing. And then the first thing to do is to take
this box and align it so that it matches with this box. So I'm going to take the corner, which should
be this corner. And put it in the corner of our main box in
the image. And luckily we have this set up very nicely. So we can just g for grab. Z axis and move it up by 1. And then same thing for the x axis. So g, x, 1. All keyboard shortcuts are going to be up
here. And then g, y, 1. And let's see if that did what we wanted. Ya perfect. So of course we need this to be wider longer
and taller. Which shouldn't be a big deal. We'll go into edit mode with tab. Select this face. Again face selection with 3. And then we just move this until it seems
right. So g and then x. And it doesn't have to be perfect. We can do a bit more aligning later. Take this face and then move it down the y
axis. And then we just need to take this face and
bring it up so it's using up the whole box. So g and then z. Until that looks about right. And here you see the error starting to accumulate
as we go higher and higher and higher. You can see this little gap. And we can just adjust this by grabbing from
this perspective. And just trying to fix that a little. So no it's not perfect. It's a bit of a slanted cube. But honestly I think it's going to be good
enough. We can do a bit more correction. Something like that. So ya technically it's a slanted cube. But this should be good enough. So we are pretty much almost at the end of
what was covered in the first tutorial for camera mapping. All we have to do is project the texture you
know the background texture from this camera onto the mesh. So the way we're going to do that is we're
going to select this. We can call it, what can we call it? We can call this thing original. So this is going to be our original cube. We can call our camera just camera. And also one other thing is our background
image. Default when you export out of fspy it's going
to call it something like this. So I'm just going to call it projection image. Just so we have some good naming conventions. So in shading for our original cube. What we're going to do is we don't need this
bsdf. So x to delete. We're going to add an emission. And this is going to be important later. But we're going to do it with an emission. Plug this in. Plug it in like that. And then if you do not have node wrangler
enabled go to edit, preferences, add-ons and type in node wrangler. And you should have this on. So make sure it's on. And then one thing it lets you do very quickly
is we're going to select our emission and hit control t. And it's going to give us all these nodes. This node group we're going to move it back
with g. You can do it without node wrangler it will
just take some time. So we have texture coordinates set to uv. Feeding into this mapping node which we're
really not going to touch. And then into this image texture. And of course for this image texture we want
you know the image we're going to project. So we're going to use projection image which
is already in there. And you see that none of this is looking correct
but that's because we didn't do any of our projection. It's just using the uv map. So what we're going to do. Let's go into lookdev mode. What we're going to do is we're going to go
into modifiers. And then do the same thing we would have done
before. So originally what we would have done is done
a uv project on our uv map. From the camera. And you see it's pretty much good to go. We do have a bit of distortion. Notice that the aspect ratio in this case
is 1. And that's because our image if we go into
properties is 3456 by 3456. So the aspect ratio is 1. If you had something a bit more common like
let's say 1920 by 1080. You just divide the numbers and get your aspect
ratio. So in that case it would be 1.7 repeating. And you just feed whatever number that is
up here. Into your aspect. But in this case it is 1. And you do it's a bit distorted and I'll show
you exactly how I know. So what we do, or what we would have done
before is add in a subsurf. Put it on simple so it doesn't you know turn
into a sphere. Bring up the divisions and then just bring
this up. So this without and then this is with. So you see there is definitely some distortion. If we go into our camera. So with the subsurf we hide it and you see
it looks perfect. Instead if we did not have this and then do
a hide you see that it really is heavily distorted. So this is a necessary step. And then the issue is if we wanted to bake
it. Originally the only thing we would have known
to do is to apply these two modifiers. And then you see when we go into edit mode
we have way too much geometry. We only want six faces. And technically yes this is baked on. It's sticking on to the mesh. But not only does this have too much geometry
that's just one issue. The other issue is that if we go into our
uv map. I'm just going to set this as our background
image. Our uv map, it's essentially a frontal perspective
projection. It's not a good unwrap. So if we had this box. What we would do is have the normal kind of
unwrap. So for example I'm just going to import a
cube and look at its uv map. So here you see we have this cross looking
thing. And that's more so the kind of unwrap you
would expect. Of course not exactly the same since these
faces are longer here. It's not a perfect cube. So we want to get the texture to still be
wrapped correctly. So it's still from the perspective of this
camera. But we want to make sure that there's not
as much geometry and also that the unwrap is better. So this is not a good approach. So we're just going to undo until we get these
modifiers back. There we go. So I'm just going to close these. So that is originally what we would have done. So instead here is the trick for baking. What you do is you go into object data and
then uv maps. So in our original object we're going to set
a uv map and call it something like final unwrap. And what this is is it's going to be the unwrap
that we would ideally want the texture to be baked into. So this is the final unwrap we want. Not this mess from the perspective projection. So let's actually set up this final unwrap. So go to uv editing. And initially we do have this cross which
again is no good. It's assuming that this thing is still a default
cube which it's not. It's stretched vertically. So what we're going to do is we're just going
to go to edge selection. So that all the edges are selected. If they're not you can just click a and then
they're all selected. And then you can right click. That's something somebody recommended in the
comments. And then go to mark seam. So right clicking is you know it's faster
than typing in mark seam here. Once we've marked all this seams we just do
u unwrap. And you see we get what's essentially the
normal unwrap. These four faces and then these two, once
of which is rotated so let me just rotate it. R and then 90. And then just put it here. But this is one of the normal unwraps we would
expect. You can do any unwrap, any custom unwrap that
you want. So the goal is to get this texture on these
six faces and not have to do a lot of subdividing to undistort the projection. So that's our goal. So what we're going to do is we have this
original. And we're not going to touch it for now. So we"re just going to duplicate it. Shift d. Right click to center it. And then we're just going to call this new
thing a projection. So we have our original, our projection. And let's hide the original. So we're just going to mess with the projection. So right now you see this projection also
has the final unwrap because we just duplicated it. It inherited the same unwrap. So we can just add another one. And this is where we're going to have our
messy projection. So we'll just call this projection unwrap. And then make sure this one is the visible
one. So we're going to be messing with projection
unwrap for now. And here we do the same thing we would have
done. We add our uv project. And for our uv map, very important, select
projection. So we don't want to touch our final which
is the good one. Just our projection unwrap. From the camera's perspective. Perfect. You see it's distorted. And we know to solve that with a subsurf. Set to simple with more divisions. And then bring that up. Maybe only four divisions. Ok so that's off and that's on. Perfect. So I'm just going to apply both of these. So now again this is technically in some sense
baked on. But we do not want all this extra geometry. And we also especially don't want this very
bad uv map. So you can essentially see what it's doing
here. We have our top face which is heavily divided. So this top face is you know the top face
of this image. This one here this side is the side etc. So we want to have this not be like that but
more like our original uv map. So how do we do this? Well this is with baking which is the new
idea. So how do we do baking? Well what we do is we begin, oh by the way
one more thing before we get into baking. The other uv map, our original. You see it's the same. You have your six faces. They're just more divided but it's the same
uv map as our original. So if we bake into this and make a new image
we'll be able to put it here as well. Because it's essentially the same uv map. Just wanted to say that. So now onto baking. So how do we bake? Well baking is native to cycles at least for
now. So what we do is we change to cycles render. That's the first thing. Going to change this to GPU compute. And then what we're going to do is you see
there is this bake tab down here. So you can scroll down here. We're going to go into shading. And you see this is our original node set
up. Nothing wrong with that. But we're going to take this node, this image
texture and duplicate it with shift d. Bring this down here. And then here is where we want our new image
which should look like a bunch of textures on these four faces. And then two up here. And not like our original image which looks
like that. You know that is not what we want. So what we're going to do is we're going to
take this node and create a new texture through here. And we can call it something like bake, that's
in all caps. We can call it bake final. And then you can set your resolution. This is part of the quality of your bake. So you want high resolution here and then
also lots of samples when you do your bake. So I'm going to do something like 1500 by
1500. So I'm going to click ok. So what we've done is create a new blank image
called bake final. It's black because we didn't do anything to
it. We just defined it. We wouldn't expect there to be anything. So before we can plug this into the surface
we need to make sure we actually bake something into it. So I'm going to go into this render tab. Go into bake and then a couple things. So again we're baking into this node for uv
map in our projection object. I'm going to go to uv maps. So we have our projection unwrap visible as
you can see. But I'm going to select our final unwrap which
is the nice looking one. So make sure this is selected. And then go to the render tab. And then for the bake type I'm just going
to set this to emission or emit which is the reason why we passed everything through this
emission node. So that it would only bake anything that"s
coming through here and not anything else. And then once all that is set up. So again you have this node. You have the final unwrap selected. And you have this set to emit. You just click bake. And it's going to take a bit. Oh by the way another way you can bump the
quality like I said is to bring up your samples. I'm pretty sure that matters. So 200 click bake. And you see that it's chugging along here. It will take longer depending on the quality. But this is something you want to have high
quality because you only do It once. So it's worth it. So it's just going to chug along here. And when it's done it's going to pop up here
in this bake final. At least it should. And I don't think I'm going to fast-forward
because I don't think it's going to take that long. But ideally if everything works we're going
to have the same image but kind of chopped up and corner pinned to look like it's four
pieces here and then two pieces here. So it's almost done. Perfect. So you can see what happened. I'll go to uv editing and change the image
to our bake final. So you can see it took the image and chopped
it up into six pieces that match our uv map. And more so it undistorted it. So let me show you what I mean. So this top area right here is our top face. So we expect this part of the box to be here. But in the original image which is this one,
this one. In the original image you can see that it's
very distorted. Because our camera is over here. What essentially happened is it kind of looks
like the camera is up here looking straight down on this part of the box as you can see
here. As you can see here. And it did this for all the faces so that's
the power of baking. And really it only did this for this face,
this face, and this face. Because those are the ones facing the camera. We would need to set up another photo back
here to capture data of this stuff. So really we only have these three faces. But these three that you see here should be
looking perfect. Ok so now how do we kind of finish this off? Well we have this projection object which
has too much geometry and one of the unwraps looks bad etc. So we can just take it and delete it. We don't need it anymore. The camera, delete it. We don't need it. So now if we just have our original. Which still kind of looks messed up but that's
because we didn't use our new texture. So now if we take this and go into shading. You're going to see we can take this new,
we can take this new texture. This new node. And plug it into the surface. And then everything works out as you can see. If you don't want to do that we don't actually
need to do that. We can just take this existing node set up
with the emission. And then instead of this image we change to
bake final and then everything works. Let me just emphasize what we did here. So in this object we only have the original
final unwrap. Because we didn't need to add that projection
unwrap. Because this is the low-res version. So this object only has six faces. We didn't need to add extra geometry. It's also connected. The texture is, I wouldn't say inside. But it's stitched or stuck. I don't know what the best word for it is. But it's on there. So we've really baked the texture onto here. And all the distortion that we needed the
subsurf for. Because we baked that into the high-res thing,
that is captured inside this bake. So we did all the hard work in our high-res
and reaped the profits in this low-res mesh. So this is really the ideal thing. Again we would need another camera back here
to get this stuff to be correct. Because again the camera couldn't see this
area. So we wouldn't expect this to be perfect obviously. But there we go. So the grand idea just to review. Is we take an image set up our you know perspective,
our camera, etc. Do our projection. But then instead of preceding normally what
we do is we create a duplicate. Create an additional uv map which is the bad
one. So we make sure we do our custom unwrap first. We then on the high-res object, we basically
switch the texture from one uv map to another. So we bake between uv maps. And because the new texture you get is for
the uv map that's essentially the same as this one. It's just more subdivided. It works out if we plug it in here. Instead of doing from high to high between
the uv maps. You can also bake from the high-res mesh into
the low-res mesh. But I do find that it doesn't work as well. So this is what I recommend. But there you go that's baking camera mapping. This is just a you know it's just a box. But it works for any geometry. Of course the more complicated the geometry,
the more complicated it is the harder it is to uv unwrap and make your custom unwrap. But this technique works in general. And that's how you bake camera mapping correctly. So hopefully you enjoyed this tutorial. You learned something. Thank you guys for watching and I'll see you
guys on the next one.