Questions About Post Processing Stage

I have some questions about Post Processing Stage.

1、I guess whether the PostProcessingStage only support to receive fragment Shader?

2、Where or how can I code vertex Shader for it?

3、Do it need some vertex Shader to run correctly?

var fs =
    'uniform sampler2D colorTexture;\n' +
    'varying vec2 v_textureCoordinates;\n' +
    'uniform float scale;\n' +
    'uniform vec3 offset;\n' +
    'void main() {\n' +
    '    vec4 color = texture2D(colorTexture, v_textureCoordinates);\n' +
    '    gl_FragColor = vec4(color.rgb * scale + offset, 1.0);\n' +
scene.postProcessStages.add(new Cesium.PostProcessStage({
    fragmentShader : fs,// only fragment Shader ?
    uniforms : {
        scale : 1.1,
        offset : function() {
            return new Cesium.Cartesian3(0.1, 0.2, 0.3);

Yes, a post process effect is meant to take in the rendered scene and apply any additional image processing to it. Can you describe what you’re trying to do? It sounds like you might want to look into rendering the scene to a texture, and then you run that texture through a custom vertex/frag shader. I believe this dynamc wind visualization does something like that to create this effect: