كيف نحن فيركلوكيد CAD COMPASS-3D → الجزء 2

في الجزء الأخير ، تحدثنا عن ولادة KOMPAS-3D v18 ، شيء عن اختيار المعايير والنماذج لاختبار وظائف جديدة ، وتطرقنا أيضًا إلى موضوع التقديم في الإصدار "الأساسي".
دعنا نتابع القصة حول خيار العرض "المُحسّن".


رسم المكالمات

ألكساندر تولوب ، مبرمج:
"ترتبط المشكلة الرئيسية في أداء عرض المشاهد الكبيرة بعدد كبير من ما يسمى" مكالمات السحب ". تم إنشاء الإصدار القديم من العرض أعلى نموذج البيانات الرياضية. وبالتالي ، لكل طريقة بدائية - نقاط ، حواف ، وجوه - تم استدعاء طريقة منفصلة لعرضها.

بالنسبة لكل مكالمة سحب ، يُجري OpenGL (برنامج التشغيل) سلسلة من الاختبارات ، مع ترجمة الأوامر الواردة في وقت واحد إلى تنسيق يفهمه بطاقة الفيديو ، وبعد ذلك تتم إضافة المكالمات إلى قائمة الانتظار ويتم تنفيذها بالفعل.


مخطط نقل أوامر GPU في OpenGL ( المصدر )

مع وجود عدد كبير من التفاصيل ، يزداد عدد المكالمات إلى وحدة المعالجة المركزية بحيث لا يكون للبيانات ببساطة وقت للوصول إلى بطاقة الفيديو. نشهد موقفًا حيث "تبطئ" على بطاقة فيديو قوية للغاية بنفس طريقة وضع بطاقة متوسطة أو أضعف.

يمكنك التعامل مع هذا عن طريق تقليل عدد الاداءات (التحولات الدولة) - مجموعة حسب المواد ، والجمع بين الهندسة المشتركة ( instancing ) ، الخ

لا ينبغي لنا أن ننسى أنه من المشهد كله لا نرى سوى جزء معين منه. تنطبق خوارزميات الكشف عن الأشياء غير المرئية هنا (إعدام الإحباط ، إعدام الإغلاق ، إلخ)

مستوحاة من مثال The Road to One مليون Draws و AZDO ، قررنا اتخاذ مسار غير عادي إلى حد ما: التخلص من تغييرات الحالة على جانب وحدة المعالجة المركزية قدر الإمكان. الآن يتم كل شيء تقريبا على بطاقة الرسومات. يتم أخذ جميع السمات الضرورية مباشرةً من ذاكرة الفيديو أثناء السحب من التظليل نفسه ( تظليل ) ، والذي أصبح ممكنًا بفضل الزيادة في ذاكرة الفيديو ( VRAM ) وظهور SSBO .


1،000،000 النرد

من مزايا هذا النهج: أصبحت سرعة العرض عالية بالفعل. تقتصر السرعة فقط على قدرات وحدة معالجة الرسومات (GPU) ، أي حجم البيانات التي يمكن معالجتها.

كما سمح بتنفيذ آليات لقطة فعالة للكائنات غير مرئية. يتم تسجيل نتائج فحص الرؤية مباشرة في ذاكرة الفيديو ، ومن هناك يتم تشكيل أوامر الرسم بناءً عليها. هذا هو ، على الجانب وحدة المعالجة المركزية ، لا تحتاج إلى الانتظار.

واحدة من العيوب الرئيسية لهذا النهج هو التعقيد العالي للتنمية. يجب تنفيذ الكثير من جديد مع مراعاة النهج المختار. بالإضافة إلى ذلك ، غالبًا ما كان علينا التعامل مع موقف كانت فيه نفس شفرة التظليل تعمل بشكل مختلف أو لم تعمل مطلقًا على بطاقات الفيديو من مختلف الشركات المصنعة. غالبًا ما تم "معالجة" ذلك عن طريق تحديث برنامج التشغيل ، ولكن في بعض الأحيان بعد تصحيح الأخطاء الطويل ، كان من الضروري إعادة كتابة التعليمات البرمجية.

وبطبيعة الحال ، زادت متطلبات بطاقة الفيديو أيضًا. يعد دعم OpenGL 4.5 مفتاحًا ، لكنه ليس الشرط الوحيد.
نقدم أدناه نتائج سرعة التقديم أثناء دوران التجميع. تذكر أن 24 إطارًا في الثانية (fps) تعتبر مؤشرات مريحة للعين البشرية.
فيما يلي ، تم أخذ القياسات على جهاز كمبيوتر مع التكوين التالي:
وحدة المعالجة المركزية: Intel Core i7-6700K 4.00 جيجاهرتز
ذاكرة الوصول العشوائي: 32 جيجابايت
وحدة معالجة الرسومات: NVidia Quadro P2000
نظام التشغيل: Microsoft Windows 10 x64 Professional
الجدول 1. معدل الإطار (إطارات في الثانية ، إطارا في الثانية) على نماذج مختلفة. أكثر هو أفضل. وضع العرض: هيكل سفلي + إطار سلكي ، تم تعطيل الوضع المبسط ، وجودة مكافحة التعرجات: متوسطة (MSAA 8x)
نموذجعدد
المكونات
معدل الإطار ، إطارا في الثانية
V16.1v17.1V18
صورة
آلة
فسيفساء طحن
27644.14.7124.9

CCP-410
1083370.30.428.6

شاحنة قلابة
173421.11.4124.7

حافلة العربة
97831.92.4124.9

المد والجزر الشمالية
محطة توليد الكهرباء
484450.30.576.1

تركيب
فراغ التكنولوجية
71891.92.3124.9

سفينة المخفض
محطة توليد الكهرباء
64142.63.6123.9


إضافة مكونات إلى مجموعة كبيرة


سيناريو مع إضافة مكونات إلى مجموعة كبيرة تطورت في نهاية المطاف إلى ما يسمى اختبار معقد ، وهو موضح في الجدول 2.

الجدول 2. السيناريو مع إضافة مكونات إلى مجموعة كبيرة. معايير الاختبار.
معياروصف المعيار
ملف السرعة المفتوحةيجب تحميل المكون المضاف إلى التجميع من القرص
تجعل السرعةيجب وضع التجميع والمكون المدرج ، لذلك تحتاج إلى تدوير / نقل / تكبير الصورة
سرعة اختيار الكائنلإنشاء أصدقاء ، تحتاج إلى تحديد الكائنات الأساسية: الوجوه ، والطائرات ، والحواف ، إلخ.
سرعة التزامن مع شجرة البناءيجب أن يتم تمثيل المكون المضاف إلى التجميع وواجهاته في شجرة البناء
مواصفات وحدة سرعة المزامنةيجب مراعاة المكون المضاف إلى التجميع في المواصفات.

في الجدول ، يمكنك رؤية النقاط (الرسم ، الافتتاح) ، والتي تم تحديدها من البداية كتوجيهات منفصلة للتسارع. لكن التحسينات تتطلب مكونات أخرى.

استغرق وقت كبير عن طريق التزامن مع شجرة. لقد حللنا المشكلة من خلال تطبيق تحديث جزئي.

كانت الصعوبة الأخرى هي التأثير الكبير للمواصفات على أداء KOMPAS-3D. في بعض سيناريوهات الاختبار المعقدة ، كان هذا المكون هو العنصر الرئيسي (50٪ أو أكثر).
مواصفة
المواصفات هي الوحدة النمطية للنظام KOMPAS-3D ، المسؤولة عن تكوين وثيقة التصميم التي تحمل الاسم نفسه. تم تطويره من قبل فريق منفصل.

على وجه الخصوص ، قام الفريق بتسريع التزامن أثناء الإدراج من خلال إعادة تصميم الآليات الداخلية لوحدة المواصفات.


بعض النتائج


إضافة مكونات إلى التجمع "المخفض لمحطة توليد الكهرباء في السفينة".


اختبار شامل لتجميع "المخفض لمحطة الطاقة البحرية."
تظهر الأرقام: 1 - قوس ، 2 - غسالة ، 3 - الترباس.

جدول 3. وقت ادخال المكونات في مجموعة كبيرة بالثواني. أقل هو أفضل.
عنصرتأثيرالوقت ق
V16.1v17.1V18
إدراج
عنصر
قوس

تحميل2.03.02.2
التبديل إلى وضع الاقتران0.60.40.4
الاقتران الأولاختيار الكائن الأول0.41.00.2
اختيار الكائن الثاني0.51.10.2
حدد الاقتران الصحيح3.83.61.0
الاقتران الثانياختيار الكائن الأول0.51.40.5
اختيار الكائن الثاني0.51.40.2
حدد الاقتران الصحيح3.63.01.2
الاقتران الثالثاختيار الكائن الأول0.50.50.5
اختيار الكائن الثاني0.31.10.3
حدد الاقتران الصحيح3.73.21.1
تأكيد إدراج إنشاء7.85.22.3
مجموع قوس إدراج24.224.610.1
إدراج
غسالات
من المكتبة
معيار
المنتجات



اختيار الاقتران الأول6.42.40.4
اختيار الزوج الثاني4.23.10.4
تأكيد إدراج إنشاء15.79.24.4
المجموع لإدراج غسالات26.314.75.2
إدراج
برغي

تحميل2.02.72.0
التبديل إلى وضع الاقتران0.50.50.5
الاقتران الأولاختيار الكائن الأول0.41.00.2
اختيار الكائن الثاني0.41.10.2
حدد الاقتران الصحيح3.42.71.0
الاقتران الثانياختيار الكائن الأول0.41.20.4
اختيار الكائن الثاني0.50.50.4
حدد الاقتران الصحيح3.72.91.0
الاقتران الثالثاختيار الكائن الأول0.51.00.5
اختيار الكائن الثاني0.51.00.2
حدد الاقتران الصحيح4.23.91.2
تأكيد إدراج إنشاء32.55.42.2
المجموع لإدخال الترباس4921.29.8
الإدراج الكلي للمكونات الثلاثة99.560.525.1


يمكن اعتبار الاختبار الشامل أحد سيناريوهات التحرير الخاصة بالتجميع (من عدد السيناريوهات الشائعة).

بالإضافة إلى ذلك ، تسارع إعادة بناء التجمع. الآن ، إذا قمت بتحرير عملية ، فلن يتم إعادة بناء التجميع بالكامل - سيتم تحديث الكائنات التي تم تغييرها فقط. لتحديد العمليات التابعة ، أي تلك العمليات التي يمكن أن تتأثر نتيجةها نتيجة العملية التي تم تغييرها ، يتم استخدام خوارزمية خاصة تبني العلاقات بين العمليات والهيئات والإدخالات.

افتتاح الجمعيات


الفكرة الرئيسية لزيادة سرعة قراءة الملفات هي جعل KOMPAS-3D يقرأ فقط ما يحتاجه المستخدم في الوقت الحالي.

على سبيل المثال:

  • قراءة التنفيذ الحالي فقط لإدراج التجميع ،
  • بالنسبة لأنواع التنزيل ، اقرأ فقط المعلومات الضرورية: التثليث أو التثليث + النتائج ( B-rep ).

كل هذا يتطلب تحسين بنية البيانات في الملف بحيث يمكن قراءة الأجزاء الخاصة به.

انطون صياكين ، مبرمج ، قائد الفريق:

"لبعض الوقت الآن ، كان ملف KOMPAS-3D بمثابة أرشيف يجمع بين عدة ملفات خدمة. واحد منهم يحتوي على بيانات وثيقة النموذج / التجميع المنظمة في هيكل شجرة. القدرة على التنقل في هذا الهيكل موجودة بالفعل. للقراءة الجزئية ، كان من الضروري ضمان استقلال الأجزاء عن بعضها البعض. وبالتالي ، لا ينبغي أن تشير الأجزاء المستلمة إلى بعضها البعض ، وإلا فإن الجزء الذي يحتوي على الرابط سيصبح "أدنى".

نتيجة لذلك ، للحصول على التفاصيل ، كان من الممكن فصل الأداء عن المستند وعن بعضهما البعض. في التجميعات ، يتم تمييز الحاوية الخاصة بالإدخالات والزملاء بشكل منفصل. داخل عمليات الإعدام ، كان من الممكن أيضا فصل البيانات الأولية للبناء والنتائج في شكل تثليث والهيئات.



إذا تحدثنا عن أنواع التحميل المبسطة ، فسيتم تحميل التجميع القابل للتحرير بالكامل ، ويتم فقط تحميل التثليث ، وحسب النوع ، يتم تحميل تمثيل الحدود (B-rep) من إدخالاته. عرض إدراج مع المتغيرات الخارجية المعدلة في هذا الوضع بعض الصعوبات ، لأنه تم الحصول عليها مسبقا على الطاير من خلال إعادة البناء أثناء القراءة ، وفي أنواع مبسطة من التحميل لا توجد بيانات لهذا. كان الحل هو تدوين نتائج إعادة بناء مثل هذه الإدخالات في التجميع. هذا أعطى تسارع وبسبب عدم إعادة البناء.

يسمح التقسيم الموصوف للمستند إلى أجزاء بالتحميل إلى التجميع فقط بالأداء المحدد في المدرج.
بالإضافة إلى تسريع فتح الملفات ، ساعدت القراءة الجزئية أيضًا على تقليل الموارد المستهلكة - ذاكرة الوصول العشوائي بشكل أساسي.

بناءً على التحسينات ، ظهر نوع جديد من تحميل التجميع - "جزئي". في هذا النوع من التحميل ، يتم طرح النتائج (الأجسام والسطوح) والتثليث فقط من الملف. يسمح لك التحميل الجزئي بإنشاء عمليات الاقتران ، كما أنه قريب من حيث الأداء الوظيفي للتحميل الكامل للمكونات.

بعد تنفيذ التحسينات على القراءة الجزئية ، يصبح إنشاء أنواع تحميل مخصصة واعداً.

مساعدة
أنواع التمهيد المخصصة هي مجموعات من أساليب النظام لتحميل أحد المكونات. هذه الوظيفة ليست جديدة ، لكن التحسينات التي أدخلت على v18 تسمح لك بالحصول على مكافآت كبيرة من استخدامها.


بالنسبة للمكونات غير المهمة للبنيات المستقبلية ، يمكن تطبيق نوع التحميل "فارغ". قد تكون هذه مكونات مخفية داخل الآخرين ("vnutryanka"). في الإصدار الثامن عشر ، تفتح المكونات (والتجميعات بالكامل) بنوع التمهيد "فارغ" على الفور تقريبًا.

جدول 4. أوقات فتح التجميعات بأنواع التمهيد "Empty" و "Dimension" بالثواني. أقل هو أفضل.
نموذجنوع التحميلوقت الافتتاح ، ق
V16.1v17.1V18

تركيب
فراغ التكنولوجية
باطل12.811.72.5
تخليص21.220.82.6

سفينة المخفض
محطة توليد الكهرباء
باطل31.015.97.2
تخليص371.5114.87.3


يمكن تحميل المكونات المتبقية ، والتي تكون ضرورية لفهم مظهر المنتج أو سيتم استخدامها ككائنات داعمة لمزيد من البناء ، "كاملة" أو "جزئيًا".

كأداة لإعداد أنواع التمهيد المخصصة ، يمكنك استخدام أوامر جديدة لتحديد المكونات "غير المرئية". نطبق الأمر ثم نستخدم قائمة السياق لتغيير نوع التحميل للمكونات المحددة إلى "فارغ".

إسقاط


عند الإسراع في الإسقاط ، سألنا أنفسنا مسألة تصفية البيانات المستلمة عند إدخال النواة الرياضية.

بادئ ذي بدء ، قررنا تصفية المكونات / الهيئات غير المرئية. لهذا الغرض ، تم استخدام آلية إعدام الانسداد - فهي تسمح لك بمعرفة ما إذا كان الجسم الذي سيتم إسقاطه مرئيًا أم أنه مغلق وداخل جسم آخر. يتم تنفيذ هذه العملية على جانب بطاقة الفيديو.

سيكون التأثير الأكبر عند إنشاء توقعات للطرز مع عدد كبير من المكونات المخفية داخل وحدات التخزين المغلقة ، على سبيل المثال:

  • محركات معقدة ، وعلب التروس ، وما إلى ذلك ،
  • المركبات
  • هيكل
  • خزائن مع المعدات الكهربائية.

للإدراج ، يكون الخيار "إسقاط تقريبي" هو المسئول. الاسم ليس عرضيًا - قد لا يتم عرض الأجزاء الصغيرة نسبيًا (على سبيل المثال ، الترباس على نطاق محطة توليد الكهرباء) على مقياس التجميع. بالنسبة للعديد من المستخدمين ، سوف يتناسب هذا الوضع ، خاصة في حالة إنشاء رسومات الأبعاد والرسومات العامة.

قراءة المزيد عن خيار الإسقاط الخام.
الخيار متاح فقط للإسقاطات القياسية. لتحديد الصور (المقاطع ، المقاطع ، المشاهدات عن بعد) لا يشارك "إسقاط تقريبي".


حتى بدون استخدام هذا الخيار ، يكون الإسقاط أسرع بشكل ملحوظ مقارنةً بـ V16 و v17. وقد ساعد ذلك على تحسينات على الجانب الرياضي.

جدول 5. وقت تكوين ثلاثة توقعات قياسية بالثواني. أقل هو أفضل.
نموذجالوقت لإنشاء ثلاثة التوقعات القياسية ، ق
V16.1v17.1V18
شمل
هائج
إسقاط
V18
معاق
هائج
إسقاط

تركيب
فراغ التكنولوجية
124.147.512.934.6

سفينة المخفض
محطة توليد الكهرباء
25641038.454.4

متعددة الأغراض
موحد
الجسم مربع
99.9123.444.953.5


أيضًا في الإصدار 18 ، تم تنفيذ إمكانية إعادة بناء الأنواع المرتبطة الفردية.

في رسم يحتوي على العديد من طرق العرض الترابطية ، تتوفر للمستخدم الفرصة لإعادة إنشاء طرق العرض الفردية غير ذات الصلة. على سبيل المثال ، الشخص الذي يريد إضافة تعليقات توضيحية إليه. يمكنك أيضًا تحديد طرق العرض المضمّنة مع تمكين خيار Rough Projection.

إعادة بناء وجهة نظر واحدة


لا تنطبق هذه الميزة على التسارع الصريح ، ولكنها تتيح للمستخدم توفير الوقت.

نتيجة العمل المنجز لتسريع إسقاط نموذج تركيب الفراغ التكنولوجي في الرسم:


في الجزء التالي ، سنصف كيف سارعنا في حساب خصائص التركيز الشامل (MTC) ، حول مساهمة النواة الهندسية c3dlabs في أداء COMPAS-3D ، والتغييرات في C3D Modeler ، وأيضًا عن الأجهزة المناسبة ل v18.

Source: https://habr.com/ru/post/ar447516/


All Articles