Canvas Modulate manipulation?

Godot Version

4.5.1 stable

Question

I am making a day/night cycle in my game. I have a certain node I do not want to be affected by the Canvas Modulate; wondering what is the best way to achieve this.

I found a similar topic from a year ago that suggested a shader on the sprite node, but I have no experience in that.

This is the shader if anyone wants to expand/explain.

shader_type canvas_item;

void fragment()
{
	COLOR = texture(TEXTURE, UV);
}

is this your question ?

I CANT ADD SHADERS TO NODES

if yes , you just need to go to material section in the inspector of the node ; than add an shader material ; add a shader ; and a shader editor will apear on the bottom .

delete the shader codes there , and paste here the shader that you have found .

My question is how to make a node not be affected by canvas modulate.

Not full context, be helpful if you say what you trying to achieve and how looks your scene build.

Short answer: set it to “ffffff”

it doesnt work in godot 4.6

I did say what I am trying to achieve…

I do not want the night cycle to affect one of my characters.

If it is not possible, then I can live without it.

you can add a point light to your node , but that point light should be compelety match to your node and have an opposite color to your canvas modulate

I did not want to go that route. Thought there may be a better way to execute what I wanted.

I can try, thanks for the suggestion. :slightly_smiling_face:

shader_type canvas_item;
uniform vec4 my_modulate: source_color;

void vertex() {
	COLOR = my_modulate;
}

void fragment() {
	vec4 texture_p = texture(TEXTURE, UV);
	COLOR.rgb = texture_p.rgb;
	COLOR.a = my_modulate.a * texture_p.a;
}

look does this shader work or not ?

Put the nodes you don’t want affected onto a canvas layer.

Thank you!! :heart: