1.github项目地址
https://github.com/yk35/tinyply.net/tree/master
2.安装方式。文档说明需要下载项目后编译生成dll文件

3.按文档说明生产dll文件

4.在自己的项目中引用tinyplynet.dll即可

5.github文档中的使用说明

6.我的代码示例
public static async Task<string> SavePointCloudToPLYV4(string PlyName, SurfacePoint[] surfaceBuffer, bool isAsync,bool isBinary)
{
string result = "";
try
{
string PlyDir = "";
PlyDir = AppDomain.CurrentDomain.BaseDirectory + "AppPLY";
if (!Directory.Exists(PlyDir))
{
Directory.CreateDirectory(PlyDir);
}
string PLYFile = $@"{PlyDir}/{PlyName}.ply";
_ = Task.Run(async () =>
{
Serilog.Log.Logger.Debug($"开始异步拼接PLY文件内容");
try
{
var vertices = new List<double>();
foreach(var item in surfaceBuffer)
{
vertices.Add(item.x);
vertices.Add(item.y);
vertices.Add(item.z);
}
var output = new PlyFile();
output.AddPropertiesToElement("vertex", new[] { "x", "y", "z" }, vertices);
//output.AddListPropertyToElement("face", "vertex_indices", faces);
using var outStream = File.Create(PLYFile);
output.Write(outStream, isBinary); // true = binary
}
catch (Exception ex)
{
Serilog.Log.Logger.Error($" 异步点云保存出现异常 [{PLYFile}] {ex.Message} {ex.StackTrace}");
}
Serilog.Log.Logger.Debug($" 异步点云保存完成 [{PLYFile}]");
});
result = PLYFile;
}
catch (Exception ex)
{
Serilog.Log.Logger.Error($" 保存点云出现异常[{PlyName}] {ex.Message}");
}
return result;
}
使用二进制格式ply文件保存和读取速度会比ascii码格式快很多