درباره Render Farm

AV/CG

 

در این مقاله قصد داریم دوستان علاقه مند به Animation و Visual Effects را با سیستمهای Render Farm در دنیای CG آشنا کنیم. همانطور که خود می دانید، مرحله Rendering یکی از سنگینترین و زمانبرترین مراحل Production و Post Production یک پروژه Animation و Visual Effects می باشد. به این دلیل که در این مرحله محاسبات بسیار زیاد و سنگین Lighting و Material باید توسط کامپیوتر انجام شود. در بسیاری از پروژه های بزرگ ممکن است Render هر Frame از پروژه، روزها به طول بیانجامد!

فرض کنید که 2 دقیقه کار ساختید و می خواهید آن را با 25 فریم برثانیه در سیستم TV/PAL، محاسبه و Render کنید. یعنی هر ثانیه معادل 25 فریم و هر 1 دقیقه معادل 1500 فریم و 2 دقیقه معادل 3000 فریم. به دلیل استفاده از مدلهای بسیار زیاد و Materialها و Lightهای پیچیده، Render هر Frame از پروژه شما 1 ساعت طول می کشد. بنابراین شما با یک سیستم معمولی در 1 روز کامل تنها می توانید کمتر از 1 ثانیه از کار را Render کنید و برای Render کل پروژه به حداقل 120 روز یا 4 ماه زمان نیاز دارید! خوب اگر بخواهید یک پروژه سینمایی که 90 دقیقه است را Render کنید، احتمالا تنها نوادگان شما می توانند نتیجه کار شما را ببینند!

اگرچه روز به روز Hardwareهای مبحث CG بسیار قدرتمندتر و پیشرفته تر از دیروز می شوند، ولی نکته جالب اینجاست که سطح توقع ما هم از لحاظ کیفیت و پیچیدگی از کارهای Animation و Visual Effects نیز بیشتر می شود. دوستانی که در این صنعت قدیمی تر هستند، حتما به این مساله توجه کرده اند که اگر برای Render یک Frame از کار در 20 سال پیش حدود 5 تا 30 دقیقه زمان نیازداشتیم، امروز هم با پیشرفت تکنولوژی، باز هم برای Render یک Frame متوسط بین 5 تا 30 دقیقه زمان نیاز است، در صورتیکه Hardwareهای امروزی شاید 100 برابر از Hardwareهای 20 سال پیش قویتر شده اند! دلیلش همین سطح توقع و بالا بردن کیفیت می باشد، اگر سیستم خیلی قویتری داشته باشیم، به دنبال آن قدرت ریسک بیشتری داریم و دوست داریم از عناصر پیچیده تر در پروژه خود استفاده کنیم.

راه حلهای افزایش سرعت Render Farm

  1. بهینه سازی یا Optimize کردن پروژه (پاک کردن عناصر و اطلاعات اضافی)
  2. سبک کردن پروژه از لحاظ تعداد Objectها، تعداد Polygonها (مثلا استفاده از مدلهای Low Res) 
  3. سبک کردن تنظیمات مربوط به Lighting و Render مثل پائین آوردن Sampling نورها، Anti-Aliasin, Shadows و غیره 
  4. کم کردن ابعاد تصویر نهایی 
  5. استفاده از برخی امکانات موتورهای Render نظیر Bake کردن Photonها، استفاده از Instance ،Proxy و غیره 
  6. استفاده از Hardware قدرتمند برای Render 
  7. استفاده از قابلیت LOD یا Level of Detail 
  8. غیره!

خوب مسلما برخی از روشهای بالا را نمی توان در همه پروژه ها استفاده کرد، مثلا اگر پروژه ای را با جزئیات خیلی بالا بخواهید بسازید، دیگر نمی توانید تعداد Polygonهای مدلها را کم کنید و یا اگر قرار است خروجی شما Full HD باشد، دیگر نمی توانید ابعاد تصویر را تغییر دهید، بنابراین شاید تنها راه حل استفاده از Hardwareهای قدرتمند باشد. اما تهیه و استفاده از Hardware قدرتمند نیازمند پرداخت هزینه بسیار زیادی می باشد، همچنین حتی با پیشرفت علم و وارد بازار شدن Hardwareهای بسیار قدرتمندی که شاید ویژگیها و سرعت آنها قبلا یک آرزو بوده، باز هم Render کردن پروژه ها زمان بسیار زیادی را لازم دارد. اینجاست که پای Render Farm وسط می آید. همانطور که از اسمش پیداست، Render Farm یک مزرعه است، فقط به جای اینکه در آن تعداد زیادی گندم وجود داشته باشد، تعداد زیادی سیستم کامپیوتر وجود دارد. به هریک از این کامپیوترهای داخل Render Farm یک Node می گویند.

یک سیستم Render Farm متشکل از صدها یا بلکه هزاران سیستم کامپیوتر است که همه آنها وظیفه دارند تا یک پروژه Animation را Render کنند. بنابراین با کمک Render Farm نیازی نیست تا یک Supercompute داشته باشیم که زمان Render پروژه را دهها برابر سریعتر کند، می توان با استفاده از چندین سیستم کامپیوتر معمولی و نسبتا ارزان، یک سیستم Render Farm پیاده سازی کرد تا با کمک آن بتوان سرعت Render را بالا برد. در مثال قبل اگر بخواهیم از Render Farm برای Render پروژه استفاده بکنیم، در صورتیکه این Render Farm دارای 120 عدد Node باشد، کل پروژه تنها ظرف 1 روز Render می شود. بنابراین Render Farm یک بخش جدانشدنی در پروژه های Animation و Visual Effects بزرگ می باشند. خوشبختانه در جهان تعدادی شرکت وجود دارند که سیستم Render Farm را اجاره می دهند و شما می توانید پروژه های سنگین خود را از طریق این شرکتها در کوتاه ترین زمان ممکن Render کنید. معمولا شرکتهایی که Render Farm اجاره می دهند، هزینه را به ازاء هر Frame یا ثانیه محاسبه می کنند. بعنوان مثال شرکت: https://superrendersfarm.com و یا این 6 شرکت دیگر: https://www.reviewsxp.com/blog/best-cloud-render-farms

پردازش Parallel در Render Farm 

در سیستم Render Farm پردازش و Render Frameها به صورت Parallel یا موازی انجام می شود، منظور این است که چندین Frame پروژه همزمان با هم، توسط چندین سیستم کامپیوتر Render می شوند، البته این امکان هم وجود دارد تا تنها یک Frame از پروژه را به صورت Parallel توسط چندین کامپیوتر  CPU Renderکرد.

نحوه تقسیم پروسه Rendering در Render Farm 

معمولا به دو روش این عملیات تقسیم سازی انجام می شود:

1- تقسیم Render به هر یک از Nodeها به ازاء هر Frame، در این روش هر Frame (یا چند Frame) از پروژه روی یک Node منحصر به فرد انجام می شود.

2- روش Distribution تقسیم یک Frame از پروژه روی چندین Node، در این روش یک Frame از کار همزمان توسط چندین Node یا کامپیوتر Render می شود، معمولا از این روش برای Render پلانهایی استفاده می شود که Render هر Frame از آن نیاز به مدت زمان بسیار زیادی دارد، همچنین در هنگام ساخت پروژه، اشخاص Render کار و نورپرداز، برای اینکه خیلی سریع می خواهند نتیجه کار خود را ببینند و مشکلات آن را پیدا بکنند، از این روش استفاده می کنند.

نحوه عملکرد روش Distribution 

در این روش یک Frame از پروژه به جای اینکه روی یک سیستم Render شود، روی چندین سیستم Render شده و نتیجه آنها با هم یک تصویر کامل را شکل می دهد. مثلا اگر یک تصویر با ابعاد 4K داشته باشیم که از تعداد زیادی مدل و نور تشکیل شده باشد، ممکن است Render این یک Frame روی یک سیستم متوسط با CPU متوسط حدود 10 ساعت به طول بیانجامد، ولی با این روش می توان برای Render این یک Frame از Hardwareهای چندین سیستم استفاده کرد تا زمان Render Frame مورد نظر را به میزان قابل توجهی کاهش دهیم. در حقیقت این روش چیزی شبیه همان Bucketهای Render می باشند که در مرحله Render می بینید. در واقع Bucketها، مربع های کوچکی هستند که یک Frame کامل را به چندین قسمت تقسیم می کند و هر Threat از CPU یکی از این Bucketها را Render می کند، بنابراین هرچه تعداد Threatهای CPU بیشتر باشد، تعداد Bucketهای بیشتری همزمان با هم تصویر را Render می کنند، حالا فرض کنید به جای استفاده از یک CPU، چندین CPU با هم روی Render یک تصویر با هم کار بکنند.

 

پیکربندی Render Farm 

یک مجموعه Render Farm معمولا از یک سیستم مادر یا Master به همراه تعداد بسیار زیادی سیستمهای دیگر به عنوان Node و یا Slave یا Client تشکیل شده است. وظیفه سیستم Master مدیریت و کنترل سیستمهای Slave یا Nodeهای Render و همچنین محول کردن وظیفه Render به آن سیستمها می باشد. عموما در سیستمهای Slave به دلیل اینکه آنها تنها وظیفه Render کردن را برعهده دارند، از CPU و RAM مناسب استفاده می کنند. در این سیستمها نیازی به GPU قدرتمند و یا حتی Monitor و Keyboard و Mouse نیست و تمام تنظیمات از طریق سیستم مادر انجام شده و از طریق شبکه به Nodeهای Render منتقل می شوند. به سادگی می توان از طریق سیستم Desktop Monitoring  وارد تک تک سیستمهای Node شد و در صورت لزوم تنظیمات مربوطه را انجام داد. بنابراین در کل می توان گفت که شبکه بندی سیستمهای Render Farm را معمولا با یکی از دو روش زیر انجام می دهند. اگر تعداد Nodeها کم است، می توان کامپیوترها به صورت Local و مستقیم (Workgroup) به هم متصل کرد. این روش برای مصارف خانگی که شاید نهایت 2 تا 3 کامپیوتر وجود داشته باشد، مورد استفاده قرار می گیرد. برای مواردی که تعداد بسیار زیادی سیستم کامپیوتر وجود دارند، می توانیم از سیستم شبکه Domain استفاده بکنیم، بدین صورت که یک سیستم به عنوان سیستم اصلی یا Server مشخص می شود و بقیه سیستمهای به عنوان سیستم Client مشخص می شوند. بنابراین نرم افزار اصلی مدیریت Render یا Monitoring باید روی سیستم Server نصب شوند و نرم افزارهای مخصوص عملیات Render یا Client باید روی سایر سیستمها نصب شوند.

استفاده از Render Farm در قالب Cloud Based Rendering 

در راهکارهای Cloud Base یا Cloud Applications، نرم افزارهای مورد نظر مثلا Maya روی سیستم شخصی شما به صورت Local نصب نمی شوند و در حقیقت آنها روی Server کمپانی ارائه دهنده این خدمات نصب می شوند، سپس شما از طریق بستر اینترنت با این نرم افزارها در ارتباط هستید به طوری که فکر می کنید روی سیستم شخصی شما نصب شده اند. از همین قابلیت در Render Farm هم استفاده می کنند، بدین صورت که سیستمهای Render Farm در یک شرکت خاص پیکربندی شده اند و نرم افزارهای مدیریت Render هم روی آنها نصب شده اند، سپس شما از طریق اینترنت از منزل یا محل کار خود می توانید پروژه های خود را روی این سیستمهای Render Farm قرار دهید و با تنظیمات مربوطه روی نرم افزارهای مدیریت Render از طریق اینترنت، عملیات Rendering خود را آغاز کنید.

نرم افزارهای مخصوص مدیریت Render Farm

خوب مسلما اگر برای Render یک پروژه از صدها یا هزاران سیستم مختلف استفاده بشود، مدیریت و برنامه ریزی این سیستمها بسیار حائز اهمیت خواهد بود. حتما باید نرم افزارهایی وجود داشته باشند که این عملیات گسترده Rendering را بین تمامی Nodeهای یک Render Farm کنترل کنند و مراقب باشند تا تمامی پلانهای یک پروژه بزرگ بدون هیچ مشکلی Render شوند. به نرم افزارهایی که پروسه Rendering را روی Render Farm مدیریت و برنامه ریزی می کنند، نرم افزارهای Render Manager یا مدیریت صف (Queue Manager) می گویند. منظور از صف، صفهای Frameها و پلانهایی که باید Render شوند، می باشد.


ویژگیهای یک نرم افزار مدیریت Render 

  1. کدام Frameها توسط کدام سیستمها Render شوند و همچنین از Render کردن تکراری یک Frame خاص توسط چندین سیستم جلوگیری شود.
  2. خروجی Frameهای Render شده در مکانی خاص ریخته شود.
  3. در صورت قطع شدن Renderها به هر دلیلی مثل قطع شدن برق، اطلاعات Frameهای Render شده ذخیره شده تا بعد از رفع مشکل و راه اندازی مجدد سیستمها، ادامه پروسه Rendering از آخرین Frame Render شده به صورت خودکار اتفاق بیافتد.
  4. بررسی اولویت پروژه ها برای Render، پروژه هایی که اولویت بالاتری دارند، اول Render بشوند.
  5. ذخیره اطلاعات Log برای هر Frame Render شده تا در زمانی که سیستم Error می دهد، به وسیله اطلاعات Log  سیستم عیب یابی شود.
  6. امکان ارسال Log و گزارش عملکرد عملیات Render به کاربر در زمانی که کاربر حضور فیزیکی در شرکت ندارد. (مثلا از طریق ارسال E-Mail یا SMS) 
  7. سازگاری با سیستم عاملها، نرم افزارهای 3D و Composite و Engineهای Render رایج.
  8. امکانات تعیین زمانبندی مناسب برای شروع یا اتمام Render پروژه ها. 
  9. پشتیبانی از سیستم پایگاه داده ها یا Database برای ذخیره سازی اطلاعات پروژه نظیر وظایف Nodeها(Jobs) ، گزارشات عملیات Render Log و غیره (به دلیل وجو داشتن حجم بسیار زیاد اطلاعات مانند شماره Frameها ، پلانها، Log ها،Jobها و غیره، وجود Database ضروری است).
  10. پشتیبانی از سیستم Remote Control برای انجام تنظیمات Render Farm از مکانی دیگر. 
  11. امکان استفاده از License نرم افزارها و Engineهای Render روی تمامی Nodeهای Render. 
  12. امنیت و Security بالا.
  13. امکان تعیین Userهای مختلف با سطوح دسترسیهای مختلف روی نرم افزار مدیریت Render.  

این مواردی که ذکر شد، تنها تعدادی از ویژگیها و امکاناتی هستند که در سیستم Render Farm باید از آنها استفاده شود.

نرم افزارهای Render Manager به دو دسته تقسیم می شوند:

  1. نرم افزارهایی که یا مخصوص یک نرم افزار و Engine Render خاص ساخته شده اند یا عموما با یکی سازگاری بیشتری دارند. (مثل HQueue برای Houdini و Tractor برای RenderMan) 
  2. نرم افزارهای جامع که برای تمامی نرم افزارهای 3D و Composite و تمامی Engineهای Render قابل استفاده هستند. (مثل Deadline و Backburner که مخصوص نرم افزارهای شرکت Autodesk می باشد)

بی شک یکی از قویترین و کاملترین نرم افزارهای Render Manager جهان، برنامه Deadline می باشد. این نرم افزار تقریبا تمامی برنامه های 3D و Composite نظیر   Maya, Lightwave, Softimage, Blender, Max, C4D, Houdini, Nuke, Shake, After Effect, Fusion و تمامی Engineهای Render نظیر RenderMan, Arnold, Mental Ray, Maxwell, Vray, Octane و غیره را Support می کند. این نرم افزار علاوه بر ویژگیهایی که اعلام شد، از تعداد بسیار زیادی Featherهای منحصر به فرد دیگر برخوردار است. این نرم افزار مجهز به یک سیستم Database قدرتمند و پرسرعت است تا تمامی اطلاعات Render و همچنین Log را به صورت کامل ذخیره سازی کند. بنابراین با وجود حجم زیاد اطلاعات (مثلا اطلاعات و Log چندین هزار Frame Render شده) هیچگونه خللی در نحوه عملکرد برنامه به وجود نمی آید. نحوه کار کردن با این نرم افزار بسیار ساده است، بعد از نصب این برنامه و پیکر بندی Database و اطلاعات شبکه، کافیست Plugin مخصوص این نرم افزار را روی برنامه خودتان نصب کنید، از این به بعد با فشردن یک دکمه در برنامه، پروژه روی Render Farm رفته و آماده Render می شود.

معمولا برنامه های Render Manager از دو بخش Master یا (Monitor) و Slave یا (Client) تشکیل شده است. برنامه Monitor یا Master روی Server اصلی Render Farm نصب می شود و برنامه Slave باید روی تمامی سیستمهای Node نصب شود. با این ساختار پروژه هایی که باید Render شوند، از طریق Server اصلی و برنامه Monitor وارد برنامه مدیریت Render می شوند و برنامه های Slave موجود در Nodeهای Render، از طریق شبکه کامپیوتری به Server اصلی و برنامه Monitor وصل شده و شروع به Render کردن پروژه می کنند. برنامه Monitor همچنین وظیفه یا Job هر سیستم Node را مشخص می کنند تا هر یک تعداد مشخصی از Frameها را Render کنند. (Job یعنی مشخص کردن اینکه هر یک از سیستمهای Slave باید چه پروژه هایی و چه تعداد Frame هایی را Render کنند) به صورت کلی روش کار برنامه های Render Manager به این صورت است که این نرم افزارهای به برنامه مخصوص Batch Rendering نرم افزار مورد نظر مثل Maya متصل می شوند و از طریق آنها شروع به Rendering می کنند ، بنابراین باید بدانید که خود این برنامه های عملیات Render را انجام نمی دهند، یعنی این برنامه ها Render Engine نیستند، عملیات Render در پشت پرده توسط خود نرم افزارهای 3D و Engineهای Render انجام می شوند و نرم افزار Render Manager تنها نقش Trigger را ایفاء می کنند. استفاده از نرم افزار deadline  تنها مختص به سیستم Render Farm که شامل چندین Node است نمی باشد، شما حتی می توانید از این نرم افزار برای Render پروژه ها، روی سیستم شخصی خود استفاده بکنید. در این صورت دیگر لازم نیست نگران مدیریت Renderهای خود باشید، هر وقت لازم بود می توانید Render را قطع کنید و به انجام سایر کارهای خود روی کامپیوتر بپردازید و در پایان فقط با اجراء کردن یک برنامه، عملیات Render از آخرین Frame انجام شده ادامه می یابد، بدون اینکه نیاز باشد نرم افزار 3D خود را باز کنید و از آخرین Frame Render شده، دوباره پروژه را روی Render بگذارید. حتی می توانید چندین پروژه یا پلان را با انتخاب اولویت Render، روی Deadline تنظیم کنید. می توانید تلفیقی از پروژه های 3D و Composite را برای Render آماده کنید. می توانید از راه دور مثلا محل کار، عملیات Render را روی سیستم شخصی خود کنترل کنید.

عدم نیاز به نصب برنامه های 3D روی تمامی سیستمهای Node 

یک قابلیت جالب در برخی از Engineهای Render این است که این Engineهای Render (مانند Arnold وRenderMan) پروژه ای را که ساخته اید را ابتدا به فرمت استاندارد و مخصوص خود تبدیل می کنند (مثل فرمت Ass در Arnold و فرمت Rib در RenderMan) و سپس این فایل تبدیل شده را Render می کنند. به زبانی دیگر پروژه شما مستقیما Render نمی شود و ابتدا به یک فایل مخصوص تبدیل شده و سپس آن فایل Render می شود. این روش کار یک مزیت بزرگ دارد و آن این است که در هنگام استفاده از Render Farm شما نیازی به نصب نرم افزار 3D مثل Maya روی تمامی سیستمهای Node ندارید و تنها کافیست که Render Engine خود را روی آنها نصب کنید، سپس باید از پروژه 3D خود خروجی فایل مخصوص Render Engine را (مثل Ass یاRib) بگیرید و در نهایت Render Engine نصب شده روی سیستمهای Node مستقیما این فایلها را Render می کنند.

موارد مهم در نرم افزارهای مدیریت یا صف بندی Render

در هنگام استفاده از Render Farm، نیازی نیست که کل پروژه سه بعدی را به همراه تمامی Materialها و Sourceهای آن روی تک تک سیستمها کپی کرد، تنها لازمه که پروژه به صورت کامل روی سیستم اصلی یا Server وجود داشته باشد تا تک تک سیستمهای مربوطه بتوانند از آنجا اطلاعات را بخوانند و Render کنند.

موارد ضروری در کارکرد Render Farm

  1. چون بقیه سیستمها قرار است از طریق شبکه، به فایلهای مربوطه دسترسی داشته باشند، بنابراین لازم که از لحاظ Permission، دسترسی لازم به این اطلاعات را برایشان در نظر گرفت.
  2. کلیه آدرسها مانند آدرس پروژه، پوشه ای که باید خروجی فایلهای Render شده در آن ذخیره شوند و غیره به صورت Local تعیین نشوند، مثلا به جای ریختن خروجی Frameهای Render شده در آدرس D:\3DProjects\Images از آدرس 192.168.1.1/Images/3DProjects استفاده کنید.
  3. در صورت امکان از کارت شبکه های پر سرعت مثل 1Gbps استفاده کنید، این امر می تواند در مواقع خاصی، به میزان چشمگیری سرعت Render شما را بالا ببرد. به این دلیل که در بسیاری از پروژه ها ممکن است حجم بسیار زیادی اطلاعات داشته باشیم که در مرحله Rendering باید خوانده شوند، مثلا فرض کنید پروژه انفجاری را ساخته اید که حجم هر Frame از فایلهای Cache انفجار ساخته شده حدود 1.5GB است، بنابراین Engineهای Render برای Render هر Frame از انفجار، ناچار هستند که حدود 1.5GB اطلاعات را پیوسته از طریق شبکه کامپیوتری بخوانند و Render کنند، مسلما اگر از شبکه های کم سرعت مثل 100Mbps استفاده کنید، سرعت Read و Write اطلاعات کم می شود و اگر این تاخیر را در تعداد Frameهای پروژه ضرب کنید، زمان تاخیر قابل توجهی بدست می آید.
  4. همیشه سعی کنید کل اطلاعات و Materialهای مورد نیاز پروژه نظیر Textureها، فایلهای Cache Reference, Alembic و غیره در داخل پوشه پروژه جاری بریزید و بخوانید، از ذخیره آنها در خارج از پوشه پروژه اجتناب کنید، مثلا اگر با Maya کار می کنید، همه Textureها را در پوشه Source Images پروژه خود کپی کنید، اگر سیستمهای Node به این اطلاعات دسترسی یا Permission لازم را نداشته باشند، این اطلاعات در مرحله Render مورد استفاده قرار نمی گیرند. بنابراین اگر پروژه ای را Render کردید و متوجه شدید که در یکسری از Frameها و Textureها Load نشده اند، به احتمال زیاد، سیستمهایی که این Frameها را Render کرده اند، امکان دسترسی به این Textureها را نداشته اند. اگر از نرم افزار Houdini استفاده می کنید، می توانید به جای ساخت پروژه، آدرس تمامی فایلها را به جای Absolute، به صورت Relative نیز تعریف کنید.
  5. در صورت امکان تمامی سیستمهای Node موجود در Render Farm را با یک Hardware مشابه (از لحاظ RAM و CPU) ببندید، اگر این امکان وجود نداشت، حداقل سعی کنید که CPUهای سیستمهای Node از لحاظ معماری با هم مشابهت داشته باشند، مثلا همه آنها یا Intel باشند یا AMD. شاید عجیب به نظر برسد ولی گفته شده است که معماریهای مختلف پردازنده ها می توانند سبب تغییرات جزئی در تصاویر Render شده بشوند که این امر باعث ایجاد تغییرات اندکی در Frameهایی که توسط پردازنده های مختلف Render شده اند، شود.

استفاده از Render Farm برای Dynamic Simulations 

اگرچه عموما از Render Farm برای عملیات Rendering استفاده می کنند، ولی این تنها مورد استفاده از Render Farm نیست، همانطور که گفته شده سیستم Render Farm متشکل از چندین سیستم کامپیوتر است، بنابراین می توان از این سیستمها برای پردازش موازی برخی از شبیه سازیهای داینامیکی نظیر پردازش مایعات یا Flip Simulations استفاده کرد. چرا که محاسبات داینامیکی و فیزیکی نیز مانند عملیات Rendering یکی از سنگینترین مراحل پردازشی در Animation و به خصوص Visual Effects می باشد، در بین عناصر داینامیکی مختلف مانند Particle Systems, Rigid/Soft Bodies، شبیه سازیهای سیالات (گازی و مایع) یکی از سنگینترین و پیچیده ترین محاسبات محسوب می شود. مثلا فرض کنید که با سیستم Flip قرار است حرکت یک آبشار را که متشکل از میلیونها Particle است را شبیه سازی کنید، در اینصورت هم به RAM بسیار زیادی نیاز دارید و هم به CPU بسیار قدرتمند، اما با کمک سیستم تقسیم پردازش موازی یا Distribution می توانید محاسبات شبیه سازی را همزمان روی چندین سیستم انجام دهید. البته تقسیم محاسبات داینامیکی برای همه عناصر داینامیکی و همچنین در همه نرم افزارهای 3D امکانپذیر نیست. یکی از نرم افزارهایی که از این امکان بهترین بهره را می برد و پیشرو در این تکنولوژی است، نرم افزار Houdini می باشد. در فیلم زیر یک نمونه پروژه را می بینید که حدود 1 بیلیون Particle را در برنامه Houdini بصورت Flip Simulation پردازش کرده اند، با اینکه تعداد ذرات بسیار زیاد است، ولی با کمک سیستم Distribution توانسته اند این پردازش را تنها در طی 3 روز انجام دهند.

 

روش تقسیم محاسبات در Houdini چیزی شبیه عملیات Render است، به این صورت که کل Particleها که قرار است پردازش شوند به چندین بخش تقسیم (Slicing) می شوند و هر بخش از آن توسط یک سیستم Node به صورت Parallel پردازش می شود و نتیجه همه آنها با هم جمع می شوند.

برچسب ها: CG, Frame Rate, Object, Polygon, Low Res, Sampling, Anti Aliasing, Shadows, Photon, Node, CPU Render, 4K, Threat, Cloud Based Rendering, Cloud Applications, Local, Render Manager, Queue Manager, 3D, Composite, Engine, Remote Control, Security, HQueue, Houdini, Tractor, RenderMan, Deadline, Backburner, Autodesk, Max, Blender, Softimage, Lightwave, Fusion, After Effect, Shake, Nuke, C4D, Octane, Vray, Maxwell, Mental Ray, Arnold