باختصار
- تستخرج Sample Index القيم المُقيَّمة عند الفهارس المحددة من الهندسة المصدر.
- تحسب Geometry Proximity أقرب موضع على الهندسة الهدف والمسافة إليه.
- ترسل Raycast أشعة من سياق المصدر إلى الهندسة الهدف لإنتاج معلومات التقاطع.
- يوصي دليل Blender باستخدام Evaluate at Index بدلًا من Sample Index في معظم الحالات عند العمل ضمن سياق الهندسة نفسه.
ما الذي ستتعلمه في هذا الدرس؟
تُستخدم عُقد أخذ العينات في Geometry Nodes لاستخراج البيانات من العلاقات بين الهندسة والمواضع. في هذا الدرس، سنركز على ثلاث عُقد: تقرأ Sample Index القيم عند فهارس محددة؛ وتوفر Geometry Proximity معلومات أقرب موضع والمسافة إليه؛ أما Raycast فتتحقق مما إذا كانت الأشعة تتقاطع مع الهندسة الهدف.
يسهّل التفكير في هذه العُقد من منظور النمذجة المعمارية والتصور اختيار العقدة المناسبة. فعلى سبيل المثال، تختلف احتياجات ربط نقاط هندستين عبر فهارسهما عن قياس بُعد عنصر عن سطح، أو البحث عن اصطدام بسطح هدف في اتجاه محدد. هذه العُقد ليست بدائل بعضها لبعض؛ ويعتمد الاختيار على البيانات المطلوب الحصول عليها.
المتطلبات ونطاق المصادر
المصادر هي صفحات دليل Blender التي تشرح وظائف عُقد Geometry Nodes. وقد أُخذت التفاصيل المتعلقة بـ Sample Index وGeometry Proximity وRaycast من صفحات الدليل «latest». أما صفحة الدليل الأخرى، المسماة Blender 5.2 LTS، فتقدم قائمة محتويات قسم Sample Geometry Nodes؛ ولم تُستخلص منها شروحات تفصيلية للعُقد.
لذلك يركز الشرح على وظائف هذه العُقد والعلاقات بين البيانات التي ينبغي الانتباه إليها. ولا توضح المصادر ملف مشروع محددًا أو إضافة أو متطلبات حاسوبية أو معلومات عن الأسعار. الأمثلة المعمارية الواردة هنا سيناريوهات استخدام أُعدت لتوضيح وظائف العُقد؛ ولا تصف المصادر إعدادًا جاهزًا لواجهة مبنى أو مساحة داخلية.
قبل البدء، حدّد الهندسة التي ستُقرأ منها البيانات، والهندسة التي ستُستخدم فيها النتيجة، والمخرج المطلوب. هل ستنقل قيمة موضع أو مجال، أم تبحث عن أقرب نقطة، أم تتحقق من تقاطع في اتجاه معين؟ تساعد هذه الأسئلة على توضيح الغرض من الإعداد.
1. استخراج القيم من الفهارس باستخدام Sample Index
تجلب Sample Index القيم المقابلة للفهارس المحددة من الهندسة المصدر. يحدد مدخل Geometry الهندسة التي ستُستخرج منها البيانات، ويحدد مدخل Value المجال الذي سيُقيَّم على تلك الهندسة، بينما يحدد مدخل Index الفهارس المطلوب الرجوع إليها. ويخرج المنفذ Value القيم المستخرجة من الهندسة المصدر. كما يشمل إعداد العقدة نوع البيانات والمجال الذي سيُقيَّم فيه النقل.
لنتصور نقل قيم الموضع من هندسة إلى أخرى في نموذج معماري. ابدأ بتحديد المجال الذي ستُقرأ قيمه من الهندسة المصدر، ثم عيّن الفهارس التي ستُطابَق معها القيم. تنشئ هذه الطريقة علاقة قائمة على الفهارس بين هندستين؛ لكن تمثيل الفهارس للنقاط المادية نفسها يعتمد على بنية الهندستين. ويذكر دليل Blender أن هذه الطريقة تعمل على أفضل وجه عندما يكون عدد النقاط والطوبولوجيا متطابقين في الهندستين.
لذلك، لا تفترض أن تطابق شكل الكائنين يعني صحة مطابقة الفهارس. فإذا اختلف عدد النقاط أو الطوبولوجيا، فقد يقابل فهرس معين موضعًا مختلفًا في كل هندسة. ويمكن توصيل فهارس مختلفة بمدخل Index لتغيير ترتيب القيم؛ لكن لا يُنصح بذلك إلا إذا كانت هذه هي المطابقة المطلوبة.
ومن التفاصيل المهمة أيضًا طريقة تقييم Sample Index لمجال Point. فهذا المجال مشترك بين مكونات Mesh وPoint Cloud وCurve؛ وتتحقق العقدة من أول مكوّن غير فارغ وفق هذا الترتيب: Mesh، ثم Point Cloud، ثم Curve. وإذا كان أخذ العينات مطلوبًا من مكوّن محدد، فيمكن فصل المكونات باستخدام عقدة Separate Components.
إذا كان مدخل Geometry هو الهندسة نفسها التي يُقيَّم عليها المجال، فيرى الدليل أن عقدة Evaluate at Index تكون عادةً خيارًا مفضلًا. وقد يسهل الاستغناء عن منفذ الهندسة في هذا الخيار إعادة استخدام الإعداد ومشاركته في حالات أخرى. لذا، قبل استخدام Sample Index، تحقّق مما إذا كنت تحتاج فعلًا إلى أخذ القيم من هندسة مصدر مختلفة.
2. العثور على أقرب موضع باستخدام Geometry Proximity
تحسب Geometry Proximity أقرب موضع على الهندسة الهدف. يحدد مدخل Geometry الهندسة التي سيُبحث فيها، فيما يحدد Sample Position الموضع الذي سيُبحث انطلاقًا منه عن أقرب نقطة. وأبرز مخرجاتها Position وDistance: الأول يعطي أقرب موضع على الهدف، والثاني يعطي المسافة بين موضع المصدر وتلك النقطة. ويشير مخرج Is Valid إلى نجاح أخذ العينة؛ فقد تفشل العملية عندما تكون المجموعة التي تُؤخذ منها العينات فارغة.
على سبيل المثال، إذا احتجت إلى معلومات المسافة لنقاط قريبة من سطح، فحدّد الهندسة الهدف والمواضع التي ستُجرى عندها القياسات. بعد ذلك، خطط لكيفية استخدام مخرج Distance في العملية التالية. قد تساعد عقدة Map Range على إنشاء تأثير يتناقص عند مسافة معينة انطلاقًا من معلومات المسافة؛ ويشير دليل Blender خصوصًا إلى هذا الاستخدام. أما نطاقات القيم، فينبغي تحديدها وفق الهندسة والغرض من العمل.
يحدد الإعداد Target Element نوع عنصر الهدف الذي سيُحسب القرب بالنسبة إليه. يبحث Faces عن أقرب موضع على أسطح الـ mesh الهدف، وEdges عن أقرب موضع على حوافه، بينما يبحث Points عن أقرب موضع على النقاط أو الرؤوس. ووفقًا للدليل، يكون Points في معظم الحالات الوضع الأسرع، ويعمل مع هندستي mesh وpoint cloud. أما وضعا Faces وEdges فلا يعملان إلا مع هندسة mesh. وإذا كان المطلوب هو أقرب موضع على سطح، فلا تفترض أن اختيار Points سيعطي النتيجة نفسها.
تتضمن العقدة أيضًا مدخلي Group ID وSample Group ID. يقسم Group ID عناصر الهندسة المدخلة إلى مجموعات منفصلة، بينما يحدد Sample Group ID المجموعة التي سيُبحث فيها عن أقرب عنصر. في الإعدادات التي تستخدم مجموعات، انتبه إلى ما تقيده هذه المداخل.
3. التحقق من تقاطع الأسطح باستخدام Raycast
ترسل Raycast أشعة إلى الـ mesh الهدف انطلاقًا من سياق الهندسة المتصلة بالعقدة. ويحدد Target Geometry الهندسة التي ستُختبر الأشعة عليها. أما Source Position فيحدد نقطة بداية كل شعاع، وRay Direction يحدد اتجاهه، بينما يحدد Ray Length أقصى مسافة يمكن أن يقطعها الشعاع قبل احتساب التقاطع. وإذا لم يُوصَل شيء بمدخل Source Position، فتُقيَّم نقطة البداية كما لو كانت عقدة Position متصلة به.
عندما تبحث عن تقاطع مع السطح المقابل انطلاقًا من جزء في النموذج، حدّد نقطة البداية والاتجاه والطول بما يناسب الحاجة. يعطي Is Hit نتيجة الوصول إلى الهدف لكل شعاع. وعند وقوع التقاطع، يحدد Hit Position موضع التقاطع، ويعطي Hit Normal العمودي على السطح، فيما يحدد Hit Distance المسافة بين نقطة البداية والتقاطع. وإذا لم يصطدم الشعاع بالهدف، يعيد Hit Distance قيمة Ray Length المحددة.
يمكن استخدام مدخل Attribute أيضًا إذا كنت بحاجة إلى أخذ قيمة مجال من سطح الهدف عند نقطة التقاطع. يُقيَّم المجال المتصل بهذا المدخل على الهندسة الهدف، ثم يُنقل إلى نقاط التقاطع ويظهر في مخرج Attribute. ويحدد إعداد Interpolation طريقة نقل سمات الـ mesh الهدف إلى النتيجة: يَستوفي Interpolated قيم الرؤوس وقيم الرأس-الوجه بسلاسة، بينما يختار Nearest قيمة أقرب رأس.
كيف تُستخدم في سير عمل العمارة والتصور المعماري؟
عند العمل على عناصر الواجهات أو مكونات المساحات الداخلية أو هندسة المشهد، ابدأ بتحديد العلاقة المطلوبة. يمكن استخدام Sample Index لنقل القيم حسب الفهارس بين هندستين لهما طوبولوجيا وعدد نقاط متطابقان. وإذا كنت بحاجة إلى المسافة من سطح أو أقرب موضع، فستكون Geometry Proximity أنسب؛ أما إذا كنت تحتاج إلى معرفة ما إذا كان اتجاه معين يصل إلى هندسة مستهدفة والحصول على بيانات التقاطع، فـ Raycast هي الخيار الأنسب.
قبل الانتقال إلى مشهد الإنتاج، تحقّق من نوع الهندسة الهدف والمكوّن الذي تعمل عليه العقدة. يؤثر اختيار Target Element في Geometry Proximity، ومطابقة الفهارس والطوبولوجيا في Sample Index، وكذلك نقطة البداية والاتجاه وطول الشعاع في Raycast، على النتائج. وتكتسب هذه التفاصيل أهمية خاصة لفرق النمذجة التي تُعد إعدادات هندسية قابلة لإعادة الاستخدام، وللفنانيين العاملين في التصور المعماري الذين يختبرون تأثيرات مرتبطة بالأسطح. ولا تقدم الأدلة معلومات عن متطلبات الأجهزة أو شروط الترخيص أو التوافق مع برامج أخرى، لذا ينبغي عدم افتراض أي تفاصيل بشأن هذه الجوانب.
أخطاء شائعة
قد يؤدي عدم التحقق من عدد النقاط والطوبولوجيا عند استخدام Sample Index إلى مطابقة فهارس غير متوقعة.
قد يؤدي إغفال احتمال استخدام أول مكوّن غير فارغ في مجال Point إلى أخذ البيانات من مكوّن غير صحيح.
قد لا تحقق توقعات الاستخدام المرجوة إذا لم تتحقق من أن الهدف mesh عند اختيار Faces أو Edges في Geometry Proximity.
قد يكون تفسير قيمة المسافة مضللًا إذا لم تفحص نتيجة Is Hit في Raycast؛ فعند عدم حدوث تقاطع، يعطي Hit Distance طول الشعاع.
قد يصعب اكتشاف فراغ مجموعة أخذ العينات إذا تجاهلت قيمة Is Valid في Geometry Proximity.
الخطوات التالية
جرّب العُقد أولًا بشكل مستقل على هندسات بسيطة. ابدأ في Sample Index بهندسات متطابقة في عدد النقاط والطوبولوجيا. وفي Geometry Proximity، قارن بين الأهداف التي تستخدمها أوضاع Points وFaces وEdges. أما في Raycast، فراقب العلاقة بين نقطة البداية والاتجاه والطول ونتائج التقاطع.
إذا اختلفت النتيجة عما توقعت، فلا تكتفِ بالنظر إلى المخرج المرئي؛ بل راجع أيضًا قيم التحقق مثل Is Valid وIs Hit، والمكوّن الهدف المحدد، والمجال المستخدم. وقد يصعب تحديد مصدر الخطأ إذا نُقلت العقدة إلى مشاهد أكثر تعقيدًا قبل فهم ما تأخذ منه العينات بوضوح.
المصدر والترخيص
أُعدّ هذا الدرس باللغة التركية بالاستناد إلى الشروحات الواردة في صفحات دليل Blender الخاصة بـ Sample Index وGeometry Proximity وRaycast؛ وهذه الصفحات من دليل «latest». واُستخدمت صفحة Blender 5.2 LTS Manual مصدرًا لقائمة العُقد ضمن قسم Sample Geometry Nodes. الوثائق المصدرية مرخصة بموجب CC BY-SA 4.0.
المصادر
3 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
تتمثل الفائدة العملية لهذه العُقد لفرق العمارة والتصور في إمكانية إنشاء علاقات هندسية واضحة وقابلة لإعادة الاستخدام. ويمكن لقياس المسافة وتقاطع السطح أن يحلا احتياجًا محددًا إلى البيانات في أعمال الواجهات أو المساحات الداخلية؛ لكن النتيجة تعتمد على اختيار الهندسة الهدف والمجال المناسبين أكثر مما تعتمد على اسم العقدة.
من المهم للمكاتب والطلاب في تركيا احتساب وقت التعلم والتجربة قبل التفكير في تكاليف البدء. لا تقدم المصادر معلومات عن الأجهزة أو رسوم الترخيص أو شروط التوافق؛ لذلك ينبغي عدم استنتاج أي شيء بشأن هذه المسائل. والتحقق من مطابقة الفهارس ونوع الهدف واختبارات التقاطع على أمثلة صغيرة قبل الانتقال إلى ملفات الإنتاج الفعلية هو النهج الأكثر سلامة.
الأسئلة الشائعة
ما وظيفة Sample Index في Blender Geometry Nodes؟
تستخرج من الهندسة المصدر القيم المُقيَّمة عند فهارس محددة. وعند المطابقة بين هندستين، يساعد تطابق عدد النقاط والطوبولوجيا على الحصول على النتيجة المتوقعة.
ما الفرق بين Geometry Proximity وRaycast؟
تحسب Geometry Proximity أقرب موضع والمسافة إليه. أما Raycast فترسل شعاعًا إلى الهندسة الهدف انطلاقًا من نقطة واتجاه محددين، وتوفر معلومات التقاطع.
ما أنواع الهندسة التي تعمل معها Geometry Proximity؟
يعمل وضع Points مع هندستي mesh وpoint cloud. أما وضعا Faces وEdges فلا يمكن استخدامهما إلا مع هندسة mesh.



