Split the main shader into two separate 2D and 3D shaders