   still lost on meshes
  Im lost on how to load 2 or more different meshes, is there a way to use a mesh array so if I preload meshes into memory I can call mesh[12].DrawSubset(i);?I guess where im lost is im doing this before I render a mesh I perload it using a mesh varible, do I have to create a new mesh varible for each mesh I want to load?any help would be great   
  I'm new to meshes but from what I know, yes you do have to create a new variable of ID3DXMesh type for each mesh you want.   ;  Well, if you feel like it, you could create a simple class called (something like) 'CMesh' or something. And the could contain functions like: LoadMesh, Render, etc.That's the way I have always done it. Then you can create an array of 'CMesh' objects. Or you could just create a function called (something like) 'LoadMesh' and pass an 'ID3DXMESH' object to it. That way you could call 'LoadMesh' and pass each new mesh to it. Of course, you would still use an array of mesh objects. Either way works. =)  Just thought I'd get my ideas in. =)   ;  It seems that you are using C# or VB.You could create a class could a Resource Manager class. With this class you could create a few methods but to keep it simple let's take a look at a simple structure you could follow and adapt to your class.//Standard namespaces included in the projectusing System;using System.Collections;using System.Collections.Generic;using System.Text;using System.Windows.Forms;//DirectX/Direct3D namespacesusing Microsoft.DirectX;using Microsoft.DirectX.Direct3D;/// <summary>/// Manages resources such as Meshes, Animations, Textures./// </summary>class ResourceManager{#region Membersprivate Hashtable resourceList;private Device device;#endregion#region Propertiespublic Hashtable ResourceList{get { return resourceList; }}public Device Device{set { device = value; }}#endregion#region Methods/// <summary>/// Constructor : Initializes the resource list/// </summary>public ResourceManager(){resourceList = new Hashtable();}/// <summary>/// Add a resource to the resource list (HashTable)/// </summary>/// <param name="device">a Valid Direct3D device</param>/// <param name="key">a Unique identifiable key for the resource</param>/// <param name="resourceItem">a Resource object or null-terminated string to the source of a file</param>public void Add(string key, object resourceItem){if (resourceItem.GetType().Name.Equals("String")) //if the object is a string{string resource = (string)resourceItem; //place the resource into a stringstring type = resource.Substring(resource.IndexOf('.')); //get the file extensionif (type == ".x") //if the file is a .X file (it's a mesh){try{Mesh mesh = Mesh.FromFile(resource, MeshFlags.Managed, device); //Load the mesh using the Mesh.FromFile()resourceList.Add(key, mesh); //Add the resource to the resource list}catch (DirectXException) //If something went wrong catch the exception{MessageBox.Show(DirectXException.GetDirectXErrorString(DirectXException.LastError)); //Show the error}}else if (type == ".jpg"){try{Texture texture = TextureLoader.FromFile(device, resource);resourceList.Add(key, texture);}catch (DirectXException){MessageBox.Show(DirectXException.GetDirectXErrorString(DirectXException.LastError)); //Show the error}}}elseresourceList.Add(key, resourceItem); //If it's not a String it's an object and could just be added}#endregion}This is obviously nowhere near a decent implementation but should give you a basic idea. Then when you want to use the class you could do the following.resourceManager.Add("MyMesh", Mesh.FromFile("Mesh.x", MeshFlags.Managed, renderer.Device));And then you could just access the resource list contained within the resource manager to access different resources.I hope this helps a bit and I wish I had more time to give you a decent implementation. This should put you on the right track though.Take care.   ;  If you are using Static Meshes then you only load them once and for each one you want to draw you just set the world Matrix of where you want it to be and just call drawsubset. If you are dealing with skiined mesh models that will have different frame set when you animate them, then you will nees to load an instance for each model. Hope that helps   ;  so when using this class I will want to perload all my meshes and textures then in my rendering loop do something like thisMesh mesh = (Mesh)resourceManager["mymesh"];mesh.DrawSubSet(i);if I do this how would I access the right Material's for the mesh I want to draw or will I save that in this manager class also?this is good stuff thanks:)   