- Home /
Making objects less transparent when light hits them (lighting only shader)
Hey there!
I've recently started work on a small game in which i want my character to not be able to "see" some objects in the darkness unless he is close enough. The character is carrying a light source and I'm able to hide the objects by not having light on them by default and using the following light only shader:
Shader "Custom/LightingOnlyShader"
{
Properties
{
_Color("Main Color", Color) = (1,1,1,1)
_MainTex("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Blend SrcAlpha One
ZWrite Off
Tags{ Queue = Transparent }
ColorMask RGB
// Vertex lights
Pass
{
Tags{ "LightMode" = "Vertex" }
Lighting On
Material
{
Diffuse[_Color]
}
SetTexture[_MainTex]
{
constantColor[_Color]
Combine texture * primary DOUBLE, texture * constant
}
}
}
Fallback "VertexLit", 2
}
The shader is applied on the red box. This works decently well but I would like it to make the object "less transparent" as soon as some light touches it. The following images should illustrate what I mean.
In the 2 images you can see the poorly drawn mouse lighting a red box and making it visible due to the light he's carrying. You can also see the box is pretty much still transparent, even on the front face, where the most light is hitting it.
The floor / walls are lit by a different light source that targets some specific layers.
Considering I am a complete noob when it comes to shaders, how can I make the box display less transparent / more towards a solid color when some light hits it?
Alternatively I will just drop the shader and only display the darkness engulfed object when the player is close enough, effectively having a black shape that's somewhat lit when the player reaches it but I'm hoping there is a shader that could make it better!
Thank you very much in advance!
Your answer
![](https://koobas.hobune.stream/wayback/20220612110937im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How can I add volume/depth to shadows? 0 Answers
Adding a Pass to the Standard Shader 0 Answers
Limit Amount of Light Applied to Sprite 0 Answers
Shaders - How to have multiple objects show different textures when it has some light. 0 Answers
How to make an object emit light without using the standard shader 0 Answers