Godot - 我可以像素化节点(Sprite)吗?
Godot - can I pixelate a node (Sprite)?
我可以在 Godot 中像素化 2D 节点(Sprite
在我的例子中)吗?我需要这样的东西:
怎么做并不重要:使用着色器或使用代码或进行一些调整。任何帮助表示赞赏。
我自己搞定了,确实很简单。我只需要一个着色器:
shader_type canvas_item;
uniform float size_x = 32.0; // blocks by x direction
uniform float size_y = 32.0; // blocks by y direction
void fragment() {
COLOR = texture(TEXTURE, vec2(floor(UV.x * size_x) / (size_x - 1.0), floor(UV.y * size_y) / (size_y - 1.0)));
}
fragment
函数的内部将 UV
向上缩放,使用 floor
将其向下舍入并向下缩放结果。上面的图像(在问题中)被像素化为 32x32 大小,使用此着色器后 Sprite
看起来就像图像示例中的一样。
P.S. 对GUI节点不起作用,也许我会解决这个问题。
我可以在 Godot 中像素化 2D 节点(Sprite
在我的例子中)吗?我需要这样的东西:
怎么做并不重要:使用着色器或使用代码或进行一些调整。任何帮助表示赞赏。
我自己搞定了,确实很简单。我只需要一个着色器:
shader_type canvas_item;
uniform float size_x = 32.0; // blocks by x direction
uniform float size_y = 32.0; // blocks by y direction
void fragment() {
COLOR = texture(TEXTURE, vec2(floor(UV.x * size_x) / (size_x - 1.0), floor(UV.y * size_y) / (size_y - 1.0)));
}
fragment
函数的内部将 UV
向上缩放,使用 floor
将其向下舍入并向下缩放结果。上面的图像(在问题中)被像素化为 32x32 大小,使用此着色器后 Sprite
看起来就像图像示例中的一样。
P.S. 对GUI节点不起作用,也许我会解决这个问题。