   Handling clothes\equipment in 3D
  I was wondering how I'd go about changing a model based on what clothes\equipment a character is wearing. Like should I remove or at least cull body part polies that are hidden when some clothes or equipment is equipped? And how would I do it so that equipment is animated with the character? Or is there another way to do it? I want the clothes/equipment to be seperate models.   
  With OGRE, you can use bones. See here.   ;  Most games store a set of tags along with the mesh data that are bound to the skeleton. These tags contain a position and orientation, along with a unique (for this model) identifier. Such identifiers can be integers, but they are usually stored as strings as you only need to perform a search operation when equipping/unequipping items. An example:struct CharacterItemTag{    std::string name;    Vector3 position;    Vector3 angle;    int bone_index;};Anyway, you also need a way of keeping track of what is equipped to your character (I'll leave that up to you). When it's time to render the attached items, transform the item's CharacterItemTag by the bone (like you would do your vertices) and then draw the item at the resulting position and angle.Regarding culling, it is best to make it configurable for that item. For example, say you have an armoured chest plate that completely covers the torso. In that case, it is fine to cull the character's torso. However, the player decides to equip an open shirt, their skin will be visible so you need to design the shirt to fit over the torso and then draw both.If you have the ability to change the characters proportions, it is best that you scale the items of clothing along with it otherwise you will get some very strange artifacting (i.e. shirts being warn inside the body :P).I hope that was clear enough - I've just woken up :)   ;  It sounds to me like his question is more along the lines of: "If the character is wearing a robe, I will have to draw different polys than if he's wearing plate armor. How?"I think what I would do is separate the character mesh in to "chunks," each with their own visibility flag and a tag like MENTAL mentions. So:struct MeshChunk{    unsigned short indexOffset; // offset in to the array of indices    unsigned short numTriangles; // number of triangles that need to be drawn    bool visible; // visibility flag    std::string tag; // identifying tag};struct Mesh{    Vertex* verts; // array of vertices    unsigned short* indices; // array of indices    MeshChunk* chunks; // array of chunks    // other stuff...material/texture/effects/etc.};Then, when equipment changes, you go through all mesh chunks and change their visibility based on the tag. E.g. if tag is "all" always set it visible, if the tag is "plate armor" only set it visible if the character is wearing plate armor, otherwise set it false. Then at render time, you just loop through all of your mesh chunks and draw only those that are visible.HTH   