सीमा-निरूपण (B-rep) अधिकांश ज्यामितीय कर्नेल में प्रतिरूपित वस्तुओं का प्रतिनिधित्व करने की प्राथमिक विधि है, जिसमें हमारे C3D मॉडलर कर्नेल शामिल हैं। कोर एल्गोरिदम जो मॉडल को संपादित करते हैं, जैसे कि फिलाट ऑपरेशंस को लागू करना, कटिंग ऑपरेशन करना और फ्लैट प्रोजेक्शन प्राप्त करना बी-रेप निरूपण की सटीकता की आवश्यकता होती है। पॉलीगोनल प्रारूपों में 3 डी डेटा की तेजी से बढ़ती विविधता पॉलीगोन से मॉडल प्रतिनिधित्व के कार्य को सीमा प्रतिनिधित्व में तेजी से प्रासंगिक बनाती है। नतीजतन, हमने एक नया एसडीके, सी 3 डी बी-शेपर विकसित किया, जो हमारे सी 3 डी टूलकिट का हिस्सा है।

एक मॉडल की सीमा प्रतिनिधित्व पर एक त्रिभुज एल्गोरिथ्म (टेसेलेशन के रूप में जाना जाता है) का उपयोग करना अपेक्षाकृत आसान है। भवन बहुभुज (tessellated) निरूपण विज़ुअलाइज़ेशन उद्देश्यों के लिए और ज्यामितीय गणना करने के लिए उपयोगी है।
रिवर्स ट्रांसफॉर्मेशन - बहुभुज प्रतिनिधित्व से बी-प्रतिनिधि तक - चेहरे, हालांकि, विभिन्न प्रकार की सतहों को पहचानने में जटिलता से संबंधित मुद्दों की एक श्रृंखला है, जिसमें फ्री-फॉर्म वाले भी शामिल हैं। साथ ही, बहुभुज मॉडल में शोर की समस्या है जो आमतौर पर 3 डी स्कैनिंग के परिणामस्वरूप दिखाई देते हैं।
सामान्य प्रक्रिया जिसके द्वारा C3D B-Shaper बहुभुज से B-rep स्वरूपों में मॉडल को परिवर्तित करता है, उसमें तीन चरण होते हैं: विभाजन, सतहों का पुनर्निर्माण और b-rep मॉडल निर्माण। परिवर्तन प्रक्रिया पुनरावृत्त है: यदि उपयोगकर्ता किसी भी कारण से परिणाम से नाखुश हैं, तो विभाजन और सतह पुनर्निर्माण चरणों के दौरान सुधार किए जा सकते हैं।
एक बहु-प्रतिनिधि प्रतिनिधित्व को बी-प्रतिनिधि में बदलनाहालांकि, बी-प्रतिनिधि परिवर्तन की प्रक्रिया शुरू करने से पहले, हम निम्नलिखित सुधारों को लागू करके स्रोत बहुभुज जाल की गुणवत्ता में सुधार करते हैं: आसन्न बहुभुज में मानदंडों के निर्देशों का समन्वय करें; छिद्रों को खत्म करना; और शोर करने वाले एल्गोरिदम को शोर जाल स्रोतों पर लागू करें, यदि कोई हो।
बहुभुज मॉडल का विभाजन
परिवर्तन का पहला चरण बहुभुज मॉडल को खंडित कर रहा है। हम जाल बहुभुज को सबसेट (खंडों) में वर्गीकृत करते हैं। प्रत्येक जाल शीर्ष पर मानदंडों के बारे में जानकारी पहले-क्रम विभाजन को निष्पादित करना संभव बनाती है और फिर प्रारंभिक जाल विभाजन को पूरा करती है, साथ ही साथ फ्लैट या अत्यधिक घुमावदार क्षेत्रों को वर्गीकृत करती है। प्रारंभिक जाल विभाजन "तेज" किनारों को परिभाषित करने पर आधारित है। ये दो त्रिकोणीय बहुभुज के बीच के किनारे हैं जहां उनके औसत मानदंडों के बीच का कोण पूर्वनिर्धारित मूल्य से अधिक है।
एक दूसरे क्रम का विभाजन इसके मुख्य वक्रता के आधार पर मेष का विश्लेषण करता है, जो प्राथमिक सतहों को वर्गीकृत करने के लिए पर्याप्त है। मेष के कोणों पर वक्रता की गणना करते समय, हम मेयर के काम (मार्क मेयर, मैथ्यू डेसब्रन, पीटर श्रोडर, और एलन एच। बर्र के परिणामों का उपयोग करते हैं, "त्रिकोणमित 2-मैनिफ़ॉल्ड्स के साथ अंतर विभेद-ज्यामिति ऑपरेटर," विज़ुअलाइज़ेशन और गणित III, 2003)। त्रिकोणीय क्षेत्रों के लिए असतत अंतर ऑपरेटर को परिभाषित करने में: प्रत्येक प्रारंभिक जाल शीर्ष के लिए आसन्न कोने का एक सेट (एक किनारे के माध्यम से दिए गए शीर्ष से संबंधित) माना जाता है। अगला, एक असतत ऑपरेटर
K की गणना शीर्ष के लिए की जाती है। ऑपरेटर के आधार पर, औसत सामान्य, मतलब
के एच , और गाऊसी
के जी वक्र्स को मेष शीर्ष पर परिभाषित किया गया है।
त्रिकोणीय क्षेत्रों के लिए असतत अंतर ऑपरेटरों को परिभाषित करनाइस तरह से वक्रता दहाई की गणना प्रत्येक जाल शीर्ष के लिए की जाती है, जिसमें से प्रमुख वक्रता मान
K 1 और
K 2 और प्रमुख वक्रता दिशाएं निकाली जाती हैं।
मेष शीर्ष को उनके प्रमुख वक्रता
K 1 और
K 2 के मूल्यों द्वारा वर्गीकृत किया जाता है, और फिर उनके लिए गणना की जाती है। वर्टेक्स वर्गीकरण एल्गोरिथ्म k- साधनों पर आधारित है, अर्थात, क्लस्टर के केंद्रों से क्लस्टर बिंदुओं के कुल वर्ग विचलन को कम करना। एल्गोरिदम से परिणामी आउटपुट में क्लस्टर के साथ जुड़ा हुआ एक जाल शीर्ष होता है
और वक्रता की एक जोड़ी (क्लस्टर-सेंटर - एल। गुइल्यूम, "कर्व्ड टेंसर बेस्ड ट्राएंगल मेष सेगमेंटेशन विद बाउंडरी रेक्टिफिकेशन," प्रोसीडिंग्स कंप्यूटर ग्राफिक्स इंटरनेशनल (सीजीआई), 2004)।
वक्रता स्थान में बहुभुज जाल कोने का वर्गीकरणएक बार जब हम बहुभुज जाल के कोने को वर्गीकृत करते हैं, तो हम बहुभुज को वर्गीकृत करते हैं। इस प्रक्रिया को शुरू करने के लिए, हम एक त्रिकोणीय बहुभुज चुनते हैं, जिसकी वक्रता को पूरी तरह से परिभाषित माना जा सकता है। यह वह है जिसके तीन कोने एकल क्लस्टर के भीतर हैं, या एक तेज किनारे पर दो कोने हैं। बहुभुज को एक नए खंड के रूप में लेबल किया जाता है और पुनरावर्ती प्रक्रिया के लिए प्रारंभिक बिंदु बन जाता है जो खंड का विस्तार करता है: प्रत्येक त्रिकोणीय बहुभुज के लिए, आसन्न बहुभुज को तब तक माना जाता है जब तक कि उनके बीच का किनारा "तेज" न हो। जब एक आसन्न बहुभुज वर्टेक्स, जो एक सामान्य किनारे के विपरीत होता है, एक तेज किनारे पर होता है या उसी क्लस्टर से संबंधित होता है, तो बहुभुज को खंड में जोड़ा जाता है। प्रक्रिया को तब तक दोहराया जाता है जब तक कि सभी बहुभुज जालीदार जाल नहीं बनाते।
बहुभुज जाल विभाजनएक बार खंड-निर्माण प्रक्रिया पूरी हो जाने के बाद, एक अन्य एल्गोरिथ्म जाल के अति-विभाजन को खत्म करने के लिए आसन्न खंडों को एक साथ सिलाई करता है।
भूतल-प्रकार की मान्यता
दूसरा चरण सतह की मान्यता है। प्रत्येक खंड को सिस्टम द्वारा या उपयोगकर्ताओं द्वारा निर्धारित परिशुद्धता के साथ एक सतह द्वारा अनुमानित किया जाना चाहिए।
सबसे पहले, खंडों के प्रमुख वक्रता मानों का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या यह निम्नलिखित प्रारंभिक सतहों में से एक के खंड के रूप का वर्णन करना संभव है:
- विमान: के 1 = के 2 = 0
- क्षेत्र: के 1 = के 2 = के > 0
- सिलेंडर: के 1 = के > 0, के 2 = 0
- शंकु: k 1 ∈ [ a , b ], k 2 = 0
- Toroid: k 1 = K , k 2: [ a , b ]
प्राथमिक सतहों को बनाने के लिए, हम उचित एल्गोरिथ्म का उपयोग करके सरल ज्यामितीय वस्तुओं को बिंदुओं के सेट पर फिट करते हैं। उदाहरण के लिए, एक बिंदु पर एक वृत्त और एक गोले को फिट करने के लिए, कम से कम वर्गों की विधि का उपयोग किया जाता है; एक विमान को फिट करने के लिए, प्रमुख घटक विश्लेषण का उपयोग किया जाता है। प्रणाली यह सुनिश्चित करती है कि प्रत्येक पुनर्निर्मित सतह मान्यता से पूर्वनिर्धारित परिशुद्धता के भीतर एक खंड से संबंधित है।
नीचे दी गई आकृति रंग द्वारा मान्यता प्राप्त सतहों को दर्शाती है: विमानों को नीले रंग में दिखाया गया है, सिलेंडर लाल रंग में हैं, हरे रंग के गोल, पीले और शंकुधारी बैंगनी हैं।
मान्यता प्राप्त सतह खंडों के साथ स्रोत बहुभुज जाल (बाएं) और खंडित जाल (दाएं)यदि कोई प्रारंभिक सतह खंड का वर्णन करने में सक्षम नहीं है, तो सिस्टम एक एक्सट्रूज़न सतह या एक क्रांति सतह को पहचानने का प्रयास करता है।
जब सिस्टम अंततः एक विश्लेषणात्मक सतह खोजने में विफल रहता है जिसके द्वारा खंड रूप का वर्णन करने के लिए, इसके लिए एक NURBS सतह बनाई जाती है।
B-rep मॉडल निर्माण
परिवर्तन का अंतिम चरण विभाजन के आधार पर बी-रे मॉडल बनाना और सतह के डेटा को फिर से संगठित करना है। मॉडल की टोपोलॉजी का प्रतिनिधित्व करने के लिए खंड क्षेत्रों से एक आसन्न ग्राफ बनाया जाता है, और परिणामस्वरूप बी-रेप मॉडल बनाने के लिए आधार बनाता है। बी-रेप मॉडल पूर्ववर्ती चरणों के विपरीत पूरी तरह से स्वचालित मोड में इकट्ठे होते हैं:
- बी-रेप किनारों को समीपस्थ पुनर्निर्मित सतहों के चौराहे के घुमाव से बनाया गया है
- बी-रेप चेहरों का निर्माण बाध्य मान्यता प्राप्त सतहों और बी-रेप किनारों द्वारा किया जाता है
हालांकि, सही टोपोलॉजी के साथ शेल बनाना हमेशा संभव नहीं होता है। उदाहरण के लिए, दो सतहों जैसे कि सिलेंडर और एक विमान जो अंतरिक्ष में एक दूसरे के लगभग स्पर्शरेखा हैं। पुनर्निर्मित सतहों के लिए निर्दिष्ट सहिष्णुता के कारण, वे बिल्कुल भी अंतर नहीं कर सकते हैं। परिणामस्वरूप, निर्मित शेल में दोष हो सकते हैं। उपयोगकर्ता सतह मापदंडों को सही करके दोषों को समाप्त कर सकते हैं।
बहुभुज मॉडल के प्रकार
ऑनलाइन उपलब्ध बहुभुज मॉडल के कई स्रोत हैं:
- ऑनलाइन कैटलॉग और डेटाबेस 3 डी वेयरहाउस से 3 जी मॉडल जैसे एसटीएल, वीआरएमएल, और ओबीजे से 3 डी वेयरहाउस, कल्चर 3 डी और इतने पर ऑफर करते हैं।
- फ़ाइलें जो 3D स्कैनिंग से उत्पन्न होती हैं
- सीएई एल्गोरिदम का उपयोग कर मॉडल के सामयिक अनुकूलन से आउटपुट
इन स्रोतों से बहुभुज मॉडल को दो समूहों में विभाजित किया जा सकता है: ऐसे मॉडल जो बी-रेप ऑब्जेक्ट्स और अन्य सभी मॉडलों से त्रिकोणित (जाली) थे। पहले समूह के लिए विशिष्ट सुविधाओं की एक जोड़ी बहुभुज मेष शोर की अनुपस्थिति और विश्लेषणात्मक सतहों का वर्चस्व है। इसका मतलब यह है कि पहले समूह के मॉडल आसानी से पूरी तरह से स्वचालित मोड में या न्यूनतम उपयोगकर्ता प्रयास के साथ बी-रिप्स में बदल सकते हैं।
दूसरे समूह में मॉडल के बहुभुज मेषों में शोर होता है, कार्बनिक सतहों होते हैं, और इसलिए उन्हें उपयोगकर्ताओं की संवादात्मक भागीदारी की आवश्यकता होती है।
इस प्रकार हम सी 3 डी बी-आकार के संचालन के लिए दो मोड प्रदान करते हैं, पूरी तरह से स्वचालित और इंटरैक्टिव। उपयोगकर्ता पुनर्निर्माण मोड के बीच स्विच कर सकते हैं, और पुनर्निर्माण प्रक्रिया के दौरान सतह प्रकारों का प्रबंधन कर सकते हैं। एक मोड का चयन परिवर्तन करने के उद्देश्य पर निर्भर कर सकता है: उपयोगकर्ता कभी-कभी परिणामी शेल की सामयिक कनेक्टिविटी या इसकी समग्र शुद्धता की उपेक्षा करना चाहते हैं। यह अक्सर ऐसा होता है जब बीआईएम अनुप्रयोगों में प्रदर्शित करने का अनुकूलन होता है, जिसमें उपयोगकर्ता कस्टम आंतरिक तत्वों को वास्तुशिल्प मॉडल में जोड़ रहे हैं।
दूसरी ओर, रिवर्स इंजीनियरिंग कार्यों को स्रोत मॉडल की सबसे सटीक प्रतिलिपि की आवश्यकता होती है ताकि परिणामस्वरूप मॉडल में एक सही टोपोलॉजी हो। इसलिए, सिलिंडर की सह-अक्षीयता या दो सतहों की स्पर्शरेखा को सटीक रूप से परिभाषित करना आवश्यक है। इस प्रकार के मामलों में, परिवर्तन प्रक्रिया में उपयोगकर्ताओं की भागीदारी महत्वपूर्ण है।
C3D B-Shaper का स्वचालित परिवर्तन निम्नलिखित कार्य करता है जो इनपुट डेटा स्रोत जाल और परिवर्तन सेटिंग्स के रूप में उपयोग करता है:
MbResultType ConvertMeshToShell( MbMesh & mesh, MbFaceShell *& shell, const MbMeshProcessorValues & params ); MbResultType ConvertCollectionToShell( MbCollection & collection, MbFaceShell *& shell, const MbMeshProcessorValues & params );
परिवर्तन सेटिंग्स में से एक एक मान्यता-सटीक मूल्य है जो खंड कोने और मान्यता प्राप्त सतहों के बीच की दूरी के लिए अधिकतम सहिष्णुता निर्धारित करता है। परिशुद्धता निरपेक्ष या सापेक्ष हो सकती है। रिश्तेदार सटीकता का उपयोग करते समय, जाल निकायों से चेहरे के विचलन को मॉडल के आकार के सापेक्ष मापा जाता है।
MbMesh प्रोसेसर इंटरफ़ेस वर्ग विभाजन और सतहों की मान्यता के प्रबंधन के लिए उन्नत विकल्प प्रदान करता है:
class MbMeshProcessor { .. public:
उदाहरण के लिए, स्वत: विभाजन से परिणामों को सही करने के लिए, C3D B-Shaper सेगमेंट को विभाजित करने और विभाजित करने के लिए उपकरण प्रदान करता है, और इसी तरह। उपयोगकर्ता चयनित सेगमेंट पर दिए गए प्रकारों की सतहों को फिट कर सकते हैं, साथ ही मान्यता प्राप्त सतहों के मापदंडों को संशोधित कर सकते हैं।
सारांश
सी 3 डी बी-शेपर के परिवर्तन एल्गोरिदम का परिणाम नीचे दिए गए आंकड़ों से दर्शाया गया है, जिसमें एक जटिल 3 डी मॉडल सफलतापूर्वक अपने बहुभुज जाल प्रतिनिधित्व से एक सीमा-प्रतिनिधित्व ठोस में बदल जाता है।

बहुभुज जाल (बाएं) और बी-प्रतिनिधि मॉडल (दाएं) सी 3 डी बी-शेपर के साथ परिवर्तितहमारा उद्देश्य बहुभुज से बी-रेप में मॉडल बदलने के लिए एक शक्तिशाली एसडीके बनाना है, और इसलिए सी 3 डी बी-शेपर का विकास जारी है। जिन चीज़ों पर हम काम कर रहे हैं, उनमें ऑटोमैटिक सेगमेंट एल्गोरिदम को आगे बढ़ाना, सेगमेंटेशन एडिटिंग के लिए टूल विकसित करना, फ़्री-फॉर्म NURBS सतहों के निर्माण में सुधार और बी-रेप शेल असेंबलियों की गुणवत्ता को शामिल करना शामिल है।
C3D ज्यामितीय कर्नेल का उपयोग करने वाले ग्राहक C3D B-Shaper के विकास को चलाने वाले कारक भी हैं।
C3D टूलकिट के हिस्से के रूप में या स्टैंडअलोन घटक के रूप में C3D B-Shaper का परीक्षण करने के लिए डेवलपर्स का स्वागत है।

एंड्री ट्यूमनिन द्वारा, सी 3 डी लैब्स में सॉफ्टवेयर डेवलपमेंट लीड