رندر فارم یا Render Farm چیست ؟ مزیت استفاده از Render farm ، روش افزایش سرعت رندرفارم ، بهینه سازی Render farm پردازش موازی در رندرفارم ، پیکربندی Render Farm ، نرم افزارهای مخصوص رندرفارم ، استفاده از Render Farm برای Dynamic Simulations عناوین این مطلب هست که از زبان سجاد ربیعی خواهیم داشت .
آشنایی با Render Farm
در این مقاله قصد دارم دوستان علاقه مند به انیمیشن را با سیستم های رندرفارم یا Render Farm آشنا بکنم. همانطور که خود میدانید مرحله رندرینگ یکی از سنگین ترین و زمان بر ترین مراحل تولید یک پروژه انیمیشن و جلوه های ویژه میباشد. به این دلیل که در این مرحله محاسبات بسیار زیاد و سنگین نورپردازی و متریال باید توسط کامپیوتر انجام شود. در بسیاری از پروژه های بزرگ ممکن است رندر هر فریم از پروژه روزها به طول بیانجامد ! فرض کنید که 2 دقیقه کار ساختید و میخواهید آن را با فریم ریت 24 رندر کنید. به دلیل استفاده از مدلهای بسیار زیاد و متریالها و نورهای پیچیده ، رندر هر فریم از پروژه شما 1 ساعت طول میکشد. بنابراین شما با یک سیستم معمولی در یک روز کامل تنها میتوانید 1 ثانیه از کار را رندر کنید و برای رندر کل پروژه به 120 روز یا 4 ماه زمان نیاز دارید ! خوب اگر بخواهید یک پروژه سینمایی که 90 دقیقه است را رندر کنید احتمالا تنها نوادگان شما میتوانند نتیجه کار شما را ببینند ! اگرچه روز به روز سخت افزارهای کامپیوتری بسیار قدرتمند تر و پیشرفته تر از دیروز میشوند ، ولی نکته جالب اینجاست که سطح توقع ما هم از لحاظ کیفیت و پیچیدگی از کارهای انیمیشن و جلوه های ویژه نیز بیشتر میشود ، دوستانی که در این صنعت قدیمی تر هستند حتما به این مساله توجه کرده اند که اگر برای رندر یک فریم از کار در 10 سال پیش حدود 5 تا 30 دقیقه زمان نیازداشتیم ، امروز هم با پیشرفت تکنولوژی ، باز هم برای رندر یک فریم متوسط بین 5 تا 30 دقیقه زمان نیاز است ، در صورتی که سخت افزارهای امروزی شاید صد برابر از سخت افزارهای 10 سال پیش قویتر شده اند ! دلیلش همین سطح توقع و بالا بردن کیفیت میباشد ، اگر سیستم خیلی قویتری داشته باشیم ، به دنبال آن قدرت ریسک بیشتری داریم و دوست داریم از عناصر پیچیده تر در پروژه خود استفاده بکنیم !
راه حل افزایش سرعت رندرفارم
1. بهینه سازی یا Optimize کردن پروژه (پاک کردن عناصر و اطلاعات اضافی ) 2. سبک کردن پروژه از لحاظ تعداد آبجکت ها ، تعداد Polygon ها (مثلا استفاده از مدل های Low Res) 3. سبک کردن تنظیمات مربوط به نورپردازی و رندر مثل پایین آوردن Sampling نورها ، Anti Alisasing ، سایه ها و غیره 4. کم کردن ابعاد تصویر نهایی 5. استفاده از برخی امکانات موتورهای رندر نظیر Bake کردن Photon ها ، استفاده از Instance ، Proxy و غیره 6. استفاده از سخت افزار قدرتمند برای رندر 7. استفاده از قابلیت LOD یا Level of Detail 8. غیره ! خوب مسلما برخی از روش های بالا را نمیتوان در همه پروژه ها استفاده کرد ، مثلا اگر پروژه ای را با جزییات خیلی بالا بخواهید بسازید ، دیگر نمیتوانید تعداد Polygon های مدلها را کم کنید ، و یا اگر قرار است خروجی شما Full HD باشد ، دیگر نمیتوانید ابعاد تصویر را تغییر دهید ، بنابراین شاید تنها راه حل استفاده از سخت افزارهای قدرتمند باشد. اما تهیه و استفاده از سخت افزار قدرتمند نیازمند پرداخت هزینه بسیار زیادی می باشد ، همچنین حتی با پیشرفت علم و وارد بازار شدن سخت افزارهای بسیار قدرتمندی که شاید ویژگی ها و سرعت آنها قبلا یک آرزو بوده ، باز هم رندر کردن پروژه ها زمان بسیار زیادی را لازم دارد. اینجاست که پای رندر فارم (Render Farm) وسط می آید ، همانطور که از اسمش پیداست ، رندر فارم یک مزرعه است ، فقط به جای اینکه در آن تعداد زیادی گندم وجود داشته باشد ، تعداد زیادی سیستم کامپیوتر وجود دارد.به هریک از این کامپیوتر های داخل رندر فارم یک Node میگویند. یک سیستم رندر فارم متشکل از صدها یا بلکه هزاران سیستم کامپیوتر است که همه آنها وظیفه دارند تا یک پروژه انیمیشن را رندر کنند.
بنابراین با کمک RenderFarm نیازی نیست تا یک ابرکامپیوتر داشته باشیم که زمان رندر پروژه را دهها برابر سریعتر کند ، میتوان با استفاده از چندین سیستم کامپیوتر معمولی و نسبتا ارزان ، یک سیستم RenderFarm پیاده سازی کرد تا با کمک آن بتوان سرعت رندر را بالا برد. در مثال قبل اگر بخواهیم از رندر فارم برای رندر پروژه استفاده بکنیم ، در صورتی که این رندر فارم دارای 120 عدد Node باشد ، کل پروژه تنها ظرف یک روز رندر میشود !!! بنابراین رندر فارم یک بخش جدانشدنی در پروژه های انیمیشن و جلوه های ویژه بزرگ میباشند. خوشبختانه در ایران هم تعدادی شرکت وجود دارند که سیستم رندر فارم را اجاره میدهند و شما میتوانید پروژه های سنگین خود را از طریق این شرکت ها در کوتاه ترین زمان ممکن رندر کنید. معمولا شرکت هایی که رندر فارم اجاره میدهند ، هزینه را به ازای هر فریم محاسبه می کنند.
پردازش موازی در رندرفارم
در سیستم رندر فارم پردازش و رندر فریم ها به صورت Parallel یا موازی انجام میشود ، منظور این است که چندین فریم پروژه همزمان با هم ، توسط چندین سیستم کامپیوتر رندر میشوند ، البته این امکان هم وجود دارد تا تنها یک فریم از پروژه را به صورت موازی توسط چندین کامپیوتر و CPU رندر کرد که بعدا توضیح خواهم داد.
نحوه تقسیم پروسه رندرینگ در رندر فارم
معمولا به دو روش این عملیات تقسیم سازی انجام میشود : 1. تقسیم رندر به هر یک از Node ها به ازای هر فریم ، در این روش هر فریم (یا چند فریم) از پروژه روی یک Node منحصر به فرد انجام میشود. 2. (روش Distribution ) تقسیم یک فریم از پروژه روی چندین Node ، در این روش یک فریم از کار همزمان توسط چندین Node یا کامپیوتر رندر میشود ، معمولا از این روش برای رندر پلانهایی استفاده میشود که رندر هر فریم از آن نیاز به مدت زمان بسیار زیادی دارد ، همچنین در هنگام ساخت پروژه ، اشخاص رندر کار و نورپرداز ، برای اینکه خیلی سریع میخواهند نتیجه کار خود را ببینند و مشکلات آن را پیدا بکنند ، از این روش استفاده میکنند.
نحوه عملکرد روش Distribution
در این روش یک فریم از پروژه به جای اینکه روی یک سیستم رندر شود ، روی چندین سیستم رندر شده و نتیجه آنها باهم یک تصویر کامل را شکل میدهد. مثلا اگر یک تصویر با ابعاد 4K داشته باشیم که از تعداد زیادی مدل و نور تشکیل شده باشد ، ممکن است رندر این یک فریم روی یک سیستم متوسط با CPU متوسط حدود 10 ساعت به طول بیانجامد ، ولی با این روش میتوان برای رندر این یک فریم از سخت افزارهای چندین سیستم استفاده کرد تا زمان رندر فریم مورد نظر را به میزان قابل توجهی کاهش دهیم. در حقیقت این روش چیزی شبیه همان باکت های (Bucket) رندر میباشند که در مرحله رندر میبینید ، باکت های مربع های کوچکی هستند که یک فریم کامل را به چندین قسمت تقسیم میکند و هر Threat از CPU یکی از این باکت ها را رندر میکند، بنابراین هرچه تعداد Threat های CPU بیشتر باشد ، تعداد باکت های بیشتری همزمان با هم تصویر را رندر میکنند ، حالا فرض کنید به جای استفاده از یک CPU ، چندین CPU با هم روی رندر یک تصویر با هم کار بکنند.
پیکربندی رندر فارم
یک مجموعه رندر فارم معمولا از یک سیستم مادر یا Master به همراه تعداد بسیار زیادی سیستم های دیگر به عنوان Node و یا Slave (یا Client) تشکیل شده است. وظیفه سیستم Master مدیریت و کنترل سیستم های Slave یا Node های رندر و همچنین محول کردن وظیفه رندر به آن سیستم ها میباشد. عموما در سیستم های Slave به دلیل اینکه آنها تنها وظیفه رندر کردن را برعهده دارند از CPU و RAM مناسب استفاده میکنند ، در این سیستمها نیازی به کارت گرافیک قدرتمند و یا حتی مانیتور و کیبورد نیست ، تمام تنظیمات از طریق سیستم مادر انجام شده و از طریق شبکه به Node های رندر منتقل میشوند. به سادگی میتوان از طریق سیستم Desktop Monitoring وارد تک تک سیستم های Node شد و در صورت لزوم تنظیمات مربوطه را انجام داد. بنابراین درکل میتوان گفت که شبکه بندی سیستم های رندر فارم را معمولا با یکی از دو روش زیر انجام میدهند. اگر تعداد Node ها کم است میتوان کامپیوترها به صورت local و مستقیم (Workgroup) به هم وصل کرد ، این روش برای مصارف خانگی که شاید نهایت 2 تا 3 کامپیوتر وجود داشته باشد مورد استفاده قرار گیرد. برای مواردی که تعداد بسیار زیادی سیستم کامپیوتر وجود دارند میتوانیم از سیستم شبکه Domain استفاده بکنیم ، بدین صورت که یک سیستم به عنوان سیستم اصلی یا Server مشخص میشود و بقیه سیستم های به عنوان سیستم Client مشخص میشوند. بنابراین نرم افزار اصلی مدیریت رندر یا مانیتورینگ باید روی سیستم سرور نصب شوند و نرم افزارهای مخصوص عملیات رندر یا Client باید روی سایر سیستم ها نصب شوند.
استفاده از رندر فارم در قالب Cloud Based Rendering
در راهکارهای Cloud Base یا Cloud Applications نرم افزارهای مورد نظر (مثلا Maya ) روی سیستم شخصی شما به صورت Local نصب نمیشوند و در حقیقت آنها روی سرور کمپانی ارائه دهنده این خدمات نصب میشوند ، سپس شما از طریق بستر اینترنت با این نرم افزارها در ارتباط هستید به طوری که فکر میکنید روی سیستم شخصی شما نصب شده اند ! از همین قابلیت در رندر فارم هم استفاده می کنند ، بدین صورت که سیستم های رندر فارم در یک شرکت خاص پیکربندی شده اند و نرم افزارهای مدیریت رندر هم روی آنها نصب شده اند ، سپس شما از طریق اینترنت از منزل یا محل کار خود میتوانید پروژه های خود را روی این سیستمهای رندرفارم قرار دهید و با تنظیمات مربوطه روی نرم افزارهای مدیریت رندر از طریق اینترنت ، عملیات رندرینگ خود را آغاز کنید.
نرم افزارهای مخصوص Render Farm (نرم افزارهای مدیریت رندر )
خوب مسلما اگر برای رندر یک پروژه از صدها یا هزاران سیستم مختلف استفاده بشود ، مدیریت و برنامه ریزی این سیستمها بسیار حائز اهمیت خواهد بود. حتما باید نرم افزارهایی وجود داشته باشند که این عملیات گسترده رندرینگ را بین تمامی Node های یک رندر فارم کنترل کنند و مراقب باشند تا تمامی پلانهای یک پروژه بزرگ بدون هیچ مشکلی رندر شوند. به نرم افزارهایی که پروسه رندرینگ را روی رندر فارم مدیریت و برنامه ریزی میکنند ، نرم افزارهای مدیریت رندر (Render Manager) یا مدیریت صف (Queue Manager ) میگویند. منظور از صف ، صف های فریم ها و پلانهایی که باید رندر شوند میباشد.
ویژگی های یک نرم افزار مدیریت رندر
1. کدام فریم ها توسط کدام سیستمها رندر شوند و همچنین از رندر کردن تکراری یک فریم خاص توسط چندین سیستم جلوگیری شود. 2. خروجی فریم های رندر شده در مکانی خاص ریخته شود. 3. در صورت قطع شدن رندر ها به هر دلیلی (مثل قطع شدن برق ) ، اطلاعات فریم های رندر شده ذخیره شده تا بعد از رفع مشکل و راه اندازی مجدد سیستم ها ، ادامه پروسه رندرینگ از آخرین فریم رندر شده به صورت خودکار اتفاق بیافتد. 4. بررسی اولویت پروژه ها برای رندر ، پروژه هایی که اولویت بالاتری دارند اول رندر بشوند. 5. ذخیره اطلاعات Log برای هر فریم رندر شده تا در زمانی که سیستم Error میدهد ، به وسیله اطلاعات Log سیستم عیب یابی شود. 6. امکان ارسال Log و گزارش عملکرد عملیات رندر به کاربر در زمانی که کاربر حضور فیزیکی در شرکت ندارد (مثلا از طریق ارسال ایمیل یا اس ام اس ) 7. سازگاری با سیستم عاملها ، نرم افزارهای سه بعدی و کامپوزیت و موتور های رندر رایج 8. امکانات تعیین زمانبندی مناسب برای شروع یا اتمام رندر پروژه ها 9. پشتیبانی از سیستم پایگاه داده ها یا DataBase برای ذخیره سازی اطلاعات پروژه نظیر وظایف Node ها (Jobs) ، گزارشات عملیات رندر (Log) و غیره (به دلیل وجو داشتن حجم بسیار زیاد اطلاعات مانند شماره فریم ها ، پلانها ، Log ها ، Job ها و غیره ، وجود دیتابیس ضروری است ) 10. پشتیبانی از سیستم Remote Control برای انجام تنظیمات رندر فارم از مکانی دیگر 11. امکان استفاده از Licence نرم افزارها و موتور های رندر روی تمامی Node های رندر 12. امنیت و Security بالا 13. امکان تعیین User های مختلف با سطوح دسترسی های مختلف روی نرم افزار مدیریت رندر خوب این مواردی که ذکر کردم تنها تعدادی از ویژگی ها و امکاناتی هستند که در سیستم Render Farm باید از آنها استفاده شود.
نرم افزار های مدیریت رندر به دو دسته تقسیم میشوند
1. نرم افزارهایی که یا مخصوص یک نرم افزار و موتور رندر خاص ساخته شده اند یا عموما با یکی سازگاری بیشتری دارند.(مثل HQueue برای Houdini و Tractor برای RenderMan ) 2. نرم افزارهای جامع که برای تمامی نرم افزار های سه بعدی و کامپوزیت و تمامی موتور های رندر قابل استفاده هستند.(مثل Deadline و Backburner که مخصوص نرم افزار های شرکت Autodesk میباشد.)
بی شک یکی از قویترین و کاملترین نرم افزارهای مدیریت رندر جهان ، برنامه Deadline می باشد. این نرم افزار تقریبا تمامی برنامه های سه بعدی و کامپوزیت نظیر Maya ، Max ، Lightwave ، Softimage ، Blender ، C4D ، Houdini ، Nuke ، Shake ، After Effect ، Fusion و تمامی موتور های رندر نظیر RenderMan ، Arnold ، Mental Ray ، Maxwell ، Vray ، Octane و غیره را ساپورت میکند. این نرم افزار علاوه بر ویژگی هایی که قبلا گفتم ، از تعداد بسیار زیادی ویژگی های منحصر به فرد دیگر برخوردار است. این نرم افزار مجهز به یک سیستم دیتا بیس (Data Base) قدرتمند و پرسرعت است تا تمامی اطلاعات رندر و همچنین Log را به صورت کامل ذخیره سازی کند.بنابراین با وجود حجم زیاد اطلاعات (مثلا اطلاعات و Log چندین هزار فریم رندر شده) هیچ گونه خللی در نحوه عملکرد برنامه به وجود نمی آید . نحوه کار کردن با این نرم افزار بسیار ساده است ، بعد از نصب این برنامه و پیکر بندی Data Base و اطلاعات شبکه ، کافیست پلاگین مخصوص این نرم افزار را روی برنامه حودتون نصب کنید ، از این به بعد با فشردن یک دکمه در برنامه خودتون ، پروژه روی رندر فارم رفته و آماده رندر میشود. معمولا برنامه های مدیریت رندر از دو بخش Master (یا Monitor) و Slave (یا Client) تشکیل شده است.برنامه Monitor یا Master روی سرور اصلی رندر فارم نصب میشود و برنامه Slave باید روی تمامی سیستم های Node نصب شود.با این ساختار پروژه هایی که باید رندر شوند از طریق سرور اصلی و برنامه Monitor وارد برنامه مدیریت رندر میشوند و برنامه های Slave موجود در Node های رندر ، از طریق شبکه کامپیوتری به سرور اصلی و برنامه Monitor وصل شده و شروع به رندر کردن پروژه میکنند. برنامه مانیتور همچنین وظیفه یا Job هر سیستم Node را مشخص میکنند تا هر یک تعداد مشخصی از فریم ها را رندر کنند. (Job : یعنی مشخص کردن این که هر یک از سیستم های Slave باید چه پروژه هایی و چه تعداد فریم هایی را رندر کنند ) به صورت کلی روش کار برنامه های مدیریت رندر به این صورت است که این نرم افزار های به برنامه مخصوص Batch Rendering نرم افزار مورد نطر مثل Maya وصل میشوند و از طریق آنها شروع به رندر کردن میکنند ، بنابراین باید بدانید که خود این برنامه های عملیات رندر را انجام نمیدهند ، یعنی این برنامه ها موتور رندر نیستند ، عملیات رندر در پشت پرده توسط خود نرم افزارهای سه بعدی و موتور های رندر انجام میشوند و نرم افزار های مدیریت رندر تنها نقش Trigger را ایفا میکنند. استفاده از نرم افزار deadline تنها مختص به سیستم رندر فارم که شامل چندین Node است نمیباشد ، شما حتی میتوانید از این نرم افزار برای رندر پروژه ها ، روی سیستم شخصی خود استفاده بکنید. در این صورت دیگر لازم نیست نگران مدیریت رندر های خود باشید ، هر وقت لازم بود میتوانید رندر را قطع کنید و به انجام سایر کارهای خود روی کامپیوتر بپردازید و در پایان فقط با اجرا کردن یک برنامه، عملیات رندر از آخرین فریم انجام شده ادامه می یابد ، بدون اینکه نیاز باشد نرم افزار سه بعدی خود را باز کنید و از آخرین فریم رندر شده ، دوباره پروژه را روی رندر بگذارید . حتی میتوانید چندین پروژه یا پلان را با انتخاب اولویت رندر ، روی Deadline تنظیم کنید. میتوانید تلفیقی از پروژه های سه بعدی و کامپوزیت را برای رندر آماده کنید. میتوانید از راه دور (مثلا محل کار ) از طریق ایمیل یا غیره ، عملیات رندر را روی سیستم شخصی خود کنترل کنید.
عدم نیاز به نصب برنامه های سه بعدی روی تمامی سیستم های Node
یک قابلیت جالب در برخی از موتور های رندر این است که این موتور های رندر (مانند Arnold و RenderMan) پروژه ای را که ساخته اید را ابتدا به فرمت استاندارد و مخصوص خود تبدیل میکنند (مثل فرمت Ass در Arnold و فرمت Rib در RenderMan) و سپس این فایل تبدیل شده را رندر میکنند. به زبانی دیگر پروژه شما مستقیما رندر نمیشود و ابتدا به یک فایل مخصوص تبدیل شده و سپس آن فایل رندر میشود. این روش کار یک مزیت بزرگ دارد و آن این است که در هنگام استفاده از رندر فارم شما نیازی به نصب نرم افزار سه بعدی مثل Maya روی تمامی سیستمهای Node ندارید و تنها کافیست که موتور رندر خود را روی آنها نصب کنید.سپس باید از پروژه سه بعدی خود خروجی فایل مخصوص موتور های رندر را (مثل Ass یا Rib ) بگیرید و در نهایت موتور های رندر نصب شده روی سیستم های Node مستقیما این فایل ها را رندر میکنند.
موارد مهم در نرم افزارهای مدیریت یا صف بندی رندر
در هنگام استفاده از رندر فارم ، نیازی نیست که کل پروژه سه بعدی را به همراه تمامی متریالها و سورسهای آن روی تک تک سیستم ها کپی کرد ، تنها لازمه که پروژه به صورت کامل روی سیستم اصلی یا سرور وجود داشته باشد تا تک تک سیستمهای مربوطه بتوانند از آنجا اطلاعات را بخوانند و رندر کنند.
موارد ضروری در کارکرد RenderFarm
1. چون بقیه سیستم ها قرار است از طریق شبکه ، به فایلهای مربوطه دسترسی داشته باشند ، بنابراین لازم که از لحاظ Permission ، دسترسی لازم به این اطلاعات را برایشان در نظر گرفت.
2. کلیه آدرس ها مانند آدرس پروژه ، پوشه ای که باید خروجی فایلهای رندر شده در آن ریخته شوند و غیره به صورت Local تعیین نشوند ، مثلا به جای ریختن خروجی فریم های رندر شده در آدرس D:\JKProjects\Images از آدرس 192.168.1.1/Images/JKProjects استفاده کنید.
3. در صورت امکان از کارت شبکه های پر سرعت مثل 1Gbps استفاده کنید ، این امر میتواند در مواقع خاصی ، به میزان چشمگیری سرعت رندر شما را بالا ببرد. به این دلیل که در بسیاری از پروژه ها ممکن است حجم بسیار زیادی اطلاعات داشته باشیم که در مرحله رندرینگ باید خوانده شوند ، مثلا فرض کنید پروژه انفجاری را ساخته اید که حجم هر فریم از فایل های Cache انفجار ساخته شده حدود 1.5 گیگابایت است ، بنابراین موتور های رندر برای رندر هر فریم از انفجار ، ناچار هستند که حدود 1.5 گیگابایت اطلاعات را پیوسته از طریق شبکه کامپیوتری بخوانند و رندر کنند ، مسلما اگر از شبکه های کم سرعت مثل 100Mbps استفاده کنید ، سرعت Read و Write اطلاعات کم میشود و اگر این تاخییر را در تعداد فریم های پروژه ضرب کنید ، زمان تاخییر قابل توجهی بدست می آید !
4. همیشه سعی کنید کل اطلاعات و متریال های مورد نیاز پروژه نظیر Texture ها ، فایل های Cache ، فایل های Reference ، فایل های Alembic و غیره در داخل پوشه پروژه جاری بریزید و بخوانید ، از ریختن آنها در خارج از پوشه پروژه اجتناب کنید ، مثلا اگر با Maya کار میکنید ، همه Texture ها را در پوشه sourceimages پروژه خود کپی کنید ، اگر سیستم های Node به این اطلاعات دسترسی یا Permission لازم را نداشته باشند ، این اطلاعات در مرحله رندر مورد استفاده قرار نمیگیرند. بنابراین اگر پروژه ای را رندر کردید و متوجه شدید که در یکسری از فریم ها Texture ها Load نشده اند ، به احتمال زیاد ، سیستم هایی که این فریم ها را رندر کرده اند ، امکان دسترسی به این Texture ها را نداشته اند.
اگر از نرم افزار Houdini استفاده میکنید ، میتوانید به جای ساخت پروژه ، آدرس تمامی فایلها را به جای Absolute ، به صورت Relative نیز تعریف کنید .
5. در صورت امکان تمامی سیستمهای Node موجود در رندر فارم را با یک سخت افزار مشابه (از لحاظ RAM و CPU ) ببندید ، اگر این امکان وجود نداشت ، حداقل سعی کنید که CPU های سیستم های Node از لحاظ معماری با هم مشابهت داشته باشند ، مثلا همه آنها یا Intel باشند یا AMD .شاید عجیب به نظر برسد ولی گفته شده است که معماری های مختلف پردازنده ها میتوانند سبب تغییرات جزئی در تصاویر رندر شده بشوند که این امر باعث ایجاد تغییرات اندکی در فریم هایی که توسط پردازنده های مختلف رندر شده اند شود.
استفاده از Renderfarm برای Dynamic Simulations
اگرچه عموما از Render Farm برای عملیات رندرینگ استفاده میکنند ، ولی این تنها مورد استفاده از رندر فارم نیست ، همانطور که گفته شده سیستم رندر فارم متشکل از چندین سیستم کامپیوتر است ، بنابراین میتوان از این سیستم ها برای پردازش موازی برخی از شبیه سازی های داینامیکی نظیر پردازش مایعات یا Flip Simulations استفاده کرد. چراکه محاسبات داینامیکی و فیزیکی نیز مانند عملیات رندرینگ یکی از سنگین ترین مراحل پردازشی در انیمیشن و به خصوص جلوه های ویژه می باشد ، در بین عناصر داینامیکی مختلف مانند Particle Systems ، Rigid/Soft Bodies ، شبیه سازیهای سیالات (گازی و مایع) یکی از سنگینترین و پیچیده ترین محاسبات محسوب میشود. مثلا فرض کنید که با سیستم Flip قرار است حرکت یک آبشار را که متشکل از میلیونها Particle است را شبیه سازی کنید ، در این صورت هم به Ram بسیار زیادی نیاز دارید و هم به CPU بسیار قدرتمند ، اما با کمک سیستم تقسیم پردازش موازی یا Distribution میتوانید محاسبات شبیه سازی را همزمان روی چندین سیستم انجام دهید . البته تقسیم محاسبات داینامیکی برای همه عناصر داینامیکی و همچنین در همه نرم افزارهای سه بعدی امکان پذیر نیست. یکی از نرم افزارهایی که از این امکان بهترین بهره را میبرد و پیشرو در این تکنولوژی است ، نرم افزار Houdini میباشد ، در فیلم زیر یک نمونه پروژه را میبینید که حدود 1 بیلیون Particle را در برنامه Houdini به صورت Flip Simulation پردازش کرده اند ، با اینکه تعداد ذرات بسیار زیاد است ، ولی با کمک سیستم Distribution توانسته اند این پردازش را تنها در طی 3 روز انجام دهند !
روش تقسیم محاسبات در Houdini چیزی شبیه عملیات رندر است ، به این صورت که کل Particle ها که قرار است پردازش شوند به چندین بخش تقسیم میشوند (Slicing) و هر بخش از آن توسط یک سیستم Node به صورت موازی پردازش میشود و نتیجه همه آنها با هم جمع میشوند.
موفق و پیروز باشید
سجاد ربیعی
32 دیدگاه
مجتبی
ممنونم از مقاله مفید شما آقای ربیعی…
من تازه وارد مبحث انیمیشن سازی شدم و دارم آموزش می بینم.
خیلی مایل بودم بدونم شما چندسال طول کشید تا از صفر به ۱۰۰ برسید
رضا
سلام دوستان
من از ۲تا سیستم برای رندر شبکه (تری دی مکس)استفاده میکنم
ولی حدودا ۴۰ ثانیه تا ۱ دقیقه بعد از اینکه سیستم اصلی شروع به رندر کرد
سیستم دوم(رندرباکس) باکتهاش وارد رندر میشن
از کابل کراس۶ اتصال شبکه دادم
ولی هرکاری کردممشکلم حل نشد
کسی نمیدونه مشکل کجاس
یا کجای کارم اشتباه بوده؟؟
ممنونم
شهاب
تاخیر بین شروع سرور و کلاینت کاملا طبیعیه و قابل حل نیست. شما میتونی با استفاده از نرم افزار های مدیریت رندر طوری گروه فریم رو مدیریت کنی که این اتلاف زمان به حداقل برسه.
sara
سلام آقای ربیعی روزتون بخیر
راستش پروژه ی دانشگاه من یک پردازش موازی هست. که من میخوام طبق توضیحات شما اونو رو یک یک رندر فارم انجامش بدم. من maya رو نصب کردم ولی راستش نمیدونم چجوری باید پلاگین deadline روبه maya اضافه کنم. میشه چند تا سایت آموزشی تو این زمینه هم بهم معرفی کنید؟
ممنون میشم کمک کنید آخه خیلی وقت زیادی ندارم.
ایمان
باسلام وسپاس به استاد ارجمند جناب آقای ربیعی ، خدا رو شکر میکنم که آدمای سخاوتمندی رو مثل شما گذاشته تا مشکلات ما رو برطرف کنه. آرزوی موفقیت برات دارم و منتظر ادامه این انجام هستم.
ایمان
سجاد ربیعی
ممنونم ایمان جان ، شما به بنده لطف دارید 🙂
كامران
با تشكر استاد ربيعي كه تجربياتتون رو در اختيار ما قرار مي دين
ايا امكان اينكه كيسم رو به لپ تاپ متصل كنم براي افزايش سرعت رندر با deadline هست؟
سجاد ربیعی
ممنونم.
برای نرم افزارهای مدیریت رندر ، مهم نیست که سیستم ها یا Node های رندر شما PC هستند یا لپ تاپ ، از دید آنها همه اینها یک سیستم کامپیوتر هستند که شامل RAM ، CPU و کارت گرافیک هستند.بنابراین شما بدون مشکل میتوانید اینکار را بکنید.
فقط بهتر است که نسخه های سیستم عاملی که روی هر دو نصب کردید یکی باشد.
برای استفاده آنها در Deadline کافیه با کابل شبکه هر دو را به صورت Workgroup به هم متصل کنید و IP اختصاصی به هر دو سیستم اختصاص دهید و مطابق توضیحات بالا و Help برنامه Deadline سایر تنظیمات را انجام دهید.
علی اکبر
ممنون لطف کردید
علی اکبر
آقا یکی نیس این جواب ما رو بده من یه سوال کردم یا اره یا نه جوابشه؟
سجاد ربیعی
سلام.
بنده چند روزی مسافرت بودم و نمیتونستم چیزی رو چک کنم ، مسلما شما و سایر دوستان قبول دارید که اگر دوستان جواب سوالات را بدهند در حق بنده و شما لطف کرده اند و کسی هیچ وظیفه ای در قبال پاسخگویی به سوالات ندارد.
در جواب سوال شما باید عرض کنم که متاسفانه بنده تا به حال به این نکته توجه نکرده ام و کسی هم نمیشناسم که از برنامه Deadline برای رندر برنامه های تدوین نظیر premiere و Edius استفاده کرده باشد ، در برنامه Deadline هیچ Preset و پلاگینی برای Premiere و Edius به صورت پیشفرض وجود ندارد ، معمولا از این برنامه برای رندر برنامه های سه بعدی ، کامپوزیت و شبیه سازی های داینامیک و سیالات استفاده میکنند. در هر صورت ممکن است راهی برای اینکار وجود داشته باشد که بنده از آن بی اطلاع باشم ، پیشنهاد میکنم اگر جواب سوال خود را پیدا نکردید در گروه های تدوین یا حتی انیمیشن در فیسبوک سوال کنید یا مستقیما در Forum, مربوط به برنامه Deadline سوال خود را مطرح کنید.
یک برنامه مدیریت رندر قدرتمند دیگر هم خدمتتان معرفی میکنم ، راجب این برنامه هم تحقیق کنید ، انشالا که بتوانید مشکل خود را حل کنید.
به سایت رسمی برنامه مدیریت رندر Render Pal در آدرس زیر سری بزنید :
http://www.renderpal.com/
سروش
ممنون.
علی اکبر
سلام می خواستم ببینم این قضیه رندر فارم فقط برای رندربرنامه های سه بعدی میشه استفاده کرد یا برای برنامه های تدوین مثل Edius و Premiere و … هم میشه استفاده کرد
آخه کار من جوریه باید کلیپ هایی با مدت زمان زیاد درست کنم خیلی مدت بستن فیلم طول میکشه چون از برنامه sinema 4d فایل های زیادی استفاده می کنم.
ممنون
babak
میشه یک نرم افزار در این خصوص برای 3ds max و vray معرفی کنید؟
سجاد ربیعی
دوست عزیز همانطور که در مقاله توضیح داد ، نرم افزار Deadline تنها برای برنامه و موتور رندر خاصی نیست و همه نرم افزارها و موتورهای رندر از جمله Max و VRay را ساپورت میکند ، برنامه RenderPal هم همانند Deadline میتواند همین کار را انجام دهد.
حسین تاجیک
ممنون از شما آقای ربیعی.
مقاله خیلی خوبی بود
سجاد ربیعی
با تشکر از شما دوست گرامی
معین زراعتی
از اینکه وقت گذاشتین تشکر می کنم.
ممنون
نیما
ممنون واقعا عالی بود بیصبرانه منتظر مطالب بعدیتون هستیم.
حیدری
با سلام یک سوالی ایا بهتر نبود به صورت تصویری و عملی توضیح میدادین این مبحث چیزی نیست که با نوشتن حل بش با تشکر
سجاد ربیعی
سلام ، ببخشید من متوجه نشدم دقیقا کدام بخش رو باید تصویری توضیح میدادم ؟
در این مقاله همانطور که مشخصه ، آموزش نور پردازی و رندر ، یا آموزش نرم افزار سه بعدی نیست که نیاز به تصویر داشته باشه تا کارکرد پارامترها را دوستان ببینند ، این مقاله و سایر مقالاتی که من نوشتم یا خواهم نوشت ، در ارتباط با مفاهیم میباشد ، مثلا اگر مقالات سایت FXGuide را مطالعه کرده باشید ، تمامی مقالات عموما نوشتاری میباشد ، مثل مقاله Art of Rendering یا Art of Compositing ، البته در این مقالات بعضا برای تکمیل کردن بحث از فیلم هم استفاده میشود ، ولی اصل مقاله نوشتاری میباشد ، در مقاله من هم شخصا جایی رو نیاز ندانستم که نیاز به تصویر داشته باشه ، اگر جای خاصی رو مدنظر دارید ، بفرمایید تا بنده فیلمی برای آن تهیه کنم.
حیدری
با سلام شما در سایت هم
DEADLINEمراجع کننید چندین فیلم اموزشی گزاشته …این مباحث شما نرم افزاری نیست بلکه کل مطالب شما اگر با فیلم توضیح داده میشد قابل درک تر بود بل فرظ خود بنده و شاید خیلیها کارت شبکه رو شاید اصلا وصل نکردند و یا حتی از نزدیک ندیدند ولی اگرنرم افزار بود طرف میتونست درک درستی از فرامین بگیره این مباحث شما بیشتر بر حصب سخت افزاره و مشخص کردن IP و غیره هست حال داشتن تصاویر تکی یا فیلم میتونست درک درستی رو بده شما که ضحمت کشیدن حداقل از نو ع اتصالات و غیره شرح کامل میدادین ممنون
سجاد ربیعی
بله صحیح میفرمایید ، انشالا اگر فرصت کردم یک فیلم آموزشی در ارتباط با نحوه پیاده سازی شبکه کامپیوتری و استفاده از نرم افزار Deadline تهیه میکنم ، فقط قبول بفرمایید که در این مقاله جایی برای این مورد ها نبود ، چون اولا بنده اسم مقاله را گذاشته بودم : آشنایی با رندر فارم (Renderfarm چیست ؟)، نه آموزش پیاده سازی رندرفارم ، شبکه و نرم افزار Deadline ، ثانیا قبل از هر چیز ، این یک مقاله است (Article) و در بخش مقالات سایت گذاشتم ، عموما مقالات نوشتاری هستند ، نه فیلم آموزشی (Tutorial) ، در هر صورت همانطور که گفتم ، اگر فرصت کنم یک فیلم آموزشی میسازم ، البته نه به عنوان مقاله ، به عنوان فیلم آموزشی به اسم : آموزش پیاده سازی رندر فارم خانگی .
احمد
سلام تشكر از شما مطلب خوب و مفيدي بود
افشین
آموزنده بود ممنون
وحید ولایتی
سلام
ممنون از دانسته هایِ با ارزشی که سخاوتمندانه دراختیار من و دوستان گذاشتین. موفق باشید
حمید رضا طرقی
در ضمن من واقعا خوشحال می شم نظر افراد حرفه ای مثل شما رو بدونم ، والا این سیستم رندر شبکه نرم افزار c4d ما تا الان به همراه یکی از دوستان عزیزم به نام احمد خدابنده خیلی با این سیستم در کار هستیم واقعا فوق العاده ست ! فقط یک مشکل کوچیک داره که اگه رفعش کنن دیگه حرف نداره البته این فقط واسه خود نرم افزار هست یعنی مستقل نیست ، می خواستیم یک ایده و نظر کامل به همراه مشکلات ریز این سیستم تازه اضافه شده به نرم افزار رو به شرکت مکسون بفرستیم ، می خواستم بدونم نظر شما چیه ؟ آیا تا به حال با این سیستم کار کردید اگه مشکل دیگه ای داره بفرمایید ..البته اگه وقت و حوصله داشتید ممنون از لطف شما
حمید رضا طرقی
سلام ممنون از این مطلب خوب … می خواستم نظرتون رو د ر مورد سیستم team render نرم افزار c4d بدونم ؟ گویا چیز جالب و قدرتمندی هست برای خود نرم افزار هست خیلی قابلیت های جالب داره داشتم متن شما رو می خوندم که مطالبی در این مورد پیدا کنم اما ندیدم .. به نظر من که خیلی با این سیستم کار کردم فقط یک مشکل داره که رفع بشه بی نظیر البته این هم باید گفت که نرم افزار مستقل نیست فقط مال c4d هست که همراه با نرم افزار ارائه می شه یعنی از دو ورژن جدید اضافه شده
سجاد ربیعی
سلام.
متاسفانه بنده با برنامه Cinema4D کار نمیکنم ، برخی از نرم افزارهای سه بعدی در داخل خود امکان رندر تحت شبکه و همچنین تقسیم محاسبات رندر توسط چند سیستم را داشتند ، مثل Houdini ، ظاهرا Team Render که شما فرمودید ، همین کار رو در برنامه Cinema4D انجام میدهد. در هر صورت اگر باگی هم داشته باشه زیاد دور از ذهن نیست ، چون این قابلیت به تازگی اضافه شده ، مسلما مدتی زمان میبرد تا همه مشکلات آن را رفع کنند.
سجاد ربیعی
من مستقیما باهاشون کار نکردم ، ولی در پروژه هایی که کار کردم ، از طرف شرکت باهاشون همکاری داشتیم ،ما با شرکت های اوج و صبا کار میکردیم ، فکر کنم شرکت مازستا هم داشته باشه ، چند تا تبلیغ اجاره رندر فارم هم دیده بودم که اسمش یادم نیست ، اگر در اینترنت سرچ بزنید حتما پیدا میکنید.
saeed
اقای ربیعی اسم چند تا شرکت رندر فارم را هم بگبین که ما ازش استفاده کنیم. یکیش ققنوسه که در حال حاضر خدمات نمیده. ایرانی باشه ها
سجاد جعفرزاده
سلام
من جعفرزاده هستم از استودیوی انیمیشن سیمرغ
دوستان عزیز هر کسی بخواد می تونه از رندرفارم ما استفاده کنه.
09126838471 – 88827745
4 تا رک داریم
1214 گیگاهرتز توی هر رک
هر رک 33 سرور 16 هسته ای 2.3 ‘گیگاهرتزی AMD
شنبه تا 4 شنبه 9 صبح تا 3 بعد از شهر فایل دریافت و تحویل می شود.
انجام عملیات رندرینگ 24 ساعته است.
راستی اگر سوالی هم بود به اندازه سواد و تجربه 7 ساله در خدمات رندرینگ در خدمتم .
🙂