I'm only speaking from B3D experience, but I think this would work in Max too.
What I do is render things in "layers". I create a new camera for each layer. The main game is one layer, and any HUD stuff or overlays are different layers. During the render section of the program, each layer shows the camera, renders, then hides the camera. Only the first camera clears the buffer first, and the overlay cameras render over the top of the buffer. This also lets you control the order of rendering overlay stuff.
The nice thing about doing it this way is that you can have ortho projected cameras for overlayed stuff like HUDs and message boxes. Plus, you don't have to worry about entities in various layers running into each other in the scene. Just make sure you move each overlay layer's camera a good distance away from each other so you don't see any entities from other layers during the render. One tip is to make a pivot point to parent everything in a layer to, so you can hide the pivot and hide the entire layer when rendering the other layers.
What I do is render things in "layers". I create a new camera for each layer. The main game is one layer, and any HUD stuff or overlays are different layers. During the render section of the program, each layer shows the camera, renders, then hides the camera. Only the first camera clears the buffer first, and the overlay cameras render over the top of the buffer. This also lets you control the order of rendering overlay stuff.
The nice thing about doing it this way is that you can have ortho projected cameras for overlayed stuff like HUDs and message boxes. Plus, you don't have to worry about entities in various layers running into each other in the scene. Just make sure you move each overlay layer's camera a good distance away from each other so you don't see any entities from other layers during the render. One tip is to make a pivot point to parent everything in a layer to, so you can hide the pivot and hide the entire layer when rendering the other layers.