3D *.stl 表面模型转换为 2D 图像堆栈?
3D *.stl surface model convert to 2D image stack?
好的,首先让我说清楚,我对将图像堆栈转换为 3D 模型不感兴趣。
我有一个 *.stl 文件(一个三角曲面网格),我想将它切回到图像堆栈中。我看过 Slic3r 和 Meshmixer,但它们都只提供 Gcode。
所以假设我有表面上所有点的顶点(顺便说一句,它不是凸的)及其连通性。有哪些图书馆可以帮助解决这个问题?
我的感觉是我需要在没有通过已知顶点的切片上插入边界。
我对 Python 和 C++ 很满意,但我愿意拓宽我的视野。
例如,如果您要使用 OpenGL 渲染网格(通过任何方式在您的应用程序中),那么要获取您的切片,您只需:
- 设置相机,使屏幕投影平面与切片平行...
- 像往常一样清除屏幕缓冲区,
glClearColor
设置为背景颜色
- 清除你的深度缓冲区
glClearDepth
设置为相机切片的 Z 坐标 space
- 设置
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 值在预定义值附近...
如果 HTTP API 解决方案适合您的目的,那么我会建议以下 resource:
您可以 POST 将 3D 网格(STL、OBJ、3DS)连接到 API 端点并获得 JSON 响应。它将包含 URL 到 3D 模型的 2D 图像渲染以及其他 3D 测量结果,例如体积、面积、边界框、构建时间。
与在 python、PHP、JavaScript 甚至 cURL 命令行中编写的 Manifold API 端点交互的客户端库脚本也是 available.
希望对您的搜索有所帮助。如果您不是在寻找黑盒解决方案而是想自己实现 3D 渲染器,请原谅。
好的,首先让我说清楚,我对将图像堆栈转换为 3D 模型不感兴趣。
我有一个 *.stl 文件(一个三角曲面网格),我想将它切回到图像堆栈中。我看过 Slic3r 和 Meshmixer,但它们都只提供 Gcode。
所以假设我有表面上所有点的顶点(顺便说一句,它不是凸的)及其连通性。有哪些图书馆可以帮助解决这个问题?
我的感觉是我需要在没有通过已知顶点的切片上插入边界。
我对 Python 和 C++ 很满意,但我愿意拓宽我的视野。
例如,如果您要使用 OpenGL 渲染网格(通过任何方式在您的应用程序中),那么要获取您的切片,您只需:
- 设置相机,使屏幕投影平面与切片平行...
- 像往常一样清除屏幕缓冲区,
glClearColor
设置为背景颜色 - 清除你的深度缓冲区
glClearDepth
设置为相机切片的 Z 坐标 space - 设置
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 值在预定义值附近...
如果 HTTP API 解决方案适合您的目的,那么我会建议以下 resource:
您可以 POST 将 3D 网格(STL、OBJ、3DS)连接到 API 端点并获得 JSON 响应。它将包含 URL 到 3D 模型的 2D 图像渲染以及其他 3D 测量结果,例如体积、面积、边界框、构建时间。
与在 python、PHP、JavaScript 甚至 cURL 命令行中编写的 Manifold API 端点交互的客户端库脚本也是 available.
希望对您的搜索有所帮助。如果您不是在寻找黑盒解决方案而是想自己实现 3D 渲染器,请原谅。