Godot Engine:如何把你游戏中的Sprite、UI以及3D模型变成灰色

用Shader置灰

  • 2D(Sprite和UI)的置灰

范例

在这里插入图片描述

Shader代码
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代码
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;
}
效果

在这里插入图片描述
在这里插入图片描述

发布了393 篇原创文章 · 获赞 1495 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/hello_tute/article/details/105306903