问题遇到的现象和发生背景
在RevitExportObj2Gltf项目中,最后阶段将obj转为glb和gltf格式,并且用draco进行压缩轻量处理。请问能否直接对obj本身用draco进行压缩处理呢,如果可以请问应该怎么修改代码?
用代码块功能插入代码,请勿粘贴截图
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
//是否使用操作系统shell启动
p.StartInfo.RedirectStandardInput = true;
//接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true;
//由调用程序获取输出信息
p.StartInfo.RedirectStandardError = true;
//重定向标准错误输出
p.StartInfo.CreateNoWindow = true;//不显示程序窗口
p.Start();
//启动程序
//使用gltf pipeline命令行工具
//向cmd窗口发送输入信息 (node.js已经是配置好了系统环境变量)
//string str = @"cd D:\cmder";
//p.StandardInput.WriteLine(str);
//obj2gltf -i model.obj -o model.gltf
//obj转gltf
//string obj2GltfStr = string.Format("obj2gltf -i {0} -o {1}", Path.GetDirectoryName(sdial.FileName) + "\" +
// Path.GetFileNameWithoutExtension(sdial.FileName) + ".obj", Path.GetDirectoryName(sdial.FileName) + "\" + Path.GetFileNameWithoutExtension(sdial.FileName) + ".gltf");
//p.StandardInput.WriteLine(obj2GltfStr);
//Debug.Print("obj2gltf successful.");
//运用Draco算法将GLB压缩
string glbName = Path.GetFileNameWithoutExtension(sdial.FileName) + "(Draco)" + ".glb";
string glbstr = string.Format("gltf-pipeline.cmd gltf-pipeline -i {0} -o {1}", sdial.FileName, Path.GetDirectoryName(sdial.FileName) + "\" + glbName);
p.StandardInput.WriteLine(glbstr);
//gltf-pipeline.c md gltf-pipeline -i model.gltf -o modelDraco.gltf -d
//运用Draco算法将GLTF压缩
string gltfDracoName = Path.GetFileNameWithoutExtension(sdial.FileName) + "(Draco)" + ".gltf";
string gltfDraco = string.Format("gltf-pipeline.cmd gltf-pipeline -i {0} -o {1} -d", sdial.FileName, Path.GetDirectoryName(sdial.FileName) + "\" + gltfDracoName);
p.StandardInput.WriteLine(gltfDraco);
p.StandardInput.AutoFlush = true;
p.StandardInput.WriteLine("exit");
//获取cmd窗口的输出信息
string output = p.StandardOutput.ReadToEnd();
MessageBox.Show(output);
}
我想要达到的结果
导出压缩轻量后的obj文件,求解答!