2013-01-23 10 views
5

I 3D-Modell Kollision in Silverlight 5. Um das zu tun Ich schaffe eine BoundingBox (wie in XNA4.0) zu erreichen versuche:Silverlight 5 und VertexBuffer.GetData()

ich die gleiche Frage sah VertexBuffer.GetData() and Silverlight 5 In diesem Link aber keine Antworten gefunden.

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; 
    } 

Antwort

0

Aus Sicherheitsgründen hat Microsoft Zugriff auf GPU verweigert. Also haben sie die Methode GetData() suspendiert. Um dieses Problem in Silverlight 5 zu beheben, können Sie eine benutzerdefinierte Inhaltspipeline schreiben, um das Objekt zu laden und zu versuchen, die Scheitelpunktdaten zu lesen, und es löst Ihr Problem.