بهرغم
پیچیدگیهایی که در شبیهسازی یک حادثه طبیعی ( مثل سیل، زلزله، آتشفشان
و...) وجود دارد، روند کار تا حدود زیادی مشخص است. موتورهای شبیهساز
قوانین فیزیک را میشناسند و میدانند یک جسم خاص تحت یک وضعیت خاص و با
اعمال نیروهای خاص چه رفتاری را نشان میدهد. اما وقتی هدف شبیهسازی
فرآیندی باشد که در آن علاوه بر قوانین فیزیک، پارامترهای دیگری هم دخیل
هستند، کار پیچیدهتر میشود.
در
مورد اخیر لازم است رندرگیری و اصلاح بهطور مکرر صورت گیرد. بهطور
معمول، ابتدا شبیه سازی صورت میگیرد و یک نتیجه نخست از کار حاصل میشود و
گروه سازنده با بررسی آن تصمیم میگیرند که کار را ادامه دهند و رندر را
تهیه کنند یا به عقب برگردند و شبیه سازی را تکرار كنند. به این علت که هم
شبیهسازی و هم رندر زمان زیادی را بهخود اختصاص میدهند، بهطور عملي این
امکان وجود ندارد که صحنهها بهطور مکرر اصلاح شوند و از آنها رندرگرفته
شود. در نتیجه، روی پیش نمایش سادهای از نتیجه شبیهسازی صورت گرفته بحث
میشود و در صورت تأیید كار وارد مرحله زمانبر رندر میشود.
اما
در فیلم Airbender راهکار جدیدی ارائه شد که این روند را متحول كرد. با
بهرهگیری از زبان CUDA و پردازندههای گرافیکی این امکان فراهم شد که
فرآیند شبیهسازی و رندر بهطور همزمان انجام شود و این امر سرعت بازبینی و
اصلاح شاتهای جلوههای بصری را بسیار بالا برد.
مهار عناصر چهارگانه
جدیدترین
پروژه ILM، ساخت 485 شات جلوههای بصری برای فیلم The Last Airbender است؛
فیلمی از امنايتشيامالان. در این فیلم شاهد شخصیتهایی هستیم که قادرند
عناصر چهارگانه را به خدمت بگیرند و کنترل كنند و از آنها بهعنوان سلاح
در مبارزاتشان استفاده کنند. گلولههای آتشین بسیار بزرگ، رشتههای آب،
دیوارههایی از خاک و جریانهای پرقدرت هوا بخشی کوچک از شبیه سازیهای
دیجیتالی است که توسط ILM ساخته شده و بیش از یک ساعت از زمان فیلم را
بهخود اختصاص میدهد.
كريگهمك
سرپرست جلوههاي بصري ميگويد: «آتش یکی از چالش برانگیزترین عناصر در
ساخت جلوههاي كامپيوتري است. از ديدگاه من، Fluid Solver مبتنی بر GPU
مهمترین پیشرفت فنی ما در فرآيند تولید این فیلم بود. در ابتدا، حتي تصور
ساخت آتش با اين حجم و واقعگرايي بهكمك جلوههاي كامپيوتري، صرفنظر از
اينكه قرار است اين آتش توسط شخصيتها كنترل شود و ابزار دست آنها باشد،
ترس و هراس شديدي را بهوجود آورده بود. پابلو هلمن، سرپرست جلوههای بصری
بیان میکند: «ما هرگز عناصر را اینگونه دستکاری نکرده بودیم، به خصوص
آب و آتش را.»
شبیهسازی
آتش و سیال (نظیر آب) بسیار پیچیده است و به افراد متخصص نیاز دارد.
هنرمندان هم باید با الگوریتمها آشنایی داشته باشند. از طرفی رندرفارمهای
سنتی مبتنیبر CPU فرآیند بازبینی و اشکال زدایی جلوههای بصری را فوق
العاده زمانبر و خلاقیت را محدود میکنند. استفاده
از فناوری برای رندر چنین جلوههایی جدید نیست، اما سرعتی که گروه ILM در
انجام آن بهدست آوردند، پیشرفت مهمی بهشمار میآید.
نگاه کلی به جلوه های بصری
بهخدمت
گرفتن عناصر چهارگانه ویژگیهایی دارد که باید در ساخت جلوههای بصری مورد
توجه قرار گیرد. کارگردان سعی داشت این موضوع را برای گروه سازنده روشن
كند که آنچه شخصیتها با این عناصر انجام میدهند، باید طوری بهتصویر
کشیده شود که نظیر شعبده بازی بهنظر نرسد. از نظر وی این مهم بود که
جلوهها طوری ساخته شوند که بیننده متقاعد شود شخصیت فیلم برای انتقال و
حرکت دادن آتش از یک نقطه به نقطه دیگر انرژی صرف میکند. ویژگی صحنههای
پرتحرک این فیلم حرکات فراوان دوربین و کاتهای بسیار کم است. مدت برخی از
این نماها نسبت به فیلمهای دیگر بسیار طولانیتر است. همین موضوع، کار
ساخت و ترکیب جلوههای بصری را دشوارتر میکرد. بهعنوان مثال، صحنهای
وجود دارد که مملو از جلوههای بصری بوده و نزدیک به چهار دقیقه و نیم طول
میکشد.
از
آنجا که کارگردان در نظر داشت شبیهسازیها ریشه در واقعیت داشته باشند،
گروه به مرجع نیاز داشتند. توجه به کار افرادی که با آتش بازی میکردند یا
بررسی ویديوهایی که در اینترنت وجود دارد (بهعنوان مثال، از رفتار یک
بادکنک آب و حتی آزمایش Zero G ناسا) در این امر به آنها کمک کرد.
مجموعه ابزارهای اصلی که ILM در این فیلم مورد استفاده قرار داد، شامل
منتال ري و رندر من (از پيكسار) برای رندر، مايا ( از اتودسك ) برای
متحرکسازی، Nuke (از Foundry) برای كاموفوسيتينگ و ابزارهای Zeno و
Saber برای ساخت CG و جلوهها بود.
آتش : شبیهسازی سخت افزاری
بهمنظور
بازسازی جلوههای آتش، لازم بود تا گروه آتشی قابل کنترل و واقعی بسازد،
بهطوریکه اجرای آن بهحد کافی ساده باشد و در عین حال با سرعت و بهطور
مکرر بتوان از آن بهره برد. تصمیم بر این بود که برخی از موارد مربوط به
آتش بهصورت جلوههای ویژه و سر صحنه اجرا شود، اما بهدلیل رفتار خاص آتش،
حرکات دوربین و بحث امنيت، اینکار ممکن نبود. تغییر سرعت فریم در طول
صحنهها نيز که به سبک بصری فیلم مربوط میشد و در برخی موارد به 96 فریم
در ثانیه و در برخی موارد هم به 24 فریم در ثانیه میرسید، در این تصمیم
دخیل بود.
بهطور
کلی، شبیهسازی آتش، فرآیندی پر زحمت و خستهکننده است و زمان زیادی را از
لحظه شروع تا رندر صرف خود آن مي شود. گروه پیش از این در فیلم هری پاتر،
آتشی قابل قبول را ارائه داده بود؛ اما آن راهکار براي فیلم جدید مناسب
نبود. از آنجا که در فیلم جدید دوربین بهدور آتش حرکت میکرد و حتی آتش
بهسمت دوربین میآمد، به یک آتش سه بعدی واقعگرایانه نیاز بود.
ILM
با ایجاد تغییراتی در فرآيند كاري خود، توانست شرایطی را فراهم کند که
بهجای شبیهسازی آتش در نرمافزار، آنرا با حجم سه بعدی در سختافزار
شبیهسازی و رندر كند. بر همین اساس، تصمیم بر این شد که از GPU برای
شبیهسازی و رندر استفاده شود. در این راه از پردازندههاي گرافيكي شرکت
Nvidia استفاده شد و کارتهای Quadro FX 5800 با چهارگیگابایت حافظه
انتخابشدند. در آن زمان CUDA 2. 1 در دسترس بود و با استفاده از آن
فریمورک، یک شبیهساز سیال سه بعدی و Volume Renderer توسعه داده شد که
به Plume معروف است.
با
کمک Plume شبیهسازی و رندر آتش و بررسی و اصلاح آن به سرعت قابل اجرا
بود. نتیجه شبیهسازی نه بهصورت یک نتیجه ابتدایی، بلکه در غالب یک رندر
نهایی ارائه میشد. این یک قابلیت کلیدی بود که از طریق آن به روند اصلاح
جلوهها سرعت بخشیدهمیشد. البته، لازم بود جهت غلبه بر محدودیت حافظه
GPU، اقداماتی برای بهینهسازی حافظه صورت گیرد.
|
|
شكل 1- الف فیلم برداری از بازیگران در مقابل پرده سبز
|
شكل 1- ب افزودن آتش به نمای کامپیوتری
|
Plume
عنصر
اصلی برای دستیابی به بسیاری از جلوههای فیلم، استفاده از ابزاری بهنام
Plume بود که توسط ILM ساخته شده بود. پلوم یک سیستم شبیه سازی سیال و در
عین حال یک ابزار رندر مبتنی بر GPU است که از معماری محاسبه موازی مبتنی
بر CUDA بهره می برد. ILM با استفاده از پلوم و اجرای شبیهسازیها و
رندرها روی رندرفارم مبتنی بر GPU مجهزبه کارتهایگرافیک Quadro FX 5800
شرکت Nvidia افزایش سرعت را بهخوبی حسکرد.
دن
پيرسن ، سرپرست تولید دیجیتال، از موتور رندر پلوم میگوید: «پلوم یک
ابزار عالی است. ما میتوانستیم یک شبیهسازی را بهصورت رندر شده و در ظرف
چند ساعت ارائه کنیم.» این در مقایسه با مدت زمان چند روزه مورد نیاز در
روشهای مبتنی بر CPU یک مزیت آشکار بهشمار میآید. با وجود اينكه پلوم
در ابتدا فقط برای رندر شبیهسازی سیال طراحی شده بود، اما انعطاف پذیری آن
سبب شد که برای ابر و دود و جلوههای مهار هم استفاده شود.
وقتی
بین عناصر اثر متقابل وجود داشت، این موضوع یک برگ برنده محسوب میشد،
زیرا آتش میتوانست بهعنوان مثال روی خاک تأثیر بگذارد و همین امر درباره
تأثیر متقابل هوا و خاک هم صدق میکرد. اجرای رندر همزمان با هر شبیهسازی
سبب میشد تا به شبیهسازی در حکم یک نتیجه نهایی نگریسته شود و نیازی
نبود که پیشبینی شود نتیجه شبیهسازی (پس از رندر اصلی) چگونه بهنظر
خواهد رسید. از طرفی شبیهسازی و رندر روی GPU سبب میشد که به ذخیره
دادههای شبیهسازی نیازی نباشد. GPU کار خود را انجام میداد و به کار با
ورودی و خروجی برای نوشتن و خواندن دادهها در فایل نیازی نبود.
ILM
برای نوشتن Fluid Solver شتابدهی شده با GPU بهجای استفاده از OpenGL از
CUDA بهره برد، زیرا معتقد بود از این طریق فرآیند توسعه سادهسازی
میشود. اليويه موري، متخصص بخش تحقیق و توسعه در ILM میگوید: « برای
توسعه پلوم مجبور بودیم یک ماشین مجازی بسازیم. این یک کار جزئی نیست.
نوشتن کدهای لازم در CUDA به ما اجازه میداد با سرعت و انعطاف پذیری کار
کنیم و نیاز به خطوط کد کمتری نسبت به استفاده از OpenGL داشته باشیم.»
درباره Quadro
در
ادامه بهمنظور مرور قابلیتهای کارتهای Quadro و پیبردن بیشتر به آنچه
متخصصان ILM بیان میکنند، اشاره کوتاهی خواهيم داشت به كارتهاي گرافيكي
Quadro سري E4000، 5000 E وE6000 شرکت Nvidia که مبتنی بر معماری Fermi
هستند. نسخه 4000 شامل دو گیگابایت حافظه و 356 هسته ؛ 5000 شامل5/2
گیگابایت حافظه و 352 هسته و 6000 شامل شش گیگابایت و 448 هسته است. Quadro
5000 تا چهار برابر کارایی سریعتري را نسبت به رندرفارمهاي مبتني بر
CPU ارائه میدهد و محدوده وسیع کاربرد از طراحی تا انیمیشن و ویديو را در
برمیگیرد.
با
بهرهگیری از فناوری جدید Scalable Geometry Engine، كارت 5000 E میتواند
950 میلیون مثلثبندي (Triangle) را در هر ثانیه پردازش كند. Quadro 6000
هم 3/1 ميليارد Triangle در ثانیه را ارائه میدهد و وظایفی با نیاز
محاسباتی بالا نظیر Ray Tracing، پردازش ویديویی و محاسبات داینامیک مربوط
به سیالات را تا هشت برابر سریعتر انجام میدهد. هر سه این کارتهای
گرافیکی تواناییهای پیشرفتهای را برای استریوسکوپی سهبعدی، مصورنمایی و
پخش تلویزیونی HD بهطور سهبعدی دارند.
سایر عناصر
گروه،
از این تکنیک برای کاربردهایی استفاده کرد که هرگز فکر نمیکرد برای آنها
از یک شبیهسازی کامل استفاده کند؛ آنها میتوانستند بدون اينكه زمان
طولانی صرف شود کارهایی را انجام دهند که از نظر فیزیکی درست بودند. ساخت
حرکات سیال و عکسالعمل چیزها در برخورد با هم بهخوبی صورت میگرفت و
بهطور کلی باورپذیرتر بهنظر میرسید. دستکم یک نقطه شروع مناسب بود.
شيامالان اصرار داشت که عناصر چهارگانه تا حد امکان بر اساس طبیعت بوده و
واقعی بهنظر برسند. در بین این عناصر، طبیعت پیچیده آب ساخت آنرا مشکل
میكرد. آب در این فیلم مقیاسهای گوناگونی دارد و در حالات مختلفی دیده
میشود که ساخت آن را با چالش مواجه میسازد. موارد مربوط به آب در
Airbender متنوع است و از امواج عظیم تا بازوهای آبی ( شكل2) و گلولهای
از آب را که از اقیانوس بالا میآید (شكل 3)، شامل میشود.
|
|
|
|
َشكل 2
نمونهای از شبیهسازی آب: مراحل افزودن آب شبیهسازی شده به نما،
بهخوبی در تصاویر قابل مشاهده است. به نحوه برخورد آب با بازیگر در
نمای نهایی دقت شود.
|
شكل 3 شکل دیگری از آب که در این فیلم به نمایش درآمد. نحوه شکست نور و میزان شفافیت از جمله موارد مهم در چنین شبیه سازی است.
بهعنوان
مثال، گویآبی که از اقیانوس بیرون میآید و در هوا شناور میماند
پیچیدگیهایی نظیر برهم کنش نور، سطح، جزئیات داخلی یا میزان شکست نور
دارد. یکی از چالشهای کار با آب در این فیلم این بود که موتورهای
شبیهسازی سیال، مایل هستند که فیزیک را بهطور واقعی انجام دهند و این
مناسب فیلم Airbender نبود. كريگ همك در زمینه مشکلات مربوط به شبیهسازی
آب ميگويد: «شتابدهی GPU برای ارائه آب، بهطور کامل آماده نیست، اما ما
روی آن کار میکنیم. درباره آتش، شما مجبور نیستید نگران جرم و مقدار
حرکت باشید. حالت بیثبات آن سبب میشود بتوانید كارشبیهسازی را ساده
کنید. اما درباره آب شما باید نگران سطح و جرم و اندازه حرکت باشید. با
حافظه محدود GPU شما باید به این فکر کنید که چهطور میتوانید همه آن
دادهها را نمایش دهید و بهمنظور دستیابی بهوضوح کافی همه آن را در GPU
بگنجانید. شما میتوانید بهطور موقت و با سرعت، دادهها را بین GPU و CPU
حرکت دهید بدون اينكه نيازي به نوشتن آنها (ذخیره روی دیسک) باشد. اما
برای چیزی به پیچیدگی کار با سطوح و جلوههای آب مجبور به ذخیره دادهها
هستید.» در ساخت جلوههای آب در برخی موارد از رندرمن و در سایر موارد
هم از منتالري استفاده شد. ساخت هوا هم مشکلات خودش را داشت. اما در این
میان ساخت زمین زیاد دشوار نبود، زیرا فقط در چند صحنه استفاده میشد.
شخصیت Aang فقط در دو قسمت از فیلم از زمین استفاده میکند که برای این
موارد استودیو ترکیبی از پلوم و فناوری Fracturing توسعهدادهشده برای
فیلم ایندیاناجونز را بهکار برد.
به
اين ترتیب، آنها میتوانستند ژئومتری زمین را منكسر يا Fracture کرده و
سپس ذراتی را که به پلوم برای تولید غبار فرستاده شده بود، به حرکت
درآورند. كريگهمك عقیده دارد: «بخش جالب شاتها، جایی بود که ما با چند
عنصر بازیمیکردیم. ما میتوانستیم یک حرکت انفجاری هوا داشته باشیم که
شبیهسازی سیال اصلی که آتش را کنترل میکرد، از هم گسیخته میساخت
بهطوریکه شما احساس میکنید، یکی روی دیگری تأثیر میگذارد.
بهعنوان
مثال، در جایی از فیلم، Aang با تولید یک دیوار از خاک، آتشی را که بهسمت
او پرتاب شده منحرف میکند که سبب میشود آتش به اطراف آن بچرخد و ذرات
خاک با آن حرکت کنند. كريگ همك توضیح میدهد: « سیستم آتش به شما اجازه
میدهد ژئومتری را بهعنوان مانع وارد کنید، بنابراین ما دیوارهای خاک را
بهطور مستقیم به پلوم وارد میکردیم و سیستم شبیهساز، آتش را در اطراف آن
میپیچاند.»
مزایای راهکار مبتنی بر GPU
پیش
از این، نماهای حاوی چنین جلوههای بزرگی، که به شبیهسازیهای چندگانه و
زمان رندر طولانی نیاز دارد استفاده از افرادي با دانش فني عميق را الزامي
ميكرد. در این فیلم هنرمندان، خود امور را بهدست داشتند. كريگهمك در این
زمینه میگوید: «این فیلم برای من بسیار مهم بود. ما در نهایت به ابزاری
دست یافته بودیم که به حد کافی تعاملی بود و لزوم استفاده از افراد را با
دانش فنی برای اجرای شاتهای پیچیده بر طرف كرد.»
موري
میگوید: «مانند هر چیزی در جلوههای بصری پیشرفته، تکرار کارها برای
برطرف كردن اشکالات شاتها، یک امر اساسی و ضروری بهشمار میآمد. توسط
کار با یک فریم ورک مبتنی بر GPU میتوانستیم، بهمنظور بر طرف كردن
ایرادات در هر روز تا هشت تکرار داشته باشیم که شبیهسازیهای پیچیده آتش،
خاک و هوا را شامل میشد. این تعداد نسبت به شبیهسازی مبتنی بر CPU یک
افزایش سرعت ده تا پانزده برابر را نشان میدهد. دسترسی به CUDA و
تراشههاي گرافيكي Nvidia شیوه برخورد ما با گونههای مختلف و پیچیده
چالشهای جلوههای بصری را بهطور کامل تغییر داد.»
كريگهمك
بیان میکند: « بهدلیل اينكه پلوم توسط GPUهای Quadro شرکت Nvidia
شتابدهی شده، بسیار تعاملی بوده و این امر آنرا به ابزاری تبدیل میکند
که بیش از آنکه متکی بر دانش فنی هنرمند باشد، متکی بر چشمهای او است.
این به اين معنا است که شما مجبور نيستند الگوریتمهایی را که در پسزمینه
اجرا میشود، درك كنيد.» ILM در نظر دارد دیگر ابزارهای مبتنی بر CUDA را
در پروژههای آینده مد نظر قرار دهد و بررسی روشهای جدیدتر را برای
اجرای رندرهای شتابدهی شده توسط GPU ادامه خواهد داد.