I’m redoing a course on Learn Squared by Matte Painter Steven Cormann on, well, matte painting. He stresses the importance of camera projection in matte painting, but that seems to be mostly in the context of camera moves, creating parallax without using dense 3D geometry. That is, classic 2.5D technique. I’m not considering doing any camera moves, but I am considering creating scenes not just for one shot, but rather for a number of shots from the same ‘location’. A bit like a gamer would see exploring a game environment. So, create a fairly fleshed out environment, and then see what nice pictures I can get while exploring it. Crazy, heh? Creating the shot first and then creating the image to realize it is not working so well for me. The other approach is more like a photographer. I’m hoping that I can be a bit more free about creating an environment (basically a game level) without having to worry too much about whether it will actually look any good. I’ll use very simple assets too, such as cards and projections onto slightly more complex geo.
Anyway there’s a good tutorial on Blender Cookie about camera projection in Blender. There are several possible approaches to this problem. One can map a background image to an object (e.g. cube) using the Window output of a Texture Coordinate node. Then just model against that. It doesn’t matter how simple the geo is with this approach, but one does need to maintain Camera View in the viewport. Another approach is the UV Project modifier which implements classic camera projection. One can navigate around in the viewport without disturbing the texture mapping, but a bit more geo is required to get a good mapping. Otherwise very wonky lines. A third approach is to UV map the geo using the Project from View option, which also requires a decent amount of verts for a clean mapping.
There’s also the issue of how to manage it when the job is done. Steven’s approach is to keep the projection cameras, usually importing cameras and geo into Nuke. However in Blender one can simply apply the UV Project modifier and this has exactly the same effect as mapping with Project from View in the first place.
I think the best approach would be to use the Window output of the Texture Coordinate node while getting basic geo to the right size and shape, then subdividing to get a decent amount of geo and switch to using a UV Project modifier, then applying that at the end to eliminate the need to keep the projection camera.