2013-01-23 8 views
5

Je suis en train de réaliser une collision modèle 3d dans silverlight 5. Pour ce faire, je suis en train de créer un BoundingBox (comme dans XNA4.0):Silverlight 5 et VertexBuffer.GetData()

je vis la même question VertexBuffer.GetData() and Silverlight 5 dans ce lien mais aucune réponse trouvée.

public BoundingBox GetBoundingBoxFromModel(Model model) 
    {    
     BoundingBox boundingBox = new BoundingBox(); 

      foreach (ModelMeshPart part in model.Meshes[0].MeshParts) 
      { 
       VertexPositionNormalTexture[] vertices = new VertexPositionNormalTexture[part.NumVertices]; 
       Vector3[] vertexs = new Vector3[vertices.Length]; 

       part.VertexBuffer.GetData<VertexPositionNormalTexture>(vertices);      


       for (int index = 0; index < vertexs.Length; index++) 
       { 
        vertexs[index] = vertices[index].Position; 
       } 

       boundingBox = BoundingBox.CreateMerged(boundingBox, BoundingBox.CreateFromPoints(vertexs)); 
      }    
     return boundingBox; 
    } 

Répondre

0

Pour des raisons de sécurité, Microsoft a un accès refusé à GPU. Donc, ils ont suspendu la méthode GetData(). Pour résoudre ce problème dans Silverlight 5, vous pouvez écrire un pipeline de contenu personnalisé pour charger l'objet et essayer de lire les données de vertex et résoudre votre problème.

Questions connexes