如何在opengl中渲染横截面

How to render a cross section in opengl

我试图使用 OpenGL 获取模型的横截面。具体来说,我想将横截面视图投影到二维平面上。 (例如,如果我要切割厚度为零且长度有限的管道,从上到下垂直,我的输出在 2D 视图中应该是一个圆)。

我知道 glClipPlane() 有效,但我的理解是该函数沿平面对模型进行切片,而不是投影切片。有没有办法在 OpenGL 中实现我想要的?

glClipPlane 的作用是,它只是丢弃其后面渲染的所有像素。

没有开箱即用的方法来填充模型的 "insides",因为无法知道那里应该有什么,尤其是如果您还记得的话,OpenGL 只是一个渲染处理三角形汤的猴子。模型组合是更高级别的抽象,需要由您的应用处理。

您需要自己构建覆盖横截面表面的多边形。为此,您可能需要一些提供 3D 布尔运算和表面重建的库。

应该有一些体积 3D 渲染 API,比如基于体素的等等,但使用它们可能会更让人头疼。