如何对几何体进行切片?

ale*_*ail 0 opengl

假设我有这个几何形状: glutSolidTeapot(1);

我想将其切成 8 个立方体,例如跨越 3 个平面 (xy)、(yz)、(xz),以制作 3D 拼图。

如何裁剪几何图形?

小智 5

有两种方法可以做到这一点。我假设您想将几何体切成立方体,但其他形状也可以类似地完成。

1. 切割三角形网格

在这里,您只需循环遍历所有三角形并检查三角形属于哪个立方体。如果三角形与多个立方体相交,则需要将其拆分为多个三角形。您需要对线平面相交进行一些数学运算才能正确分割,但这并不难。

2.使用opengl裁剪平面

您还可以多次渲染几何体,但仅剪辑要在屏幕上显示的部分。这可以使用 glClipPlane 来完成(参见http://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml)。对于每个立方体,您需要 6 个剪裁平面。此方法会比第一种方法慢,因为 GPU 需要考虑每个立方体的每个三角形。