What type of shader is best to use?

Hey I’ve been working on my texturing skills and have improved alot with them aswell as 3d modelling skills . I’ve also looked into and successfully created my own surface shaders aswell. My question is whether I should also look into vertex and fragment shaders aswell or what exactly should I be looking into since I want to get more serious with shader programming and theirs so little reference to it as its not something thats easily taught by others

Surface shaders are Unity’s own “wrapper”, or “wizard”, that makes it easier to write shaders that interact with advanced lighting models. Under the hood, what surface shaders actually do is create pixel and fragment shaders for you, which is what is run on the GPU. The surface shader code abstracts some of the standard code required to simulate, say, BlingPhong lighting on the surface - you just have to write “surface surf blingphong”…

Pixel/fragment shaders are (broadly) cross-platform, they are more customisable, but they can also be more complex.

So, if you want to understand or have control over exactly what the shader is doing, or if you want to write a shader that will work in an application other than Unity, you should look into pixel/fragment shaders in CG (or in HLSL, which is essentially identical). If, however, you want to create an effective working shader in Unity with minimum effort, you can stick with surface shaders.