rendering, saving and recalling

Hi all.
I’ve been trying to get this answer for a while now .
I want to render a 3D scene, save it (on the card’s memory somewhere), and then recall it. In between I may want to render a different scene, and later recall that one too. I also want tomanage the whole thing: I want to know how much more resources I have, so I don’t overwrite previous scenes.
I thought about using textures, i.e. render a scene and then copy it to a texture (glCopyTexImage), thus managing an array of textures. This is not great, because my scenes are 3D (I need the depth component as well).
This is very frustrating, because this task seems very useful (in games for example), if you have a complex scene, and you want to do the complex rendering only once, but displaying many times.
And by the way, aux buffers and pbuffers didn’t look very attractive to me either.
Thanks for any help.

What about writing 2 or more rendering functions? You could have one draw and manipulate a certain scene, while another does the same but to a different scene.

for example…

void RenderScene()
switch (scene)
case 0:

case 1:

// do non-scene specific stuff here