I have an equirectangular texture applied as the environment. I go to the camera view, match the camera's settings and create my mesh so it somewhat matches the objects' shapes in that texture. I unwrap the mesh.
I deliberately avoid such methods like cutting an image into small pieces and then manually texturing the objects. It's really tedious and time consuming and I have to do tens of these images. Also, the projection, as I've mentioned, is equirectangular, so doing it manually is really not an option.
How do I project the pixels from that env. texture onto my mesh? (like a slide projector)
-
$\begingroup$ Look into the UV project modifier $\endgroup$– user1853Commented Jul 7, 2016 at 19:48
-
$\begingroup$ Render the view without the mesh, so you have a non-equirectangular version of the background, then use project from view as blender pony suggested. $\endgroup$– EzraCommented Aug 6, 2016 at 21:10
2 Answers
One cheap and fast way of doing it is to use The unwrap option "Project from view" Like in this Picture:
This uses your current 3D viewport as to unwrap it 1to1 into the UV image editor. If you align your camera just right it behaves like a Projected Image. I recommend to do this in the orthographic 3D view as well.
-
$\begingroup$ It would work with a regular texture but not with an equirectangular one. Thanks for the suggestion though. $\endgroup$ Commented Jul 7, 2016 at 21:08
There are two ways I know of:
Version a: If you want it to look like it actually is projected from a slide projector, you can actually put textures on area lamps or spotlights. The lightsource will project the image onto the surface like you would expect it would from a projector:
Version b: If instead you want to add graffitti, you would actually combine two UV mappings. One would be for the texture proper, and the other would be for the graffitti. This video explains the technique in a myriad of ways: