باختصار
- تنشئ عقدة Distribute Points on Faces نقاطًا على شبكة تحتوي على أوجه.
- تُعرَّف Random في الوثائق بأنها الطريقة الأسرع، بينما تراعي Poisson Disk الحد الأدنى للمسافة بين النقاط.
- تشير قيمة Density إلى عدد النقاط الموزعة لكل متر مربع على سطح الشبكة.
- يمكن لعقدة Instance on Points استخدام الهندسة المتكررة كمرجع عند كل نقطة، من دون نسخ البيانات.
يمكن استخدام عقدتي Distribute Points on Faces وInstance on Points، اللتين يشرح دليل Blender الرسمي طريقة عملهما، معًا لإنشاء نقاط على سطح شبكة أولًا، ثم وضع عناصر هندسية عند هذه النقاط. يتناول هذا الدليل سير العمل الأساسي في Geometry Nodes وأبرز إعداداته. ولأن الوثائق المصدرية لا تذكر رقم إصدار محددًا من Blender، يستند الشرح إلى سلوك العقد كما توضحه الصفحات المعنية في Blender Manual.
1. استخدم شبكة تحتوي على أوجه للتوزيع
يجب توصيل شبكة تحتوي على أوجه بمدخل Mesh في عقدة Distribute Points on Faces. تنشئ العقدة نقاطًا على السطح، لذلك لا تصلح الهندسة التي لا تحتوي على أوجه لهذا المدخل. ويحدد مدخل Selection رؤوس الأوجه التي تؤخذ في الحسبان عند توزيع النقاط. وبذلك يمكن تحديد مواضع التوزيع بالاستناد إلى بيانات الهندسة.
تنقل العقدة إلى النقاط الناتجة سمات النقاط والرؤوس والمضلعات الموجودة في الهندسة المدخلة. وتشمل هذه البيانات أوزان الرؤوس وخرائط UV. كما توفر العقدة مخرجي Normal وRotation. يعطي Normal العمودي على المثلث الذي تقع عليه النقطة، أما Rotation فهو دوران Euler مُنشأ انطلاقًا من ذلك العمودي. ويمكن استخدام هذين المخرجين لتوجيه العناصر في العقد اللاحقة.
تنشئ العقدة أيضًا السمة المدمجة id، وهي معرّف ثابت لكل نقطة. ووفقًا للدليل، تظل قيم المعرّفات متسقة للنقاط التي تبقى موجودة عند تشوه الشبكة أو تغيّر الكثافة. ويمكن استخدام هذا المعرّف في عقد مثل Random Value وInstance on Points. لذلك تصبح بيانات id مهمة عند الحاجة إلى تحديد النقاط في المراحل اللاحقة من التوزيع.
2. اختر بين Random وPoisson Disk
يحدد إعداد Distribution Method كيفية توزيع النقاط. توزّع طريقة Random النقاط عشوائيًا على السطح، وتصفها الوثائق بأنها الخيار الأسرع. وهي نقطة بداية أساسية عندما لا تكون هناك حاجة للحفاظ على مسافة معينة بين النقاط.
توزّع Poisson Disk النقاط عشوائيًا أيضًا، لكنها تراعي الحد الأدنى للمسافة بينها. وفي هذه الطريقة، يحدد إعداد Distance Min أدنى مسافة يمكن أن تفصل بين النقاط. عندما تكون Distance Min مساوية للصفر، يصبح سلوك العقدة مماثلًا لطريقة Random؛ إذ لا تُستبعد أي نقطة بسبب المسافة بينها وبين النقاط الأخرى.
| الإعداد | القيمة المقترحة | التأثير |
|---|---|---|
| Distribution Method: Random | لا تحدد الوثائق قيمة ثابتة | يوزع النقاط عشوائيًا، وتصفه الوثائق بأنه أسرع طريقة. |
| Distribution Method: Poisson Disk | لا تحدد الوثائق قيمة ثابتة | يراعي الحد الأدنى للمسافة بين النقاط. |
| Distance Min | تعطي القيمة صفر السلوك نفسه لطريقة Random | يحدد الحد الأدنى للمسافة بين النقاط؛ ولا يُستخدم إلا مع Poisson Disk. |
| Density | عدد النقاط لكل متر مربع | يحدد كثافة توزيع النقاط على كل سطح من أسطح الشبكة. |
| Seed | لا تحدد الوثائق قيمة ثابتة | قيمة العشوائية المستخدمة لإنشاء النقاط. |
لم نضف في هذا الجدول توصية رقمية لا تذكرها الوثائق. ينبغي تحديد القيم بالتجربة وفقًا لمتطلبات المشهد؛ ومع Poisson Disk، يجب تقييم الحد الأدنى للمسافة والكثافة معًا.
3. تحكّم في الكثافة وحدود التوزيع معًا
يشير مدخل Density إلى عدد النقاط الموزعة لكل متر مربع على كل وجه من أوجه الشبكة. وتُضرب هذه القيمة في قيم Density Attribute. وتتضمن طريقة Poisson Disk أيضًا مدخل Density Max، الذي يحدد بدوره كثافة النقاط لكل متر مربع ويسهم، مع Density، في تحديد الكثافة النهائية. ولا يتوفر Density Max إلا في وضع Poisson Disk.
لا تؤدي زيادة الكثافة بالضرورة إلى إضافة نقاط جديدة في كل الحالات. يذكر الدليل أن Distance Min قد يقيّد Density Max. فإذا تجاوزت الكثافة الحد الذي تسمح به المسافة الدنيا، فلن تُضاف نقاط جديدة. لذلك، إذا تعذر الحصول على توزيع أكثر كثافة، ينبغي التحقق من إعداد Distance Min إلى جانب قيمة Density.
Seed هي قيمة البذرة العشوائية المستخدمة في إنشاء النقاط. ويمكن تغيير هذا الإعداد عند الحاجة إلى توزيع مختلف. وإذا أردت الحفاظ على التوزيع الحالي أو مقارنة التغييرات، فتحقق من قيمة Seed أيضًا. ولا تقترح الوثيقة المصدرية رقمًا محددًا لهذا الإعداد.
4. أضف عناصر هندسية إلى النقاط
صِل مخرج Points من عقدة Distribute Points on Faces بمدخل Points في عقدة Instance on Points. ثم أدخل الهندسة المراد تكرارها في مدخل Instance. تضيف عقدة Instance on Points الهندسة إلى كل نقطة كمرجع، من دون نسخ البيانات الأساسية. ويشرح دليل Blender هذا الأسلوب باعتباره طريقة سريعة لاستخدام الهندسة نفسها مرات عديدة في المشهد.
يحدد مدخل Rotation دوران كل نسخة، بينما يحدد مدخل Scale حجمها. ويمكن توصيل مخرج Rotation من عقدة Distribute Points on Faces لتوجيه النسخ بحسب العمودي على السطح. لكن قد يبقى المحور Z غير محدد في الدوران المُنشأ انطلاقًا من العمودي، لأن العمودي على السطح لا يوفر معلومات كافية لتحديد محاور الدوران الثلاثة جميعها. لذلك ينبغي التحقق من النتيجة إذا كان المطلوب أن تتجه العناصر نحو السطح وأن تحافظ أيضًا على محاذاة محددة في جميع المحاور.
تتيح عقدة Instance on Points استخدام سمات النقاط في مجال النسخ الناتجة. وإذا احتوت الهندسة المدخلة على سمة id، تُنقل هذه القيمة إلى نسخ المخرجات. وإذا كان مدخل النقاط يتضمن نسخًا بالفعل، فيمكن للعقدة وضع نسخ جديدة عند النقاط الموجودة داخل تلك النسخ؛ ويصف الدليل ذلك بأنه إنشاء نسخ متداخلة.
عند استخدام هندسة تتكون من عدة نسخ في مدخل Instance، يتيح خيار Pick Instances اختيار نسخة واحدة من القائمة لكل نقطة بدلًا من إضافة القائمة كاملة إلى كل نقطة. ويُجرى الاختيار عبر Instance Index، ولا يتوفر هذا الخيار إلا عند تفعيل Pick Instances. ويربط الدليل هذا الاستخدام بعقدة Collection Info. كذلك، تُعالَج الفهارس السالبة أو التي تتجاوز عدد عناصر القائمة بالاستمرار من الطرف الآخر للقائمة. وعند الحاجة إلى تحويل النسخ إلى كائنات فعلية، يمكن استخدام العامل Make Instances Real.
ما الفائدة في سير عمل العمارة والتصوير المعماري؟
توفر هاتان العقدتان أساسًا إجرائيًا لوضع العناصر المتكررة على سطح شبكة واستخدام الهندسة نفسها عند عدد كبير من النقاط. وفي أعمال التصوير المعماري، يعتمد اختيار الطريقة على ما إذا كان الترتيب المطلوب عشوائيًا أم يتطلب حدًا أدنى للمسافة بين النقاط. يتيح استخدام النسخ تكرار بيانات الهندسة نفسها من دون إعادة إنشائها عند كل نقطة؛ لكن الوثائق المصدرية لا تقدم قياسات للأداء أو متطلبات محددة للأجهزة.
لا تحدد الوثائق إصدار Blender الذي تنطبق عليه هذه العقد، ولا تقدم جدولًا للتوافق. وتذكر البيانات الوصفية للمصدر في صفحة الدليل ترخيص CC BY-SA 4.0؛ وهذه معلومات الترخيص الخاصة بمحتوى التوثيق الرسمي الذي يتناوله هذا المقال. ولا تورد المصادر معلومات إضافية عن توافق إصدار Blender المستخدم أو ملفات العمل.
أخطاء شائعة
توصيل هندسة لا تحتوي على أوجه بعقدة Distribute Points on Faces. يجب أن يكون المدخل شبكة تحتوي على أوجه.
افتراض أن زيادة Density في Poisson Disk ستؤدي بالضرورة إلى إنشاء نقاط أكثر. قد يحد Distance Min من الكثافة المسموح بها.
توقع إبعاد النقاط عن بعضها عندما تكون Distance Min مساوية للصفر. في هذه الحالة، يكون السلوك مماثلًا لطريقة Random.
افتراض أن مخرج Rotation المستند إلى العمودي يحدد المحاور كلها بشكل قاطع. قد يبقى المحور Z غير محدد.
التعامل مع النسخ الناتجة على أنها هندسة فعلية في جميع الحالات. يذكر الدليل العامل Make Instances Real لتحويلها إلى كائنات فعلية.
المصادر
2 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
تكمن القيمة العملية لسير العمل هذا لدى مكاتب العمارة وفرق التصوير المعماري في تركيا في قدرته على وضع العناصر المتكررة على الأسطح وفق قواعد محددة. توفر Random خيار توزيع سريعًا، بينما تبرز Poisson Disk في الترتيبات التي تتطلب التحكم في المسافات. كما يساعد استخدام الهندسة كمرجع على تجنب إعادة إنتاج البيانات نفسها عند كل نقطة.
مع ذلك، لا تشرح الكثافة وحدها النتيجة؛ إذ ينبغي أيضًا التحقق من حد Distance Min والقيود المفروضة على المحاور عند إنشاء الدوران انطلاقًا من العمودي. ولا تقدم المصادر متطلبات للأجهزة أو قياسات للأداء. ورغم ذكر ترخيص CC BY-SA 4.0 للدليل الرسمي، فإن ذلك لا يشرح شروط ترخيص برنامج Blender. كذلك لم يُذكر رقم الإصدار، لذا من المناسب أن تتحقق الفرق من سلوك العقد في النسخ المثبتة لديها.
الأسئلة الشائعة
ما العقدة المستخدمة لتوزيع النقاط على سطح شبكة في Blender؟
تنشئ عقدة Distribute Points on Faces نقاطًا على شبكة تحتوي على أوجه. أما الهندسة التي لا تحتوي على أوجه فلا تصلح لمدخل Mesh في هذه العقدة.
ما الفرق بين توزيعي Random وPoisson Disk؟
تُعرَّف Random في الوثائق بأنها أسرع طريقة للتوزيع. أما Poisson Disk فتراعي الحد الأدنى للمسافة بين النقاط؛ وعندما تكون Distance Min مساوية للصفر، يصبح سلوكها مماثلًا لطريقة Random.
هل تنشئ عقدة Instance on Points نسخًا فعلية؟
يمكن للعقدة استخدام الهندسة كمرجع عند النقاط، وإنشاء عدد كبير من النسخ في المشهد من دون تكرار البيانات نفسها. كما يذكر الدليل العامل Make Instances Real لتحويل النسخ إلى كائنات.


