文章目录
用Shader置灰
- 用Shader置灰
- 2D(Sprite和UI)的置灰
- 范例
- Shader代码
- 效果
- 3D的置灰
- 范例
- Shader代码
- 效果
- 2D(Sprite和UI)的置灰
shader_type canvas_item;
uniform bool is_gray = false;
void fragment(){
vec4 color = texture(TEXTURE,UV);
if(is_gray){
color.r = color.g = color.b = (color.r + color.g + color.b)/3.0;
}
COLOR = color;
}
效果
- 3D的置灰
shader_type spatial;
render_mode unshaded;
uniform bool is_gray = false;
uniform sampler2D tex : hint_albedo;
void fragment(){
vec4 color = texture(tex,UV);
if(is_gray){
color.r = color.g = color.b = (color.r + color.g + color.b)/3.0;
}
ALBEDO = color.rgb;
ALPHA = color.a;
}
效果