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

时间:2016-06-16 15:23:18

标签: python c++ graphics 3d imaging

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

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

所以我给出了表面上所有点的顶点(不是偶然凸出的)&他们的连接。哪些库可以帮助解决这个问题?

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

我对Python& C ++在推动,但我愿意开阔视野。

2 个答案:

答案 0 :(得分:1)

例如,如果您使用 OpenGL (通过应用程序中的任何方式)渲染网格物体,那么为了获得切片,您只需:

  1. 设置相机,使屏幕投影平面与切片平行...
  2. 照常清除屏幕缓冲区,glClearColor设置为背景颜色
  3. 清除深度缓冲区,glClearDepth设置为相机空间中切片的Z坐标
  4. 设置glDepthFunc(GL_EQUAL)
  5. 渲染网格
  6. 类似的东西:

    // 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 :(得分: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渲染器,那么请原谅。