3D * .stl曲面模型转换为2D图像堆栈?

问题描述 投票:2回答:2

好吧,首先让我说清楚,我对将图像堆栈转换为3D模型不感兴趣。

我有一个* .stl文件(三角形表面网格),我想将它切成一个图像堆栈。我看过Slic3r和Meshmixer,但他们都只给出了Gcode。

因此,我有表面上所有点的顶点(偶然不凸)和它们的连通性。哪些库可以帮助解决这个问题?

我的感觉是我需要在没有通过已知顶点的切片上插入边界。

我对Python和C ++很满意,但我愿意开阔视野。

python c++ graphics 3d imaging
2个回答
1
投票

例如,如果您使用OpenGL渲染网格(通过应用程序中的任何方式),那么只需:

  1. 设置你的相机,使屏幕投影平面平行于切片......
  2. 像往常一样清除屏幕缓冲区,glClearColor设置为背景颜色
  3. 使用设置为相机空间中切片的Z坐标的glClearDepth清除深度缓冲区
  4. 设置glDepthFunc(GL_EQUAL)
  5. 渲染网格

就像是:

// here set view
glClearColor( 0.0,0.0,0.0,0.0 ); // <0.0,1.0> r,g,b,a
glClearDepth( 0.5 );             // <0.0,1.0> ... 0.0 = z_near, 1.0 = z_far 
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDepthFunc(GL_EQUAL);
// here render mesh

这将仅渲染片段具有Z==Slice coordinate的切片。这也可以通过GLSL丢弃所有具有不同Z的碎片来完成。 DirectX应该有类似的东西(我不使用它,所以我不确定)。

由于大多数网格都是BR模型(空心),因此您将获得切片的周长,因此您很可能需要填充它以满足您的需求...

您还可以尝试渲染厚切片......其中Z在预定义值附近...


1
投票

如果HTTP API解决方案适合您的目的,那么我会建议以下resourceServer-side 3D mesh to thumbnail image rendering by http://manifold.metamatic.us

您可以将3D网格(STL,OBJ,3DS)发布到API端点并获取JSON响应。它将包含3D模型的2D图像渲染的URL以及其他3D测量结果,如体积,面积,边界框,构建时间。

与使用python,PHP,JavaScript甚至cURL命令行脚本编写的Manifold API端点连接的客户端库也是available

我希望这有助于您的搜索。如果您不是在寻找黑盒解决方案,而是尝试自己实现3D渲染器,那么请原谅。

© www.soinside.com 2019 - 2024. All rights reserved.