RenderFarm چیست؟
مرحله رندرینگ یکی از سنگینترین و زمان برترین مراحل تولید یک پروژه انیمیشن و جلوههای ویژه است. به این دلیل که در این مرحله محاسبات بسیار زیاد و سنگین نورپردازی و متریال باید توسط کامپیوتر انجام شود. در بسیاری از پروژههای بزرگ ممکن است رندر هر فریم از پروژه روزها به طول بیانجامد. فرض کنید که 2 دقیقه کار ساختید و میخواهید آن را با فریم ریت 24 رندر کنید. به دلیل استفاده از مدلهای بسیار زیاد و متریالها و نورهای پیچیده، رندر هر فریم از پروژه شما 1 ساعت طول میکشد. بنابراین شما با یک سیستم معمولی در یک روز کامل تنها میتوانید 1 ثانیه از کار را رندر کنید و برای رندر کل پروژه به 120 روز یا 4 ماه زمان نیاز دارید!
RenderFarm چیست؟
- راه حل افزایش سرعت رندرفارم.
- بهینه سازی یا Optimize کردن پروژه.
- سبک کردن پروژه از لحاظ تعداد آبجکتها.
- سبک کردن تنظیمات مربوط به نورپردازی و رندر.
- کم کردن ابعاد تصویر نهایی.
- استفاده از برخی امکانات موتورهای رندر نظیر Bake کردن Photonها.
- استفاده از سختافزار قدرتمند برای رندر.
- استفاده از قابلیت LOD یا Level of Detail.
اهمیت رندرفارم در چیست؟
مسلما برخی از روشهای بالا را نمیتوان در همه پروژهها استفاده کرد، مثلا اگر پروژهای را با جزییات خیلی بالا بخواهید بسازید، دیگر نمیتوانید تعداد Polygonهای مدلها را کم کنید و یا اگر قرار است خروجی شما Full HD شود، دیگر نمیتوانید ابعاد تصویر را تغییر دهید، بنابراین شاید تنها راه حل استفاده از سختافزارهای قدرتمند است. این در حالی است که تهیه و استفاده از سختافزار قدرتمند نیازمند پرداخت هزینه بسیار زیادی است، همچنین حتی با پیشرفت علم و وارد بازار شدن سختافزارهای بسیار قدرتمندی که شاید ویژگیها و سرعت آنها قبلا یک آرزو بوده، باز هم رندر کردن پروژهها زمان بسیار زیادی را لازم دارد. اینجاست که پای رندر فارم (Render Farm) وسط میآید، همانطور که از اسمش پیداست، رندر فارم یک مزرعه است، فقط به جای اینکه در آن تعداد زیادی گندم وجود دارد، تعداد زیادی سیستم کامپیوتر وجود دارد! به هریک از این کامپیوترهای داخل رندر فارم یک Node میگویند. یک سیستم رندر فارم متشکل از صدها یا بلکه هزاران سیستم کامپیوتر است که همه آنها وظیفه دارند تا یک پروژه انیمیشن را رندر کنند. با کمک RenderFarm نیازی نیست تا یک ابر کامپیوتر در اختیار بگیریم که زمان رندر پروژه را دهها برابر سریعتر کند، میتوان با استفاده از چندین سیستم کامپیوتر معمولی و نسبتا ارزان، یک سیستم RenderFarm پیادهسازی کرد تا با کمک آن بتوان سرعت رندر را بالا برد. رندر فارم یک بخش جدانشدنی در پروژههای انیمیشن و جلوههای ویژه بزرگ هستند. خوشبختانه در ایران هم تعدادی شرکت وجود دارند که سیستم رندر فارم را اجاره میدهند و شما میتوانید پروژههای سنگین خود را از طریق این شرکتها در کوتاهترین زمان ممکن رندر کنید.
پردازش موازی در رندرفارم
در سیستم رندر فارم پردازش و رندر فریمها به صورت Parallel یا موازی انجام میشود، منظور این است که چندین فریم پروژه همزمان با هم، توسط چندین سیستم کامپیوتر رندر میشوند، البته این امکان هم وجود دارد تا تنها یک فریم از پروژه را به صورت موازی توسط چندین کامپیوتر و CPU رندر کرد که بعدا توضیح خواهم داد.
نحوه تقسیم پروسه رندرینگ در رندر فارم
معمولا به دو روش این عملیات تقسیم سازی انجام میشود:
- تقسیم رندر به هر یک از Nodeها به ازای هر فریم: در این روش هر فریم (یا چند فریم) از پروژه روی یک Node منحصر به فرد انجام میشود.
- روش تقسیم یک فریم از پروژه روی چندین Node: در این روش یک فریم از کار همزمان توسط چندین Node یا کامپیوتر رندر میشود، معمولا از این روش برای رندر پلانهایی استفاده میشود که رندر هر فریم از آن نیاز به مدت زمان بسیار زیادی دارد، همچنین در هنگام ساخت پروژه، اشخاص رندر کار و نورپرداز، برای اینکه خیلی سریع میخواهند نتیجه کار خود را ببینند و مشکلات آن را پیدا کنند، از این روش استفاده میکنند.
نحوه عملکرد روش Distribution
در این روش یک فریم از پروژه به جای اینکه روی یک سیستم رندر شود، روی چندین سیستم رندر شده و نتیجه آنها باهم یک تصویر کامل را شکل میدهد. مثلا اگر یک تصویر با ابعاد 4K وجود دارد که از تعداد زیادی مدل و نور تشکیل شده است، ممکن است رندر این یک فریم روی یک سیستم متوسط با CPU متوسط حدود 10 ساعت به طول بیانجامد، ولی با این روش میتوان برای رندر این یک فریم از سختافزارهای چندین سیستم استفاده کرد تا زمان رندر فریم مورد نظر را به میزان قابل توجهی کاهش دهیم. در حقیقت این روش چیزی شبیه همان باکتهای (Bucket) رندر هستند که در مرحله رندر میبینید، باکتهای مربعهای کوچکی هستند که یک فریم کامل را به چندین قسمت تقسیم میکند و هر Threat از CPU یکی از این باکتها را رندر میکند، بنابراین هرچه تعداد Threatهای CPU بیشتر شود، تعداد باکتهای بیشتری همزمان با هم تصویر را رندر میکنند، حالا فرض کنید به جای استفاده از یک CPU، چندین CPU با هم روی رندر یک تصویر با هم کار بکنند.
استفاده از رندر فارم در قالب Cloud Based Rendering
در راهکارهای Cloud Base یا Cloud Applications نرمافزارهای مورد نظر روی سیستم شخصی شما به صورت Local نصب نمیشوند و در حقیقت آنها روی سرور کمپانی ارائه دهنده این خدمات نصب میشوند، سپس شما از طریق بستر اینترنت با این نرمافزارها در ارتباط هستید به طوری که فکر میکنید روی سیستم شخصی شما نصب شدهاند. از همین قابلیت در رندر فارم هم استفاده میکنند، بدین صورت که سیستمهای رندر فارم در یک شرکت خاص پیکربندی شده اند و نرمافزارهای مدیریت رندر هم روی آنها نصب شده اند، سپس شما از طریق اینترنت از منزل یا محل کار خود میتوانید پروژههای خود را روی این سیستمهای رندرفارم قرار دهید و با تنظیمات مربوطه روی نرمافزارهای مدیریت رندر از طریق اینترنت، عملیات رندرینگ خود را آغاز کنید.
نرمافزارهای مخصوص Render Farm
مسلما اگر برای رندر یک پروژه از صدها یا هزاران سیستم مختلف استفاده شود، مدیریت و برنامه ریزی این سیستمها بسیار حائز اهمیت خواهد بود. حتما باید نرمافزارهایی وجود دارد که این عملیات گسترده رندرینگ را بین تمامی Nodeهای یک رندر فارم کنترل کنند و مراقبت کنند تا تمامی پلانهای یک پروژه بزرگ بدون هیچ مشکلی رندر شوند. به نرمافزارهایی که پروسه رندرینگ را روی رندر فارم مدیریت و برنامه ریزی میکنند، نرمافزارهای مدیریت رندر (Render Manager) میگویند.
ویژگیهای یک نرمافزار مدیریت رندر
- کدام فریمها توسط کدام سیستمها رندر شوند و همچنین از رندر کردن تکراری یک فریم خاص توسط چندین سیستم جلوگیری شود.
- خروجی فریمهای رندر شده در مکانی خاص ریخته شود.
- در صورت قطع شدن رندرها به هر دلیلی (مثل قطع شدن برق)، اطلاعات فریمهای رندر شده ذخیره شده تا بعد از رفع مشکل و راهاندازی مجدد سیستمها، ادامه پروسه رندرینگ از آخرین فریم رندر شده به صورت خودکار اتفاق بیافتد.
- بررسی اولویت پروژهها برای رندر، پروژههایی که اولویت بالاتری دارند اول رندر بشوند.
- ذخیره اطلاعات Log برای هر فریم رندر شده تا در زمانی که سیستم Error میدهد، به وسیله اطلاعات Log سیستم عیب یابی شود.
- امکان ارسال Log و گزارش عملکرد عملیات رندر به کاربر در زمانی که کاربر حضور فیزیکی در شرکت ندارد. (مثلا از طریق ارسال ایمیل یا اس ام اس)
- سازگاری با سیستم عاملها، نرمافزارهای سه بعدی و کامپوزیت و موتورهای رندر رایج.
- امکانات تعیین زمانبندی مناسب برای شروع یا اتمام رندر پروژهها.
- پشتیبانی از سیستم پایگاه دادهها یا DataBase برای ذخیره سازی اطلاعات پروژه.
- پشتیبانی از سیستم Remote Control برای انجام تنظیمات رندر فارم از مکانی دیگر.
- امکان استفاده از Licence نرمافزارها و موتورهای رندر روی تمامی Nodeهای رندر.
- امنیت و Security بالا.
- امکان تعیین Userهای مختلف با سطوح دسترسیهای مختلف روی نرمافزار مدیریت رندر خوب این مواردی که ذکر کردم تنها تعدادی از ویژگیها و امکاناتی هستند که در سیستم Render Farm باید از آنها استفاده شود.
ارسال پاسخ