c# - .Net 中的网格生成库?

标签 c# .net wpf

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

哪些提供以下功能?

我们只需添加作为输入的点云3D空间中的点(使用XY和< strong>Z 协调)

并且它在ViewPort3D 中显示3D 对象。意味着从点云自动生成 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/

相关文章:

c# - 如何在 C# 中通过用户交互运行注册表文件

c# - 处理 FileStream 和 BinaryReader

c# - 使用 Caliburn.Micro 将命令绑定(bind)到 ListView 内的按钮

c# - 不同命名空间中的类

C# Webclient.DownloadData 仅返回垃圾

c# - 在用户控件(代码隐藏)中为 wpf 文本框更改 'isenabled'

c# - 是否有用于添加 HttpResponseHeader 的内容 Header Type?

.net - .NET 是否支持对正在运行的桌面应用程序进行更改?

wpf - 资源字典的 Visual Studio xaml 编辑器

c# - 如何从代码隐藏更改 VisualBrush 中使用的 StaticResource 以响应正确的用户输入?