One of the advanced effects you can create with shaders is lighting, which simulates how light interacts with your game objects. You can do this by using normals, which are vectors that point outwards from the surface of your game objects, and calculating the angle between the normals and the light source. You can also use different types of lighting, such as ambient, diffuse, specular, or emissive, to create different effects. You can also use multiple light sources, such as directional, point, or spot lights, to create more realistic scenes.
Another advanced effect you can create with shaders is post-processing, which applies effects to the whole scene after it is rendered. You can do this by using a technique called render-to-texture, which involves rendering your scene to a texture instead of the screen, and then applying a shader to the texture. You can also use multiple textures, called framebuffers, to create effects like blurring, sharpening, or color grading. You can also use custom filters, such as convolution matrices, noise functions, or color curves, to create effects like edge detection, pixelation, or chromatic aberration.