Currently three wants to achieve the effect shown in the image, a model two colors; And another color gradually covers another color with the Y-axis;hope you can help, thank you

As long as you want the division between colors to be a flat plane, you can use clipping planes to achieve this.
All the same, but one mesh
Clipping won’t work anymore though
, as its chunk is removed from fragment shader.
@prisoner849 nice! 
Thank you very much for your answer and the question has been resolved