好吧,首先让我说清楚,我对将图像堆栈转换为3D模型不感兴趣。
我有一个* .stl文件(三角形表面网格),我想将它切成一个图像堆栈。我看过Slic3r和Meshmixer,但他们都只给出了Gcode。
因此,我有表面上所有点的顶点(偶然不凸)和它们的连通性。哪些库可以帮助解决这个问题?
我的感觉是我需要在没有通过已知顶点的切片上插入边界。
我对Python和C ++很满意,但我愿意开阔视野。
例如,如果您使用OpenGL渲染网格(通过应用程序中的任何方式),那么只需:
glClearColor
设置为背景颜色glClearDepth
清除深度缓冲区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在预定义值附近...