مشاكل محاكاة السوائل ولماذا هي مكلفة؟

الهدف هو إجراء 10 ثوانٍ من محاكاة السوائل المفصلة للغاية للقطة قريبة بمعدل 60 إطارًا في الثانية.

بعد قضاء حوالي يوم في تجربة ومقارنة MantaFlow مع Flip Fluis، اخترت الأخير، حيث يتصرف MantaFlow بشكل غير متوقع للغاية، اعتمادًا على الدقة.

اعتقدت أن الماء سيصل إلى سطح حوض السباحة في 50 إطارًا + تحتاج إلى 10 ثوانٍ من الرسوم المتحركة نفسها بمعدل 60 إطارًا في الثانية، مما يؤدي إلى محاكاة 650 إطارًا بدقة 150 مليون فوكسل. استغرقت هذه المحاكاة على Ryzen 3700x 5 أيام.

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

لقد قمت بإعادة تكوين المشهد من Cycles إلى Octane Render، واستمرت المشكلة، لذلك قررت العودة إلى Cycles.

يتعامل Blender بشكل عام مع عدد كبير من المضلعات بشكل جيد للغاية، والمشكلة تكمن في هندسة FlipFluids. يعترف مطورو الإضافات بالمشكلة على GitHub ويكتبون أنها موجودة على جانب Blender لأنها لا تعمل بشكل جيد مع هندسة HighPoly المصنوعة في Python أو شيء من هذا القبيل.

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

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

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

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

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

بعد مرور بعض الوقت من الاختبار، لاحظت أنه في Blender 3.5، يتصرف المشهد بشكل أكثر استقرارًا مما كان عليه في الإصدار 3.6، لذلك قررت مواصلة العمل فيه. كان لا بد من إعادة تكوين المواد التي تحتوي على بطاقة Mix، لأنها تعمل بشكل مختلف في الإصدار 3.6، وسيتعين إعادة عرض الإطارات الأولى، لأن بعض المواد الآن تبدو مختلفة قليلاً.

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

لقد اكتشفت برنامج Batch Render Creator، وبفضله انخفض عدد الأعطال أثناء العرض بشكل أكبر.

التوهج الذاتي من هذه الزاوية، بالقرب من الشق المظلم حيث يتدفق الماء، لا يبدو جيدًا جدًا. لسوء الحظ، لا يحتوي الخلاط على خريطة المسافة، وهي متوفرة في 3ds Max وCorona، لذلك سيتعين عليك تصيير النسخة بدون توهج ذاتي مرة أخرى ومزجها في AfterEffecs حتى لا يكون هناك توهج ذاتي في منطقة الفجوة، ولكن هناك في أماكن أخرى.

كانت هناك أيضًا مشكلات أخرى، على سبيل المثال مع موضع الكاميرا، لأنني قمت بتحويل بداية الرسوم المتحركة من الإطار 50 إلى الإطار 100، واضطررت أيضًا إلى إعادة عرض بعض منها. واضطررت إلى العبث بالعقد الهندسية لقطع الجزء السفلي بالقرب من الماء، لأنني لم أقم بالمحاكاة لعمق حوض السباحة بأكمله.

ردًا على النقاد المحتملين الذين لم يفعلوا شيئًا كهذا من قبل، لكنهم يعتقدون أنه في Houdini أو PhoenixFD توجد مشكلات أقل ويمكن القيام بكل شيء بشكل أسرع، أقترح عليك أولاً إجراء محاكاة لأكثر من 150 مليون فوكسل وعرضها على وحدة معالجة الرسومات جنبًا إلى جنب مع النباتات المتحركة والإزاحة، ثم اكتب المدة التي استغرقتها وما هي الفروق الدقيقة وعدم التوافق التي واجهتها.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *