First, I will answer your main question, and then I will answer your real question.
Yes, you can save the vertex conversion output for later use. This is called Transform Feedback. This requires OpenGL 3.x or better hardware (aka: DX10-hardware).
How it works, this happens in two stages. First, you must set up your program for feedback based changes. You do this with glTransformFeedbackVaryings . This must be done before binding the program, similar to glBindAttribLocation .
After that, you need to bind the buffers (taking into account how you changed the feedback variables with the conversion) to GL_TRANSFORM_FEEDBACK_BUFFER using glBindBufferRange , thereby setting which buffers the data is written to. Then you start working with feedback using glBeginTransformFeedback and continue to work as usual. You can use a primitive query object to get the number of primitives written (so you can draw it later with glDrawArrays ), or if you have 4.x hardware (or AMD 3.x hardware, all of which support ARB_transform_feedback2), you can rendering without asking for the number of primitives , this will save time.
Now for your current question: it probably won't help you buy any real performance.
You are painting the landscape. And the landscape really is not being transformed. Usually you have matrix multiplication or two, possibly with normals (although if you are rendering for shadow maps, you don't even have this). What is it.
The odds are very good, that if you score 100,000 vertices on the GPU with such a simple shader, you probably have saturated the GPU's ability to display them all. You are most likely a bottleneck in primitive build / setup, and this will not accelerate.
This way you probably wonโt get much. Feedback is usually used to generate triangle data for later use (efficiently pseudo-computational shaders) or to save the results of complex transformations, such as smoothing a matrix palette with double quaternions, etc. A simple multiply-and-go matrix is โโunlikely to be glare on the radar.
You can try it if you want. But most likely you will not have any problems. As a rule, the best solution is to use some form of delayed rendering, so you only need to render the + X object for each shadow picture only once (where X is determined by the shadow mapping algorithm). And since shadow maps require different transformations, you still wonโt get anything from the feedback.