سیستمهای رندرفارم

سیستمهای رندرفارم

یکی از مشکلات و گرفتاریهای بزرگ طراحان و رندرمن های دنیا، مواجه شدن با زمان رندرینگ و پردازش تصاویر است.در میان تعداد بسیار زیاد نرم افزارها و موتور های رندرینگ در دنیا، به جرات میتوان گفت که همگی آنها با یک سد بزرگ به نام زمان روبرو هستند.

این شرکت تلاش میکند تا با ارائه راهکارهای سخت افزاری و آموزشی این سد را از میان بردارد .

هر چه کیفیت Render خروجی بالاتر و به واقعیت نزدیک تر باشد، زمان لازم برای دریافت فایل نهایی بالاتر رفته به گونه ای که در برخی از فایلها این زمان به چندین روز خواهد رسید.افزایش زمان رندرینگ با استفاده از توابع و الگوریتمهای انحصاری این نرم افزارها بشدت بالا خواهد رفت. این مسئله به عنوان یکی از دغدغه های اصلی کاربران این مورتوهای رندرینگ (Render Engine) می باشد که با توجه به نبود سیستم های مناسب پردازش سه بعدی و رندرینگ، گاهی کیفیت فدای سرعت شده و با کاهش کیفیت، به ناچار زمان طولانی رندرینگ را کاهش می دهند .

در برخی از موارد نیز، متاسفانه هرچقدر کیفیت خروجی را پایین بیاورید باز هم نمی توانید عملیات Render را به پایان برسانید و با Crash کردن سیستم مواجه خواهید شد. استفاده از توابع رندرینگ متنوع و پردازش نور و روشنایی مانند Vray Frame Buffer, Global illuminatios (GI) , AntiAliasing , Indirect illumination,Brute force, irradiance map, Global phon mapping , ligh cache , caustics, DMC sampler به همراه تنظیمات صحنه و حجم مدلهای موجود، تعداد نورهای درون صحنه و … همگی باعث افزایش زمان رندرینگ به طرز چشم گیری خواهند شد .

کارشناسان این شرکت با توجه به آزمایش های انجام شده بروی قطعات و بهره گیری از قوانین و آموخته های خود، سریعترین و مقرون به صرفه ترین سیستم های مورد نیاز نرم افزار رندرینگ را تهیه کرده اند. این سیستم ها بر اساس نوع کاربری آنها به دسته های زیر تقسیم خواهند شد .

سیستم های مخصوص رندرینگ تک فریم و انیمیشن های کوچک ویژه معماران و طراحان دکوراسیون داخلی و خارجی ، مدلسازان، شبیه سازان رایانه ای و پردازش تصویر :

این دسته از سیستم ها برای آن دسته از مهندسان معمار و طراحی تهیه شده است که نیاز به رندر (Render) های تک فریم داشته و سرعت تست رندر (Render) آنها می بایست بالا باشد. این دسته از سیستم ها دارای شرایط خاصی می باشد که تکرار عملیات رندر (Render) و تصحیح را بسیار آسان و سریع نموده تا بهترین نتیجه بدست آید .
سیستم های حرفه ای رندرینگ و شبیه سازی :

رندرفارم

رندرفارم

این دسته از سیستم ها انحصارا برای آندسته از مهندسان و طراحانی آماده شده است که فقط تمرکز خود را بروی رندر پروژه های حجیم قرار داده اند و از پارامترهای Global Illuminations, Caustics , Ray Casting, Radiosity, Ray Tracing و یا Scan-Line Rendering با کیفیت تصویری بالا بهره خواهند برد .
سیستم های مخصوص برای ساخت انیمیشن، جلوه های ویژه و فیلم :

این دسته از سیستم های برای آندسته از عزیزانی تهیه شده است که علاوه بر فعالیت های سیستم های حرفه ای رندرینگ و شبیه سازی، تهیه تصاویر متحرک ( انیمیشن ) در مد کارتون و یا واقعی (Real) را در برنامه کاری خود قرار داده اند. این دسته از از سیستم های شامل WorkStation ها و Render Node ها و Render Server ها می باشد .
سیستم های مخصوص انیمیشن و رندر (Render) برای شرکت ها و سازمان ها :

راه کار شرکت آپسیس برای آندسته از شرکت ها که دارای پرسنل متعدد بوده و نیاز به سیستم های بیشتری برای رندرینگ و کار با مدلهای سه بعدی سنگین دارند و همچنین قیمت مناسب سیستم ها در اولیت خرید آنها می باشد استفاده از سیستم های Client / Server Rendering بر پایه Node و XPD می باشد .

سیستم های پردازش گرافیکی GPGPU & GPU Computing

راه کار آپسیس برای پردازش های موازی بر اساس پردازنده گرافیکی یا همان GPU Computing و یا پردازش های موازی در زمینه شبیه سازی و محاسبات که به آن GPGPU یا General-purpose computing on graphics processing units استفاده از سیستم های پردازش GPU این شرکت می باشد .

سیستم های فوق سریع Render Farm :

ساختار رندرفارم

ساختار رندرفارم

پيشرفت توان پردازش رايانه‌ها کمک‌هاي بزرگي در راستاي تحقق تصورات و خلاقيت‌هاي بصري داشته، اما بال پرواز خيال انسان هميشه گامي جلوتر از توان معمول رايانه‌هاطلب کرده است. يکي از چالش‌هاي اصلي استوديوهاي مختلف پويانمايي و جلوه‌هاي ويژه فراهم آوردن توان پردازش كافي براي نياز رو به رشد هنرمندان اين عرصه بوده و مي‌باشد. راه‌حل اين مشکل، تقسيم کار بين چندين رايانه و انجام پردازش به صورت همزمان و موازيست. به عنوان مثال، در مجموعه سه‌گانة «ارباب حلقه‌ها» ۳۲۰۰ پردازنده به صورت موازي به مدت بيش از ۶ سال به کار گرفته شد تا ساخت اين فيلم امکان‌پذير شود .

در استوديوهاي پويانمايي ايران نيز حرکت به سمت توليدات سه‌بعدي با کيفيت بالاتر و حجم بيشتر مشاهده مي‌شود، اما محدوديت توان پردازش در استوديوها هنرمندان را با مشکل روبرو کرده است، زيرا استفاده از مدل‌هايي با جزييات بيشتر، پديد آوردن صحنه‌هاي غني با عناصر زياد و يا استفاده از فناوري هاي نورپردازي واقع‌گرايانه زمان رندر را به شدت افزايش مي‌دهد.

با توجه به اينکه براي توليد هر ثانيه انيميشن لازم است ۲۵ فريم رندر شود، براي تهية هر دقيقه انيميشن بايد ۱۵۰۰ فريم رندر شود. اگر زمان ميانگين رندر يک فريم را ۵ دقيقه در نظر بگيريم، بالغ بر ۷۵۰۰ دقيقه يا به عبارتي ۵ روز زمان پردازش لازم است. حال اگر پردازش اين انيميشن به يک رندر فارم با ۱۰ گره پردازشگر واگذار شود، کل عمليات رندر ظرف ۱۲ ساعت يا نيمي از روز انجام خواهد شد . انجام عمليات رندر روي رندر فارم مزاياي متعددي دارد كه از آن جمله مي‌توان به موارد زير اشاره نمود :
كاهش زمان رندر پويانمايي‌ها و در نتيجه امكان توليد حجم بيشتري از پويانمايي
بيكار بودن رايانة انيماتور در زمان رندر و امكان استفاده از آن و در نتيجه دستيابي به بهره‌وري بالاتر
كوتاه شدن زمان چرخة «رندر – تصحيح – رندر» و در نتيجه امكان انجام تصحيحات بيشتر در زمان مشابه براي دستيابي به كيفيت بالاتر
رندر فارم علاوه بر امکانات فوق، بستري با استانداردهاي بالاي IT فراهم مي‌کند، اين بستر شامل شبکه پر سرعت و منبع ذخيره‌سازي مرکزي امن و سريع است. اين امکان براي استوديوهاي کوچک قابلیت استفاده ازمواردی مشابه امکانات IT يک استوديوي بزرگ را با دردسر بسيار کمتر فراهم مي‌کند. به عنوان مثال وجود منبع ذخيره‌سازي مرکزي در استوديوها، دسترسي به فايل‌ها را بسيار آسان نموده، از مشکلات ناشي از متفرق بودن فايل‌ها و منابع ديگر جلوگيري مي‌کند .

آشنایی با Render Farm

در این مقاله قصد دارم دوستان علاقه مند به انیمیشن را با سیستم های رندرفارم یا Render Farm آشنا بکنم. همانطور که خود میدانید مرحله رندرینگ یکی از سنگین ترین و زمان بر ترین مراحل تولید یک پروژه انیمیشن و جلوه های ویژه میباشد. به این دلیل که در این مرحله محاسبات بسیار زیاد و سنگین نورپردازی و متریال باید توسط کامپیوتر انجام شود. در بسیاری از پروژه های بزرگ ممکن است رندر هر فریم از پروژه روزها به طول بیانجامد ! فرض کنید که ۲ دقیقه کار ساختید و میخواهید آن را با فریم ریت ۲۴ رندر کنید. به دلیل استفاده از مدلهای بسیار زیاد و متریالها و نورهای پیچیده ، رندر هر فریم از پروژه شما ۱ ساعت طول میکشد. بنابراین شما با یک سیستم معمولی در یک روز کامل تنها میتوانید ۱ ثانیه از کار را رندر کنید و برای رندر کل پروژه به ۱۲۰ روز یا ۴ ماه زمان نیاز دارید ! خوب اگر بخواهید یک پروژه سینمایی که ۹۰ دقیقه است را رندر کنید احتمالا تنها نوادگان شما میتوانند نتیجه کار شما را ببینند ! اگرچه روز به روز سخت افزارهای کامپیوتری بسیار قدرتمند تر و پیشرفته تر از دیروز میشوند ، ولی نکته جالب اینجاست که سطح توقع ما هم از لحاظ کیفیت و پیچیدگی از کارهای انیمیشن و جلوه های ویژه نیز بیشتر میشود ، دوستانی که در این صنعت قدیمی تر هستند حتما به این مساله توجه کرده اند که اگر برای رندر یک فریم از کار در ۱۰ سال پیش حدود ۵ تا ۳۰ دقیقه زمان نیازداشتیم ، امروز هم با پیشرفت تکنولوژی ، باز هم برای رندر یک فریم متوسط بین ۵ تا ۳۰ دقیقه زمان نیاز است ، در صورتی که سخت افزارهای امروزی شاید صد برابر از سخت افزارهای ۱۰ سال پیش قویتر شده اند ! دلیلش همین سطح توقع و بالا بردن کیفیت میباشد ، اگر سیستم خیلی قویتری داشته باشیم ، به دنبال آن قدرت ریسک بیشتری داریم و دوست داریم از عناصر پیچیده تر در پروژه خود استفاده بکنیم !

راه حل افزایش سرعت رندرفارم

۱٫ بهینه سازی یا Optimize کردن پروژه (پاک کردن عناصر و اطلاعات اضافی ) ۲٫ سبک کردن پروژه از لحاظ تعداد آبجکت ها ، تعداد Polygon ها (مثلا استفاده از مدل های Low Res) ۳٫ سبک کردن تنظیمات مربوط به نورپردازی و رندر مثل پایین آوردن Sampling نورها ، Anti Alisasing ، سایه ها و غیره ۴٫ کم کردن ابعاد تصویر نهایی ۵٫ استفاده از برخی امکانات موتورهای رندر نظیر Bake کردن Photon ها ، استفاده از Instance ، Proxy و غیره ۶٫ استفاده از سخت افزار قدرتمند برای رندر ۷٫ استفاده از قابلیت LOD یا Level of Detail ۸٫ غیره ! خوب مسلما برخی از روش های بالا را نمیتوان در همه پروژه ها استفاده کرد ، مثلا اگر پروژه ای را با جزییات خیلی بالا بخواهید بسازید ، دیگر نمیتوانید تعداد Polygon های مدلها را کم کنید ، و یا اگر قرار است خروجی شما Full HD باشد ، دیگر نمیتوانید ابعاد تصویر را تغییر دهید ، بنابراین شاید تنها راه حل استفاده از سخت افزارهای قدرتمند باشد. اما تهیه و استفاده از سخت افزار قدرتمند نیازمند پرداخت هزینه بسیار زیادی می باشد ، همچنین حتی با پیشرفت علم و وارد بازار شدن سخت افزارهای بسیار قدرتمندی که شاید ویژگی ها و سرعت آنها قبلا یک آرزو بوده ، باز هم رندر کردن پروژه ها زمان بسیار زیادی را لازم دارد.   اینجاست که پای رندر فارم (Render Farm) وسط می آید ، همانطور که از اسمش پیداست ، رندر فارم یک مزرعه است ، فقط به جای اینکه در آن تعداد زیادی گندم وجود داشته باشد ، تعداد زیادی سیستم کامپیوتر وجود دارد.به هریک از این کامپیوتر های داخل رندر فارم یک Node میگویند. یک سیستم رندر فارم متشکل از صدها یا بلکه هزاران سیستم کامپیوتر است که همه آنها وظیفه دارند تا یک پروژه انیمیشن را رندر کنند.

 

بنابراین با کمک RenderFarm نیازی نیست تا یک ابرکامپیوتر داشته باشیم که زمان رندر پروژه را دهها برابر سریعتر کند ، میتوان با استفاده از چندین سیستم کامپیوتر معمولی و نسبتا ارزان ، یک سیستم RenderFarm پیاده سازی کرد تا با کمک آن بتوان سرعت رندر را بالا برد. در مثال قبل اگر بخواهیم از رندر فارم برای رندر پروژه استفاده بکنیم ، در صورتی که این رندر فارم دارای ۱۲۰ عدد Node باشد ، کل پروژه تنها ظرف یک روز رندر میشود !!! بنابراین رندر فارم یک بخش جدانشدنی در پروژه های انیمیشن و جلوه های ویژه بزرگ میباشند. خوشبختانه در ایران هم تعدادی شرکت وجود دارند که سیستم رندر فارم را اجاره میدهند و شما میتوانید پروژه های سنگین خود را از طریق این شرکت ها در کوتاه ترین زمان ممکن رندر کنید. معمولا شرکت هایی که رندر فارم اجاره میدهند ، هزینه را به ازای هر فریم محاسبه می کنند.

پردازش موازی در رندرفارم

در سیستم رندر فارم پردازش و رندر فریم ها به صورت Parallel یا موازی انجام میشود ، منظور این است که چندین فریم پروژه همزمان با هم ، توسط چندین سیستم کامپیوتر رندر میشوند ، البته این امکان هم وجود دارد تا تنها یک فریم از پروژه را به صورت موازی توسط چندین کامپیوتر و CPU رندر کرد که بعدا توضیح خواهم داد.

نحوه تقسیم پروسه رندرینگ در رندر فارم

معمولا به دو روش این عملیات تقسیم سازی انجام میشود : ۱٫ تقسیم رندر به هر یک از Node ها به ازای هر فریم ، در این روش هر فریم (یا چند فریم) از پروژه روی یک Node منحصر به فرد انجام میشود. ۲٫ (روش Distribution ) تقسیم یک فریم از پروژه روی چندین Node ، در این روش یک فریم از کار همزمان توسط چندین Node یا کامپیوتر رندر میشود ، معمولا از این روش برای رندر پلانهایی استفاده میشود که رندر هر فریم از آن نیاز به مدت زمان بسیار زیادی دارد ، همچنین در هنگام ساخت پروژه ، اشخاص رندر کار و نورپرداز ، برای اینکه خیلی سریع میخواهند نتیجه کار خود را ببینند و مشکلات آن را پیدا بکنند ، از این روش استفاده میکنند.

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

در این روش یک فریم از پروژه به جای اینکه روی یک سیستم رندر شود ، روی چندین سیستم رندر شده و نتیجه آنها باهم یک تصویر کامل را شکل میدهد. مثلا اگر یک تصویر با ابعاد ۴K داشته باشیم که از تعداد زیادی مدل و نور تشکیل شده باشد ، ممکن است رندر این یک فریم روی یک سیستم متوسط با CPU متوسط حدود ۱۰ ساعت به طول بیانجامد ، ولی با این روش میتوان برای رندر این یک فریم از سخت افزارهای چندین سیستم استفاده کرد تا زمان رندر فریم مورد نظر را به میزان قابل توجهی کاهش دهیم. در حقیقت این روش چیزی شبیه همان باکت های (Bucket) رندر میباشند که در مرحله رندر میبینید ، باکت های مربع های کوچکی هستند که یک فریم کامل را به چندین قسمت تقسیم میکند و هر Threat از CPU یکی از این باکت ها را رندر میکند، بنابراین هرچه تعداد Threat های CPU بیشتر باشد ، تعداد باکت های بیشتری همزمان با هم تصویر را رندر میکنند ، حالا فرض کنید به جای استفاده از یک CPU ، چندین CPU با هم روی رندر یک تصویر با هم کار بکنند.

پیکربندی رندر فارم

یک مجموعه رندر فارم معمولا از یک سیستم مادر یا Master به همراه تعداد بسیار زیادی سیستم های دیگر به عنوان Node و یا Slave (یا Client) تشکیل شده است. وظیفه سیستم Master مدیریت و کنترل سیستم های Slave یا Node های رندر و همچنین محول کردن وظیفه رندر به آن سیستم ها میباشد. عموما در سیستم های Slave به دلیل اینکه آنها تنها وظیفه رندر کردن را برعهده دارند از CPU و RAM مناسب استفاده میکنند ، در این سیستمها نیازی به کارت گرافیک قدرتمند و یا حتی مانیتور و کیبورد نیست ، تمام تنظیمات از طریق سیستم مادر انجام شده و از طریق شبکه به Node های رندر منتقل میشوند. به سادگی میتوان از طریق سیستم Desktop Monitoring وارد تک تک سیستم های Node شد و در صورت لزوم تنظیمات مربوطه را انجام داد. بنابراین درکل میتوان گفت که شبکه بندی سیستم های رندر فارم را معمولا با یکی از دو روش زیر انجام میدهند. اگر تعداد Node ها کم است میتوان کامپیوترها به صورت local و مستقیم (Workgroup) به هم وصل کرد ، این روش برای مصارف خانگی که شاید نهایت ۲ تا ۳ کامپیوتر وجود داشته باشد مورد استفاده قرار گیرد. برای مواردی که تعداد بسیار زیادی سیستم کامپیوتر وجود دارند میتوانیم از سیستم شبکه Domain استفاده بکنیم ، بدین صورت که یک سیستم به عنوان سیستم اصلی یا Server مشخص میشود و بقیه سیستم های به عنوان سیستم Client مشخص میشوند. بنابراین نرم افزار اصلی مدیریت رندر یا مانیتورینگ باید روی سیستم سرور نصب شوند و نرم افزارهای مخصوص عملیات رندر یا Client باید روی سایر سیستم ها نصب شوند.

 

استفاده از رندر فارم در قالب Cloud Based Rendering

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

 

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

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

آشنایی با سیستم رندر فارم,Render Farm

 

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

  1. ۱٫ کدام فریم ها توسط کدام سیستمها رندر شوند و همچنین از رندر کردن تکراری یک فریم خاص توسط چندین سیستم جلوگیری شود. ۲٫ خروجی فریم های رندر شده در مکانی خاص ریخته شود. ۳٫ در صورت قطع شدن رندر ها به هر دلیلی (مثل قطع شدن برق ) ، اطلاعات فریم های رندر شده ذخیره شده تا بعد از رفع مشکل و راه اندازی مجدد سیستم ها ، ادامه پروسه رندرینگ از آخرین فریم رندر شده به صورت خودکار اتفاق بیافتد. ۴٫ بررسی اولویت پروژه ها برای رندر ، پروژه هایی که اولویت بالاتری دارند اول رندر بشوند. ۵٫ ذخیره اطلاعات Log برای هر فریم رندر شده تا در زمانی که سیستم Error میدهد ، به وسیله اطلاعات Log سیستم عیب یابی شود. ۶٫ امکان ارسال Log و گزارش عملکرد عملیات رندر به کاربر در زمانی که کاربر حضور فیزیکی در شرکت ندارد (مثلا از طریق ارسال ایمیل یا اس ام اس ) ۷٫ سازگاری با سیستم عاملها ، نرم افزارهای سه بعدی و کامپوزیت و موتور های رندر رایج ۸٫ امکانات تعیین زمانبندی مناسب برای شروع یا اتمام رندر پروژه ها ۹٫ پشتیبانی از سیستم پایگاه داده ها یا DataBase برای ذخیره سازی اطلاعات پروژه نظیر وظایف Node ها (Jobs) ، گزارشات عملیات رندر (Log) و غیره (به دلیل وجو داشتن حجم بسیار زیاد اطلاعات مانند شماره فریم ها ، پلانها ، Log ها ، Job ها و غیره ، وجود دیتابیس ضروری است ) ۱۰٫ پشتیبانی از سیستم Remote Control برای انجام تنظیمات رندر فارم از مکانی دیگر ۱۱٫ امکان استفاده از Licence نرم افزارها و موتور های رندر روی تمامی Node های رندر ۱۲٫ امنیت و Security بالا ۱۳٫ امکان تعیین 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 ، دسترسی لازم به این اطلاعات را برایشان در نظر گرفت.

 

  1. ۲٫ کلیه آدرس ها مانند آدرس پروژه ، پوشه ای که باید خروجی فایلهای رندر شده در آن ریخته شوند و غیره به صورت Local تعیین نشوند ، مثلا به جای ریختن خروجی فریم های رندر شده در آدرس D:\JKProjects\Images از آدرس ۱۹۲٫۱۶۸٫۱٫۱/Images/JKProjects استفاده کنید.

 

  1. ۳٫ در صورت امکان از کارت شبکه های پر سرعت مثل ۱Gbps استفاده کنید ، این امر میتواند در مواقع خاصی ، به میزان چشمگیری سرعت رندر شما را بالا ببرد. به این دلیل که در بسیاری از پروژه ها ممکن است حجم بسیار زیادی اطلاعات داشته باشیم که در مرحله رندرینگ باید خوانده شوند ، مثلا فرض کنید پروژه انفجاری را ساخته اید که حجم هر فریم از فایل های Cache انفجار ساخته شده حدود ۱٫۵ گیگابایت است ، بنابراین موتور های رندر برای رندر هر فریم از انفجار ، ناچار هستند که حدود ۱٫۵ گیگابایت اطلاعات را پیوسته از طریق شبکه کامپیوتری بخوانند و رندر کنند ، مسلما اگر از شبکه های کم سرعت مثل ۱۰۰Mbps استفاده کنید ، سرعت Read و Write اطلاعات کم میشود و اگر این تاخییر را در تعداد فریم های پروژه ضرب کنید ، زمان تاخییر قابل توجهی بدست می آید !
  2. ۴٫ همیشه سعی کنید کل اطلاعات و متریال های مورد نیاز پروژه نظیر Texture ها ، فایل های Cache ، فایل های Reference ، فایل های Alembic و غیره در داخل پوشه پروژه جاری بریزید و بخوانید ، از ریختن آنها در خارج از پوشه پروژه اجتناب کنید ، مثلا اگر با Maya کار میکنید ، همه Texture ها را در پوشه sourceimages پروژه خود کپی کنید ، اگر سیستم های Node به این اطلاعات دسترسی یا Permission لازم را نداشته باشند ، این اطلاعات در مرحله رندر مورد استفاده قرار نمیگیرند. بنابراین اگر پروژه ای را رندر کردید و متوجه شدید که در یکسری از فریم ها Texture ها Load نشده اند ، به احتمال زیاد ، سیستم هایی که این فریم ها را رندر کرده اند ، امکان دسترسی به این Texture ها را نداشته اند.

اگر از نرم افزار Houdini استفاده میکنید ، میتوانید به جای ساخت پروژه ، آدرس تمامی فایلها را به جای Absolute ، به صورت Relative نیز تعریف کنید .

  1. ۵٫ در صورت امکان تمامی سیستمهای 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 میباشد ، در فیلم زیر یک نمونه پروژه را میبینید که حدود ۱ بیلیون Particle را در برنامه Houdini به صورت Flip Simulation پردازش کرده اند ، با اینکه تعداد ذرات بسیار زیاد است ، ولی با کمک سیستم Distribution توانسته اند این پردازش را تنها در طی ۳ روز انجام دهند !

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

شما می توانید بر کسب اطلاعات بیشتر با کارشناسان شرکت در تماس باشید .

فهرست