Thank you for yor answer!
I tried this way but i have an issue with incorrect color picking position (or something else).
I have model with albedo texture.
Spatial material. White albedo color and flags: unshaded, donotreceive_shadows.
Texture is totally black, with different areas shades of gray (cheeks and nose).
But when my cursor is quite near the model, or even on some black part of it, albedo color ic changing.
My code is (yes, i know that i can do it with shader and it will be much better color mixing but its just a quick test):
var mouse = get_tree().root.get_mouse_position() #$Viewport
var mask_render = get_tree().root.get_texture().get_data()
var pixel = mask_render.get_pixelv(mouse)
if pixel.r <= 0.3:
$head/full.get_surface_material(0).albedo_color = Color(255,0,0,1)
$head/full.get_surface_material(0).albedo_color = Color(0,0,0,1)