   How to Design a 3D GUI
  Hello, I am new to the gamedev forums.  I have done some searching on this topic but to no avail, so I am posting here.I am looking to design a simple 3D GUI, where the elements of the interface (such as the window) are drawn onto quads as textures.  (This is in contrast to... a GUI that is just drawn directly to the screen in 2D).  An example of a game that accomplishes this is EVE Online (www.eve-online.com) and my problem is that I cannot figure out how to design the GUI such that elements in the world will not intersect elements of the GUI.The GUI would appear directly over the main game world; in other words, if you invoke the main menu, for instance, it won't show a completely separate screen (like Final Fantasy games, for example, do).  The GUI elements would pop up right in front of the camera, in the same environment as the rest of the 3d stuff.So, I cannot be guaranteed that things won't intersect with GUI elements.  I thought of incresing the camera bounding box a little, and placing the menu quads within that bounding box, but that would not account for, say, particles that do not respect bounding boxes.Then I had this other idea, where I would set up two cameras in the world.  Camera1 would have a quad in front of it, and it would never move.  Camera2 would be the actual game camera that moves around a 3D environment.  Then, instead of drawing the view of Camera2 to the backbuffer, I would draw it to a texture, which I would then map onto the quad that Camera1 is watching.  Then, I would set up another quad between the first one and Camera1 that would have all the GUI stuff drawn to.  That way, I can achieve the system that I want and be guaranteed that elements in the 3D world will never intersect those of the GUI.  However, this seems really unreasonable and ineffecient.Does anyone know how "3D GUIs" are done for real (like EVE Online)?  Or does anyone have a better idea how to achieve what I am looking to do?Thanks.   
  clear the depth buffer before rendering your gui, or, turn off zread when you render your GUI (you'll probably need your menu's sorted correctly though for this one)   ;  To clear up the terminology here, that's not a 3d gui as far as I can tell, a 3d gui being something where the elements themselves live in 3d, something like this.You are worried about a number of issues, but I think you can just do the following:1) draw 3d scene2) enter orthogonal projection3) disable depth buffer and lighting4) draw gui using triangles or quads or whatever, in depth-sorted orderAs far as I know, that's how it's usually done. No need for fancy quad and camera manipulation techniques, and you'll never see world elements interacting with the gui (because the gui is the last thing you draw).P.S.: well, second to last. you may want to draw the mouse cursor last :D   ;  Amazing.You people are awesome.  Thanks a lot!   