هندسة صلبة بناءة

الهندسة الصلبة البنائية ( CSG ؛ كانت تسمى سابقًا الهندسة الصلبة الثنائية الحسابية ) هي تقنية تستخدم في النمذجة الصلبة . تسمح الهندسة الصلبة البنائية للمصمم بإنشاء سطح أو جسم معقد باستخدام عوامل منطقية لدمج كائنات أبسط، [1] مما قد يؤدي إلى توليد كائنات معقدة بصريًا من خلال الجمع بين عدد قليل من الكائنات البدائية. [2] [3]
في رسومات الكمبيوتر ثلاثية الأبعاد والتصميم بمساعدة الكمبيوتر ، غالبًا ما يتم استخدام CSG في النمذجة الإجرائية . يمكن أيضًا تنفيذ CSG على شبكات متعددة الأضلاع ، وقد تكون أو لا تكون إجرائية و/أو بارامترية.
تباين CSG مع نمذجة الشبكة المتعددة الأضلاع ونمذجة الصندوق .
العمل
أبسط الأشياء الصلبة المستخدمة للتمثيل تسمى البدائيات الهندسية . وهي عادةً أشياء ذات شكل بسيط: متوازي المستطيلات ، والأسطوانات ، والمناشير ، والأهرامات ، والكرات ، والمخاريط . [1] مجموعة البدائيات المسموح بها محدودة بكل حزمة برامج. تسمح بعض حزم البرامج بـ CSG على الأشياء المنحنية بينما لا تسمح حزم أخرى بذلك.
يتم إنشاء الكائن من العناصر البدائية عن طريق العمليات المسموح بها ، والتي تكون عادةً عمليات منطقية على المجموعات : الاتحاد والتقاطع والفرق ، بالإضافة إلى التحويلات الهندسية لتلك المجموعات. [1]
يمكن وصف البدائي عادةً من خلال إجراء يقبل عددًا معينًا من المعلمات ؛ على سبيل المثال، يمكن وصف الكرة من خلال إحداثيات نقطة مركزها، إلى جانب قيمة نصف القطر. يمكن دمج هذه البدائيات في كائنات مركبة باستخدام عمليات مثل هذه:
-
اتحاد
دمج كائنين في واحد -
الفرق
طرح كائن من كائن آخر -
تقاطع الجزء المشترك
بين الجسمين
من خلال الجمع بين هذه العمليات الأولية، من الممكن إنشاء كائنات ذات تعقيد كبير بدءًا من كائنات بسيطة.
تتبع الأشعة
يعد تقديم الهندسة الصلبة البنّاءة أمرًا بسيطًا بشكل خاص عند تتبع الأشعة . تتقاطع أجهزة تتبع الأشعة مع شعاع يحتوي على كل من البدائيين اللذين يتم العمل عليهما، ثم تطبق المشغل على فترات التقاطع على طول الشعاع أحادي الأبعاد، ثم تأخذ النقطة الأقرب إلى الكاميرا على طول الشعاع باعتبارها النتيجة.
التطبيقات

للهندسة الصلبة البنائية عدد من الاستخدامات العملية. فهي تستخدم في الحالات التي تكون فيها الأجسام الهندسية البسيطة مطلوبة، [ بحاجة لمصدر ] أو حيث تكون الدقة الرياضية مهمة. [4] تستخدم جميع حزم CAD الهندسية تقريبًا CSG (حيث قد تكون مفيدة لتمثيل قطع الأدوات، والميزات حيث يجب أن تتناسب الأجزاء معًا).
يستخدم كل من محرك Quake و Unreal Engine هذا النظام، وكذلك Hammer (محرر مستوى محرك Source الأصلي )، و Torque Game Engine / Torque Game Engine Advanced . يعد CSG شائعًا لأنه يمكن للمصمم استخدام مجموعة من الكائنات البسيطة نسبيًا لإنشاء هندسة معقدة للغاية. [3] عندما يكون CSG إجرائيًا أو بارامتريًا، يمكن للمستخدم مراجعة هندسته المعقدة عن طريق تغيير موضع الكائنات أو عن طريق تغيير العملية المنطقية المستخدمة لدمج هذه الكائنات.
تتمثل إحدى مزايا CSG في أنها يمكنها بسهولة التأكد من أن الأشياء "صلبة" أو مقاومة للماء إذا كانت جميع الأشكال البدائية مقاومة للماء. [5] يمكن أن يكون هذا مهمًا لبعض تطبيقات الحوسبة التصنيعية أو الهندسية. بالمقارنة، عند إنشاء هندسة تعتمد على تمثيلات حدودية ، تكون هناك حاجة إلى بيانات طوبولوجية إضافية، أو يجب إجراء فحوصات الاتساق للتأكد من أن وصف الحدود المعطى يحدد جسمًا صلبًا صالحًا. [1]
من الخصائص الملائمة لأشكال CSG أنه من السهل تصنيف نقاط عشوائية على أنها إما داخل أو خارج الشكل الذي تم إنشاؤه بواسطة CSG. يتم تصنيف النقطة ببساطة مقابل جميع العناصر الأساسية الأساسية ويتم تقييم التعبير المنطقي الناتج. [6] هذه صفة مرغوبة لبعض التطبيقات مثل تتبع الأشعة . [6]
التحويل من الشبكات إلى CSG
نظرًا لأن نماذج CSG يتم تحديد معلماتها حسب البناء، فإنها غالبًا ما تكون مفضلة على الشبكات المعتادة عندما يتعلق الأمر بالتطبيقات حيث يكون الهدف هو تصنيع نماذج مخصصة. بالنسبة لمثل هذه التطبيقات، قد يكون من المثير للاهتمام تحويل الشبكات الموجودة بالفعل إلى أشجار CSG. تسمى مشكلة التحويل التلقائي للشبكات إلى أشجار CSG بـ CSG العكسي .
تتطلب شجرة CSG الناتجة أن تشغل نفس الحجم في مساحة ثلاثية الأبعاد مثل الشبكة المدخلة مع وجود عدد ضئيل من العقد. تُفضل الحلول البسيطة لضمان سهولة تحرير النموذج الناتج. يعد حل هذه المشكلة تحديًا بسبب مساحة البحث الكبيرة التي يجب استكشافها. إنها تجمع بين المعلمات المستمرة مثل البعد وحجم الأشكال البدائية والمعلمات المنفصلة مثل المشغلات المنطقية المستخدمة لبناء شجرة CSG النهائية.
تحل الطرق الاستنتاجية هذه المشكلة من خلال بناء مجموعة من أنصاف المساحات التي تصف الجزء الداخلي من الهندسة. تُستخدم أنصاف المساحات هذه لوصف العناصر البدائية التي يمكن دمجها للحصول على النموذج النهائي. [7]
هناك نهج آخر يفصل بين اكتشاف الأشكال البدائية وحساب شجرة CSG التي تحدد النموذج النهائي. يستغل هذا النهج قدرة أدوات توليف البرامج الحديثة على العثور على شجرة CSG بأقل قدر من التعقيد. [8]
هناك أيضًا طرق تستخدم الخوارزميات الجينية لتحسين الشكل الأولي بشكل متكرر نحو شكل الشبكة المطلوبة. [9]
التطبيقات البارزة التي تدعم CSG
لغات وبرامج النمذجة العامة
تتبع الأشعة ونقل الجسيمات
التصميم بمساعدة الحاسوب
- أوتوكاد
- أوتوديسك إنفنتور
- أوتوديسك فيوجن 360
- ريال برازيلي-كندي
- كاتيا
- فريكاد
- إن إكس كاد
- حل الفضاء
- على شكل
- برنامج OpenSCAD
- PTC Creo Parametric (المعروف سابقًا باسم Pro/Engineer )
- ريالسوفت 3D
- وحيد القرن
- حافة صلبة
- سوليدووركس
- تينكركاد
- أعمال متجهة
الألعاب
- الاحلام
- جودو [10]
- جي تي كيه راديانت
- ليتل بيغ بلانت
- روبلوكس
- Unity ، عبر المكونات الإضافية المجانية أو المدفوعة من Unity Asset Store .
- غير واقعي
- محرر مطرقة الصمام
آحرون
- 3البهجة
- Aqsis (اعتبارًا من الإصدار 0.6.0) [11]
- Blender – هو في الأساس محرر شبكة سطحية، ولكنه قادر على إنشاء CSG بسيط باستخدام الكائنات الوصفية واستخدام المعدِّل المنطقي على كائنات الشبكة.
- كلارا.يو
- جيانت 4
- ماجيكا CSG [12]
- MCNP
- سكتش اب
- وومب [13]
مراجع
- ^ abcd Foley, James D. (1996), "12.7 Constructive Solid Geometry", Computer Graphics: Principles and Practice, Addison-Wesley Professional, pp. 557– 558, ISBN 9780201848403,
- ^ روث، سكوت (1982). "صب الأشعة لنمذجة المواد الصلبة". رسومات الكمبيوتر ومعالجة الصور . 18 (2): 109-144 . doi :10.1016/0146-664X(82)90169-1.
- ^ ab Bloomenthal, Jules; Bajaj, Chandrajit (1997), "5.2.5 Intersection with CSG Trees", Introduction to Implicit Surfaces, Morgan Kaufmann, pp. 178– 180, ISBN 9781558602335.
- ^ فولي (1996)، ص 559.
- ^ فان روسن، ساندر؛ بارانوفسكي، ماثيو (2011)، "هندسة صلبة بناءة في الوقت الحقيقي"، في أنصاري، مروان (محرر)، أدوات تطوير الألعاب، مطبعة سي آر سي، ص 79- 96، رقم ISBN 9781439867723.
- ^ ab Glassner, Andrew S. (1989), مقدمة لتتبع الأشعة، مورجان كوفمان، ص 80، ISBN 9780122861604.
- ^ Buchele, Suzanne F.; Crawford, Richard H. (2004). "إنشاء شجرة هندسة صلبة بنائية ثلاثية الأبعاد بنصف فضاء من تمثيلات حدودية ضمنية". التصميم بمساعدة الكمبيوتر . 36 (11): 1063– 1073. doi :10.1016/j.cad.2004.01.006.
- ^ Du, Tao; Inala, Jeevana Priya; Pu, Yewen; Spielberg, Andrew; Schulz, Adriana; Rus, Daniela; Solar-Lezama, Armando; Matusik, Wojciech (2018). "InverseCSG: التحويل التلقائي للنماذج ثلاثية الأبعاد إلى أشجار CSG". ACM Trans. Graph . doi : 10.1145/3272127.3275006 .
- ^ Fayolle, Pierre-Alain; Pasko, Alexander A. (2016). "نهج تطوري لاستخراج أشجار بناء الأشياء من السحب النقطية ثلاثية الأبعاد" (PDF) . التصميم بمساعدة الكمبيوتر . 74 : 1– 17. doi :10.1016/j.cad.2016.01.001.
- ^ محرك Godot - Godot يحصل على دعم CSG
- ^ جريجوري، بول (12 فبراير 2002). "إصدار رئيسي" . تم الاسترجاع في 20 مايو 2020 – عبر SourceForge.
- ^ موقع Magica CSG
- ^ موقع وومب
