I'm trying to make a projection using the uv project modifier :

uv project uv project

But I would like to project only once (don't re-project behind at the place where it should be shadow)


Would it be possible to use a light path camera ray from another camera than the one doing the final render ? Or use another attribute to make the projection only visible once and not project through all the object ?

Maybe a custom OSL or GSLS shadowmap from a point could be possible ?

I'm trying to reproject many photos (only one per frame) onto a photoscanned model :

texture view camera view

I'm aware that I can project texture from light, but it produces only photons that will be absorbed (or bounces) onto a surface. I would like to have control over the shader and decide if I want to project a shadeless texture or project it as a texture used in the principed shader after.


1 Answer 1


I think what you are looking for is masking the actual texture out based on a camera direction.

I suggest you use the dot-product node in the shader graph. The first input should be the mesh normals and the second input the projecting camera's direction. The result can be remapped using a color ramp node and then multiplied over the texture.

To get the camera's direction you could place an empty right down the z-axis of the camera and subtract the camera's position from the empty's position (maybe through a driver if necessary). If you have a lot of photos it could be a pain to manage the uvs and textures. Alternatively you could use a photogrammetry software like the opensource software MeshRoom to texture your mesh.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .