我正在开发一个软件,该软件生成了一个代表球体的多边形网格,我想在球体上切一个孔。该多边形网格只是整个球体表面的覆盖。我对如何确定哪些多边形将与我的孔相交有了很好的主意,可以将其从集合中删除,但是在那之后,我有点困惑了。我想知道是否有人可以为我提供高级概念?
基本上,我设想了三种情况:
1.) The cylindrical hole does not intersect my sphere. 2.) The cylindrical hole partially goes through my sphere. 3.) The cylindrical hole goes all the way through my sphere.
对于#1,我可以对此进行测试(不删除任何多边形)并采取相应措施(不执行任何操作)。对于#2和#3,我不确定如何重新细分我的球体以解决该问题。对于#3,我大致上有以下想法:
a.) Find your entry point (a circle) b.) Find your exit point (a circle) c.) Remove the necessary polygons d.) Make new polygons along the 4* 'sides' of the hole to keep my sphere a manifold.
这个非常简化的算法有一些“空洞”,我想填补。例如,我实际上并不希望孔有4个侧面- 它应该是圆柱体,或者至少要有一个细分的圆柱体表示。我也不确定如何制作这些新的多边形,以使我的球体在棋盘格化的表面上留有孔。
我不知道如何处理场景#2。
听起来像您想要构造性的实体几何。
雕刻可能会做您想要的。如果您只想运行时渲染,则OpenCSG将起作用。