Variable Transparency, Occluding Objects, over a Non-Occluded BG Color
I'm trying to produce a specific visual effect: A static, colored background image overlaid with objects that have variable, alpha transparency that occlude one another.
The effect essentially makes anything approaching 1 on the alpha appear lit, while anything heading towards 0 would appear to be in the shadows. The ability to adjust the transparent effect on the fly is necessary to give the impression of a lit environment; here's an example: http://i.imgur.com/2Shjopz.gif
To pull this off I need my transparent scene objects as well as a separate object that follow's the first's shape to occlude the objects behind it, but that 2nd object can't be drawn itself. There's probably a way to do this involving some complex layer culling and draw orders, but I'm a one man show and am looking for something that isn't going to require a lot of setup work for each scene/room.
I have an idea on how to go about this. Right now I have my main camera looking at my scene, and a separate camera looking at my stationary background color allowing everything to move over it. The effect is awesome, and setting that up gave me the idea to make a 3rd camera containing all the scene objects and player.
Instead of trying to get all the occluding and transparent objects to talk to each other and say who needs to obscure who, I can prefabs of the two: a transparent visual object and a duplicate solid-color, occluding shape z-sorted behind it. All the occluding objects would share this same color, including a full background screen. Let's say magenta for proper developer eye strain. As the third camera sends all the combined objects, with all their transparencies to the main cam, it has a script telling the resulting picture that everything magenta is 100% opaque. This would leave a final third image placed over the green BG Color that's fully formed, properly transparent, and manipulable as I need it to be.
This seems like a plausible implementation. If there are holes in this idea let me know and I'll try another tack.
Your answer
![](https://koobas.hobune.stream/wayback/20220612062506im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Transparency of a specific area 0 Answers
How to correctly use transparent tiled blocks? 0 Answers
Shader transparency problem 0 Answers
A problem with a shader to make a window transparent 0 Answers
Change surface type with LWRP 4 Answers