.Net中的网格生成库?

时间:2011-02-04 10:02:51

标签: c# .net wpf

.Net 中是否有库(.dll)可用,或作为第三方库提供。

哪些提供以下功能?

我们只是添加点云 3D空间中的点数 X Y 和< strong> Z Co-Ordinate)

它在 ViewPort3D 中显示 3D对象。 means从Point Cloud自动生成MESH,并在 ViewPort3D 中将输出作为 3D对象

注意:考虑对象是Convex对象。

由于..........

1 个答案:

答案 0 :(得分:5)

我最近一直想知道同样的事情,并得出OpenTK易于使用的结论。我认为它可以或多或少地直接访问OpenGL API,并且不需要加载依赖项。

这是来自my own question and answer的一点点拷贝,这是我在过去几天测试了很多不同库的结果,目的是根据数据制作点云。从我的Kinect收到。

它没有向ViewPort3D提供输出,但从我的测试来看,它比使用WPF更快。我无法以可接受的速度在WPF中显示(并不断更新)640x480点云。

比较容易理解。它需要很少(并且可以理解)代码行才能开始。它没有为我保留对象所以我可以自由地为每个传递更改任何内容,这很好,因为我主要使用不安全的内存指针。

当然难以将速度与易用性结合起来。速度需要直接与3D API对话,同时易于使用需要抽象。因此,这必须被认为是比我尝试的其他一些API更低级别的API。如果我想做一些预制角色动画,那么XNA可能是一个更好的选择,但对于点云来说,到目前为止看起来非常有希望(4-5小时的黑客攻击)。

一些示例代码:

private void Render()
{
   // Every frame
   GL.Begin(BeginMode.Points);
   GL.MatrixMode(MatrixMode.Modelview);
   GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
   GL.LoadMatrix(ref cameraMatrix);

   GL.Begin(BeginMode.Points);

   // Here I can add lots of points. I add 200k without any big problem.
   // It seems these points could have been passed in as an array pointer too,
   //  but I'll look at that later.
   GL.Vertex3(x2, y2, z2);

   GL.End();
   glControl.SwapBuffers();
}