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.