好的开始让我说清楚,我对将图像堆栈转换为3D模型不感兴趣。
我有一个* .stl文件(三角形表面网格)&我想把它切成一个图像堆栈。我看过Slic3r& Meshmixer,但他们都只发出Gcode。
所以我给出了表面上所有点的顶点(不是偶然凸出的)&他们的连接。哪些库可以帮助解决这个问题?
我的感觉是我需要在没有通过已知顶点的切片上插入边界。
我对Python& C ++在推动,但我愿意开阔视野。
答案 0 :(得分:1)
例如,如果您使用 OpenGL (通过应用程序中的任何方式)渲染网格物体,那么为了获得切片,您只需:
glClearColor
设置为背景颜色 glClearDepth
设置为相机空间中切片的Z坐标 glDepthFunc(GL_EQUAL)
类似的东西:
// 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)