如何在opengl中渲染横截面
How to render a cross section in opengl
我试图使用 OpenGL 获取模型的横截面。具体来说,我想将横截面视图投影到二维平面上。 (例如,如果我要切割厚度为零且长度有限的管道,从上到下垂直,我的输出在 2D 视图中应该是一个圆)。
我知道 glClipPlane()
有效,但我的理解是该函数沿平面对模型进行切片,而不是投影切片。有没有办法在 OpenGL 中实现我想要的?
glClipPlane
的作用是,它只是丢弃其后面渲染的所有像素。
没有开箱即用的方法来填充模型的 "insides",因为无法知道那里应该有什么,尤其是如果您还记得的话,OpenGL 只是一个渲染处理三角形汤的猴子。模型组合是更高级别的抽象,需要由您的应用处理。
您需要自己构建覆盖横截面表面的多边形。为此,您可能需要一些提供 3D 布尔运算和表面重建的库。
应该有一些体积 3D 渲染 API,比如基于体素的等等,但使用它们可能会更让人头疼。
我试图使用 OpenGL 获取模型的横截面。具体来说,我想将横截面视图投影到二维平面上。 (例如,如果我要切割厚度为零且长度有限的管道,从上到下垂直,我的输出在 2D 视图中应该是一个圆)。
我知道 glClipPlane()
有效,但我的理解是该函数沿平面对模型进行切片,而不是投影切片。有没有办法在 OpenGL 中实现我想要的?
glClipPlane
的作用是,它只是丢弃其后面渲染的所有像素。
没有开箱即用的方法来填充模型的 "insides",因为无法知道那里应该有什么,尤其是如果您还记得的话,OpenGL 只是一个渲染处理三角形汤的猴子。模型组合是更高级别的抽象,需要由您的应用处理。
您需要自己构建覆盖横截面表面的多边形。为此,您可能需要一些提供 3D 布尔运算和表面重建的库。
应该有一些体积 3D 渲染 API,比如基于体素的等等,但使用它们可能会更让人头疼。