Godot Shader学习笔记:采样,与像素化

2024-02-28

在先前的shader里,我认为我需要先了解用于制作的shader的基础。

我需要知道“如何向周围进行采样”诸如此类的事情。

通过一个蒙在相机前的MeshInstance(QuadMesh),我们就可以为戈多创建各种奇怪的后处理效果。最简单的效果之一是像素化:也就是让采样点“收束”,只对最近的整点采样。如此就可以令屏幕“像素化”。

我们需要一个指定了`hint_screen_texture`的sampler2D uniform, 核心代码只有短短一行:

void fragment() {
	// 像素化采样
	vec2 resample_uv = floor(SCREEN_UV * VIEWPORT_SIZE / 8.0)*8.0 / VIEWPORT_SIZE;
	ALBEDO = texture(screen_texture, resample_uv).xyz;
}

如此即可实现简单的像素化采样。这样就会将分辨率缩放到原本的1/8.