小编典典

我有一个OpenGL镶嵌球体,我想在其中切出一个圆柱孔

algorithm

我正在开发一个软件,该软件生成了一个代表球体的多边形网格,我想在球体上切一个孔。该多边形网格只是整个球体表面的覆盖。我对如何确定哪些多边形将与我的孔相交有了很好的主意,可以将其从集合中删除,但是在那之后,我有点困惑了。我想知道是否有人可以为我提供高级概念?

基本上,我设想了三种情况:

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。


阅读 307

收藏
2020-07-28

共1个答案

小编典典

听起来像您想要构造性的实体几何

雕刻可能会做您想要的。如果您只想运行时渲染,则OpenCSG将起作用。

2020-07-28