c# - Silverlight 5 和 VertexBuffer.GetData()

标签 c# silverlight silverlight-5.0 xna-4.0

我正在尝试在 silverlight 5 中实现 3d 模型碰撞。为此,我正在创建一个 BoundingBox(就像在 XNA4.0 中一样):

我看到了同样的问题VertexBuffer.GetData() and Silverlight 5在此链接中,但未找到答案。

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

最佳答案

出于安全原因,Microsoft 拒绝访问 GPU。所以他们有暂停 GetData() 方法。要解决 Silverlight 5 中的这个问题,您可以编写一个自定义内容管道来加载对象并尝试读取顶点数据,它可以解决您的问题。

关于c# - Silverlight 5 和 VertexBuffer.GetData(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477080/

相关文章:

c# - 将字符串拆分为字符串生成器,删除所有与模式匹配的单词

c# - 关于 AES (CBC) 和 IV 的问题(是否可以继续使用 aes(CBC) 加密?,...)

c# - XElement - 如何将元素的后代放入字符串中

c# - 异步运行两个任务并等待它们结束的最快方法

使用自定义控件时 Silverlight 错误 "Layout Cycle Detected Layout could not complete"

c# - 带有 ObservableCollection<T> 和动态过滤器的 Silverlight ListBox

silverlight - Silverlight 5 中的并发 ObservableCollection

c# - C# 中的正则表达式提取子字符串

c# - Silverlight - 第一次进入全屏在后台打开(FF,Chrome,不是 IE)

.net - Silverlight v5.0 SDK