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

哪些提供以下功能?

我们只需在3D空间中添加点云点作为输入(包括 X Y Z 共同组织)

并在 ViewPort3D 中显示 3D对象。意味着会自动从Point Cloud生成MESH,并在 ViewPort3D 中将输出作为 3D对象给出。

注意:考虑对象为凸对象。

谢谢..........

最佳答案

我最近一直在想同样的事情,并得出了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();
}

关于c# - NET中生成网格的库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4896710/

10-13 07:37