用SCREEN_TEXUTE实现一个简单的屏幕滤镜。
效果图
代码如下
shader_type canvas_item;void fragment(){vec4 pixel = textureLod(SCREEN_TEXTURE,SCREEN_UV,0);COLOR.rgb = vec3((pixel.r + pixel.g + pixel.b) /3.0);}
获取屏幕截图纹理使用SCREEN_TEXTURE
内置属性。屏幕UV
坐标SCREEN_UV
。texture
函数是直接读取一个sampler2D
的值,而textureLod
可以获取指定的LOD
层级。
小结
这是
SCREEN_TEXTURE
最基本的用法,后面还会结合Viewport
等节点实现更复杂的效果。