باختصار
- صُمّم Ocean modifier لإنشاء أمواج أعماق البحار وبيانات الرغوة.
- كلما زادت الدقة، أصبحت المحاكاة أكثر تفصيلًا، لكن وقت الحساب يزداد أيضًا.
- يمكن لعملية الخَبز حفظ بيانات المحاكاة في تسلسلات OpenEXR للإزاحة والـ normal والرغوة اختياريًا.
- ينشئ Wave modifier حركة أمواج دائرية أو خطية على الأجسام، بمعزل عن محاكاة المحيط. ב
يمكن استخدام Ocean modifier، كما يشرحه دليل Blender الرسمي، لإنشاء سطح محيط متشوّه في المشاهد وخامة رغوة مرتبطة به. أما Wave modifier، فيُستخدم لإنشاء حركة شبيهة بالأمواج على جسم ما. يستند سير العمل أدناه إلى الشروحات الواردة في الدليل عن Ocean وWave وعقدة Attribute. ولأن النص المصدر لا يحدّد إصدارًا معينًا من Blender لهذه الصفحات، فلا يرتبط هذا الدليل برقم إصدار محدد.
1. حدّد طريقة إنشاء السطح
يقدّم Ocean modifier خياري Generate وDisplace كنقطتي بداية مختلفتين. ينشئ Generate شبكة mesh قابلة للتبليط، تتوافق مع دقة المحاكاة. ويستبدل هذا الخيار الـ mesh الموجود بالكامل؛ فلا يحتفظ بالهندسة الموجودة، بما في ذلك البيانات الناتجة عن العمليات السابقة في modifier stack. ويشير الدليل إلى إضافة قناة UV إلى هذه الهندسة، تغطي شبكة المحاكاة.
أما Displace، فيستخدم الهندسة الموجودة ويزيح الرؤوس على امتداد المحور Z المحلي للكائن. لذلك، إذا كانت لديك شبكة سطح جاهزة للاستخدام في المشهد، فقد يكون هذا الخيار مناسبًا؛ أما إذا أردت أن ينشئ المحاكي شبكته الخاصة، فاختر Generate. وعند استخدام Generate، تحدد الدقة أيضًا مقدار تفاصيل الـ mesh الناتج.
يتحكم Repeat X, Y في عدد مرات تبليط الشبكة على امتدادي X وY. وقد تتجاوز إحداثيات UV للمناطق المبلّطة أكثر من مرة النطاق 0.0–1.0؛ لذا ضع ذلك في الحسبان عند التخطيط للتصدير أو إعداد الخامات.
2. اضبط الدقة والمقياس الفيزيائي بما يناسب المشهد
تمثل دقة العرض في Viewport ودقة الرندر أساس الموازنة بين جودة المحاكاة وسرعة الحساب. ووفقًا للدليل، تؤدي زيادة القيمة إلى إنتاج تفاصيل أكثر، لكنها تبطئ الحساب. وتُحسب شبكة المحاكاة الداخلية على أساس أن قيمة الدقة مرفوعة إلى قوة العدد 2؛ فعلى سبيل المثال، عندما تكون الدقة 16، تكون بيانات المحاكاة بحجم 256×256.
يحدد Spatial Size عرض مساحة المحيط المحاكاة بالأمتار؛ كما يعتمد عليه حجم الـ mesh الناتج عن Generate أو مساحة التأثير عند استخدام Displace. أما Size فهو معامل قياس بسيط لا يغير ارتفاع الأمواج أو سلوك المحاكاة. ويشير الدليل إلى إمكانية ضبط الحجم الظاهر في المشهد أيضًا عبر تغيير مقياس الكائن في Object Mode. ويساعد عدم الخلط بين عناصر التحكم هذه على تعديل المساحة التي يشغلها السطح في الإطار، من دون تغيير ارتفاع الأمواج.
| الإعداد | القيمة المقترحة | التأثير |
|---|---|---|
| Resolution | 16 ← بيانات محاكاة بحجم 256×256 | توفر الدقة الأعلى تفاصيل أكثر، لكنها تبطئ الحساب. |
| Depth | مثال المياه الضحلة: أقل من نحو 10 أمتار | تؤدي القيمة الأقل إلى أمواج أصغر وتفاصيل أعلى ترددًا. |
| Foam Coverage | النطاق المعتاد في الدليل: من -1.0 إلى 1.0 | تقلل القيمة السالبة الرغوة؛ وتزيد القيمة الموجبة كميتها. |
| Wave Narrowness | مثال: Narrowness بقيمة 2 عندما يكون Width بقيمة 1 | يساعد على تحديد عرض نبضات الأمواج. |
هذا الجدول ليس وصفة جاهزة للرندر؛ فالقيم مأخوذة من الأمثلة والشروحات الواردة في الدليل. وينبغي اختبار النتائج بما يناسب مقياس المشهد والتكوين البصري والمظهر المطلوب.
3. اضبط طابع الأمواج وبيانات الرغوة
يغيّر Scale سعة الموجة عمومًا؛ وهذا لا يعادل تكبير الكائن في اتجاه Z فحسب. ووفقًا للدليل، يؤثر هذا الإعداد أيضًا في الإزاحة باتجاهي X وY، وفي الرغوة وبيانات الـ normal. أما Smallest Wave، فيحدّد أصغر الأمواج الناتجة، ويشبه ترشيح التفاصيل الأعلى ترددًا. ومع زيادة Choppiness، لا تقتصر حركة قمم الأمواج على الاتجاهين صعودًا وهبوطًا، بل تتحرك أيضًا في اتجاهي X وY، فتكتسب شكلًا أكثر حدة.
يمكن استخدام عناصر التحكم Wind Velocity وAlignment وDirection وDamping لضبط الرياح والاتجاهية. ترتبط سرعة الرياح المنخفضة بأمواج سطحية أصغر. وعندما تكون Alignment عند الصفر، تتوزع الأمواج في اتجاهات مختلفة؛ ومع رفع القيمة، تصطف بدرجة أكبر في اتجاه واحد. ويحدد Direction زاوية هذا الاصطفاف. اضبط هذه العناصر معًا لتشكيل هيئة الأمواج واتجاه حركتها بما يلائم المشهد.
لإنشاء بيانات الرغوة، فعّل خيار Foam في modifier، وأدخل اسمًا في حقل Data Layer. يوضح الدليل أن هذه البيانات تُخزّن بوصفها Color Attribute، وأن الوصول إليها في الرندر يتطلب طبقة بيانات مسماة. في Shader Editor، اضبط نوع عقدة Attribute على Geometry واستخدم الاسم نفسه؛ إذ يوفّر خرج Ocean Foam قيمة قياسية تحدد المناطق التي تظهر فيها الرغوة. ومن المهم أن يطابق اسم العقدة اسم طبقة البيانات في modifier.
4. اخبز الحركة أو أنشئ أمواجًا موضعية
استخدم سير عمل الخَبز لحفظ البيانات في ملفات بدلًا من تشغيل المحاكاة مباشرة. وفقًا لدليل Ocean، تُكتب المحاكاة في المجلد المحدد على هيئة تسلسلات صور OpenEXR: خرائط الإزاحة والـ normal، وخريطة الرغوة إذا كانت مفعّلة. وتتضمن أسماء الملفات أرقام الإطارات. ويغطي نطاق الخَبز الإطارين الأول والأخير؛ وعند الوصول إلى إطارات خارج هذا النطاق، يتكرر الإطاران الأول والأخير من التسلسل.
إن إعادة استخدام البيانات بعد خبزها أسرع من إعادة حساب المحاكاة؛ كما تتيح استخدامها في تطبيقات رندر أخرى وإنشاء خرائط رغوة أكثر تطورًا. وتُخزّن الإطارات المقروءة مؤقتًا في الذاكرة، لذا لا يلزم قراءتها من القرص عند الوصول إليها مرة أخرى. ويمكن أيضًا استخدام سلوك Foam Fade، الذي يراكم الرغوة من الإطارات السابقة، مع الخَبز. ويهدف ذلك إلى محاكاة بقاء الرغوة على قمة الموجة لفترة قصيرة.
إذا كنت تحتاج إلى تموّج مضبوط بدلًا من محيط، فإن Wave modifier خيار أكثر مباشرة. ويمكن لهذا modifier العمل على mesh وlattice وcurve وsurface وtext. وعند تفعيل المحورين، ينشئ جبهات موجية دائرية؛ أما تفعيل محور واحد فينشئ جبهات موجية خطية. ويجعل Cyclic الحركة متكررة بدلًا من اقتصارها على نبضة واحدة. وفي الـ mesh، يتيح Along Normals تطبيق التشوّه على امتداد normals السطح بدلًا من المحور Z للكائن. ويمكن تحديد نقطة بدء الموجة باستخدام كائن مرجعي أو بإحداثيات X/Y المحلية.
تذكّر أن إعدادات Wave تكون في الفضاء المحلي للكائن؛ لذا ينبغي احتساب مقياس الكائن المعني عند تقييم الأبعاد الفعلية. ويوصي الدليل بمساواة المسافة بين الأمواج المتتابعة بعرض الموجة للحصول على تأثير قريب من الموجة الجيبية؛ فعلى سبيل المثال، يُستخدم Narrowness بقيمة 2 عندما يكون Width بقيمة 1.
أخطاء شائعة
إغفال أن Generate قد يستبدل الهندسة الموجودة وبيانات الـ modifiers السابقة.
عدم احتساب زيادة وقت الحساب عند رفع الدقة.
عدم مطابقة اسم Data Layer مع الاسم في عقدة Attribute، رغم إنشاء بيانات الرغوة.
افتراض أن قيم Wave modifier تطابق وحدات المشهد مباشرة؛ فالقيم في الفضاء المحلي، ويؤثر مقياس الكائن في الأبعاد الفعلية.
عدم ضبط نطاق الخَبز ليشمل الإطارات المطلوبة في المشهد.
المصادر
3 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
بالنسبة إلى مكاتب العمارة والتصميم الداخلي في تركيا، يتيح Ocean modifier التحكم في حركة السطح وبيانات الرغوة ضمن مشهد واحد، وذلك في مشاهد المنشآت الساحلية والمسابح والتصورات البصرية للواجهات المائية. وبما أن اختيار الدقة يؤثر مباشرة في وقت الحساب، فمن الأجدى تحديد التكوين البصري ومقياس السطح أولًا بدلًا من تشغيل كل اختبار بأعلى إعداد.
يمكن أن يقلل الخَبز الحاجة إلى إعادة الحساب، كما يتيح نقل بيانات OpenEXR إلى تطبيقات رندر أخرى؛ لكنه يتطلب إدارة تسلسلات الملفات ونطاق الإطارات المطلوب. وينبغي التحقق خصوصًا قبل الإنتاج من أن Generate يستبدل الهندسة الموجودة، ومن ضرورة وجود طبقة بيانات مسماة للرغوة. ولأن الدليل الرسمي لا يذكر رقم إصدار Blender لهذه الصفحات، ينبغي التحقق بصورة مستقلة من الواجهة والتوافق في النسخة المستخدمة.
الأسئلة الشائعة
ما الذي تغيّره دقة Blender Ocean modifier؟
تحدد الدقة تفاصيل شبكة المحاكاة والـ mesh الناتج عند استخدام Generate. وكلما زادت القيمة، زادت التفاصيل، لكن الحساب يصبح أبطأ.
كيف أستخدم الرغوة في Ocean modifier في Blender؟
بعد تفعيل بيانات Foam، أدخل اسمًا في حقل Data Layer. ويمكن قراءة بيانات Ocean Foam باستخدام عقدة Attribute في Shader، مع ضبط نوعها على Geometry واستخدام الاسم نفسه.
هل يمكن استخدام محاكاة Ocean modifier في تطبيقات رندر أخرى؟
تُحفظ البيانات بعد خبزها في تسلسلات صور OpenEXR. ووفقًا للدليل، يمكن فتح هذه الملفات أيضًا في تطبيقات أو أنظمة رندر أخرى تدعم OpenEXR.



