I am new to Blender and scripting and looking for your help:

The problem: In my scene are many blue objects (e.g. spheres) and multiple cameras. I want to color every surface of the blue objects red, if the surface is visible from at least one camera.

The desired result:

  • All objects, that are completely hidden from all camera field of visions, stay completely blue.
  • Some blue objects are only partially visible to the cameras and only these visible surfaces turn red (the all other surfaces of the objects remain blue).
  • Blue objects, whose whole surfaces are covered from the cameras, turn fully red.

How could you easily implement that?

  • $\begingroup$ Maaybe some variation on parts of this answer? $\endgroup$
    – Robin Betts
    Commented Jan 10, 2022 at 16:00
  • $\begingroup$ Yes, that's quite close to what I want. The only problem that in this answer remains is, that all surfaces that are at the back of the object are also colored differently. Do you have any idea how to make sure, that only the surfaces without occlusion get colored? $\endgroup$
    – Philipp
    Commented Jan 10, 2022 at 18:37
  • $\begingroup$ The OSL in the link deals with occlusion, and objects behind the camera.. but the problems are: 1 it's OSL, and 2: it depends on OSL's camera space, and from OSL's POV, there's only one camera. $\endgroup$
    – Robin Betts
    Commented Jan 10, 2022 at 22:44


You must log in to answer this question.

Browse other questions tagged .