Sadece düşünürsek çözebiliriz diye düşünüyorum.
Açıkça, iki geometrinin kesiştiği yüzler (üçgenler) oluşturmak istersiniz. Sonra üç ağ ile kalırsınız: yeni izole ettiğiniz kavşak, geometri 1 ve geometri 2.
Ardından, ihtiyacınız olmayan şeyleri silin!
- BooleanDifference: izole edilmiş parçayı ve geometriyi silin 2.
- Boolean Kavşağı: İzole edilmiş parçayı bırakarak geometri 1 ve 2'yi silin
- BooleanUnion: geometri 1 ve 2'yi birleştirin ve izole edilen parçayı silin (geometri 1 ve 2'yi sağlam bir geometriye birleştirdiğinizden emin olun)
- BooleanSplit: Geometri 1'i, geometri 2'yi ayırın ve izole edilen parçayı çoğaltın (birini geometri 1'e, diğeri geometri 2'ye ekleyin)
Sanırım bunu kapsıyor, ha? Zor kısım açık bir şekilde kavşak yüzleri yaratacaktır. Bunun için, birinin her bir yüzünü yineleyin ve bu yüzün diğerinin bir parçası olup olmadığını kontrol edin; tamamen içerideyse, yüzü kavşak ağının bir parçası olarak kopyalayın. Kısmen içerideyse, üçgeni kesişim çizgisi boyunca bölmeniz gerekir; DirectX ve OpenGL'nin her ikisi de bunun için yardımcı işlevlere sahip olacağını veya sadece bazı 3D düzlem matematik (vektörler) olacağını düşünüyorum. Matematik 3'te böyle bir şey öğrendim (ya da 2 miydi?) Ama bir ipucunuz yoksa , belki de math.stackexchange.com'a sorun . Ve sonra elbette yüz dışarıdaysa, hiçbir şey yapmayın. Her iki kafesin tüm yüzlerini yinelediğinizde, kesişme kafesiyle kalacaksınız.