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.


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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.