gpt4 book ai didi

python - 3D *.STL 表面模型转换为 2D 图像堆栈?

转载 作者:太空狗 更新时间:2023-10-29 21:37:23 27 4
gpt4 key购买 nike

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

我有一个 *.STL 文件(一个三角化表面网格),我想将它切回到图像堆栈中。我看过 Slic3r 和 Meshmixer,但它们都只提供 Gcode。

所以假设我有表面上所有点的顶点(顺便说一下,这不是凸点)及其连通性。有哪些图书馆可以帮助解决这个问题?

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

我对 Python 和 C++ 很满意,但愿意拓宽我的视野。

最佳答案

例如,如果您要使用 OpenGL 渲染您的网格(通过您的应用程序内部的任何方式),那么要获取您的切片,您只需:

  1. 设置您的相机,使屏幕投影平面与切片平行...
  2. 像往常一样清除屏幕缓冲区,将 glClearColor 设置为背景色
  3. 通过将 glClearDepth 设置为相机空间中切片的 Z 坐标来清除深度缓冲区
  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 值在预定义值附近......

关于python - 3D *.STL 表面模型转换为 2D 图像堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863327/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com