کد : 5540-5347      تاریخ : سه‌شنبه، 11 تير 1392
تعداد بازدید : 3584
نرم افزار Nuke
من اعتقاد دارم که کمپانی Foundry در مسیر خوبی قرار دارد و استفاده از 3D و سخت افزار رو به خوبی داره پیشرفت می ده که البته نیاز به بازنویسی های گسترده داره اما فکر می کنم که برنامه ریزی اون ها به شکل جامع داره پیگیری می شه.

نویسنده: عمید رجبی

 

تاریخچه ی نرم افزار Nuke
 
نرم افزار قدرتمند Nuke توسط Bill Spitzak  در سال 1993 در کمپانی Digital Domain نوشته شد و توسعه پیدا کرد تا بتواند توانایی های بیشتری را در اختیار هنرمندان کمپانی Digital Domain قرار بدهد و محدودیت های نرم افزار قدرتمند Flame را جبران کند. یکی از اهداف اولیه برای نوشتن و توسعه نرم افزار  Nuke در آن سال ها Composite صحنه ها با Resolutionی بالاتر از Flame بود. در سال 1998 کمپانی Digital Domain نسخه دوم نرم افزار Nuke را معرفی کرد که Digital Domain توانسته بود با استفاده از FLTK GUI Toolkit)ای که خود DD نوشته بود) و توسعه داده بود User Interface مناسب و جدیدی را برای این ورژن ایجاد کند. نرم افزار  Nukeدر سال 2001 توانست از آکادمی Oscar جایزه Technical Achievement  را دریافت کند که این یک حرکت بزرگ و یک پرتاب رو به جلو هم برای Digital Domain و هم برای نرم افزار Nuke به حساب می آمد که این باعث شد در سال 2002 کمپانی Digital Domain تصمیم بگیرد تا به صورت Public نرم افزار Nuke را ارائه کند. بعد از ارائه نرم افزار Nuke استقبال بی نظیری از این نرم افزار شد به طوری که اغلب کمپانی های بزرگ و کوچک در زمینه VFX شرایط کاری خودشان را تغییر دادند و Pipeline کاری خودشان را به سمت نرم افزارNuke  بردند. به طوری که این استقبال یک تهدید جدی برای نرم افزار Flame و دیگر نرم افزارهای Composite به حساب می آمد.
 در سال 2005 کمپانی Digital Domain نسخه 4.5 نرم افزار Nuke را معرفی کرد که در این نسخه Nuke برای اولین بار سیستم 3D را به عنوان ویژگی های جدید خود قرار داده بود. اما در ادامه روند موفقیت های کمپانی Digital Domain با نرم افزار Nuke، مدیران این کمپانی در سال 2007 تصمیم گرفتند تا با یک کمپانی انگلیسی به نام Foundry وارد مذاکره شوند تا ادامه تحقیقات و توسعه نرم افزار Nuke را به دست کمپانی قدرتمند Foundry بسپارند.
کمپانی Foundry تا آن سال صرفاً برروی Plugin های قدرتمندی از جمله مجموعه Furnace Core ،Keylight و ... کار می کرد که بسیار هم در دنیای VFX محبوب و معروف بودند. اولین نسخه ای که کمپانی Foundry معرفی کرد نسخه 4.7 نرم افزار Nuke بود که تغییرات زیادی هم نکرده بود اما در اوایل سال 2008 کمپانی Foundry نسخه 5 نرم افزار Nuke را معرفی کرد که از مهمترین تغییرات می توان به User Interface جدید  Nukeکه بر پایه Nokia Qt و پشتیبانی از Script نویسی با Python و خلق تصاویر Stereoscopic اشاره کرد. اما یکی از اتفاق های دیگر که در زمان عرضهNuke  نسخه 5 افتاد اضافه شدن Plugin قدرتمند کمپانی Foundry یعنی Keylight بود.
 
 
در سال 2010 کمپانی Foundry نسخه 6 نرم افزار Nuke را معرفی کرد که تغییرات بسیار زیاد و فوق العاده ای هم کرده بود. تغییرات در نسخه 6 آنقدر چشمگیر بود که می توان نسخه 6 نرم افزار را شروع دوباره دانست که باعث هر چه قوی تر شدن کمپانی Foundry نیز شد. در زمان معرفی نسخه 6 نرم افزار Nuke، کمپانی Foundry تصمیم گرفت تا Nuke را در دو نسخه Nuke و NukeX عرضه کند که تفاوت NukeX  با Nuke  حضور اکثر Plugin ها به طور پیش فرض در NukeX  بود از جمله Furnace Core ، Camera Tracker و ... که باعث شد نرم افزار Nuke را بیش از پیش محبوب تر و معروف تر شود. در سال 2012 کمپانی Foundry ورژن 7 نرم افزار Nuke را معرفی کرد که می توان Nuke نسخه 7 را یکی از بهترین عرضه های این نرم افزار دانست که به خوبی در ادامه راه Nuke 6 قدم بر می دارد.
در ادامه قصد داریم تا مصاحبه ای را که در وب سایت Nukepedia با Bill Spitzak انجام شده است را با هم بخوانیم.
 
- سلام Bill می تونی راجع به پیشینه خودت برامون بگی؟
من در زمینه ی Computer Science در دانشگاه MIT تحصیل کردم و بعد از آن چند سال بر روی یک پروژه شخصی نرم افزاری کار کردم و بعد به مدرسه فیلم USC رفتم در ابتدا در بحث Production Design کار می کردم که کاری بود که می تونستم و می خواستم انجام بدهم ولی خیلی زود به Animation  رو آوردم.
- چطور به کمپانی Digital Domain پیوستی؟
بعد از مدرسه فیلم خیلی جدی به دنبال شغلی در زمینه VFX بودم اما ابتدا در کمپانی Sun Micro Systems کار کردم بعد به یک کمپانی کوچک به نام Sidley Wright Motion Work رفتم در آنجا با Steve Wright کار کردم که در حال حاضر مشغول تدریس نرم افزار Nuke هست. کمپانیSidley Wright از چند تا کامپیوتر باقی مانده از کمپانی Pixar استفاده می کرد که ازRange Dynamic بالاتری برخوردار بودند ( 1.5 تا (-0.5  که همین Range Dynamic و برخی دیگر از امکانات این کامپیوترهای Pixar تاثیری در طراحی Nuke داشت.
یکی از دوستانم در USC پرسید که راستی رزومه خودت را به (Digital Domain) DD فرستادی!!! که این اولین باری بود که اسم DD را شنیدم و بعد رزومه خودم را فرستادم و آن ها هم از من خواستند که با آنها ملاقات داشته باشم و چون تازه شروع کرده بودند همه را استخدام می کردند و از این جا بود که مسیر من آغاز شد.
- قبل از Nuke در DD چه کار می کردی؟
اولین پروژه من در DD ساخت یک Curve Editor برای  Animation بود بعضی از قسمت های این پروژه هنوز در Nuke باقی مانده اند و همچنین بر روی یک Movie Clip Playback و یک Color Corrector کار می کردم که بتونه تصاویر Cineon را به تصاویر 8bit تبدیل کند. این بود که من بیشتر روی تصاویر تمرکز کردم به جای 3D .
 
- چرا شروع کردی به نوشتن نرم افزار Nuke؟
در ابتدا شروع کردم به نوشتن ابزارهایی برای کار کردن با نسخه اول نرم افزار Nuke که به صورت Command Line کار می کرد در واقع برنامه ای بود که Script ها را اجرا می کرد و اولین المان مفیدی که داشت Nukalizer بود که Script ها  را می خواند و می توانست Node ها و Flow  DATA را اجرا کند. بعداً هنرمندان DD شروع به کارکردن با نسخه اول Nuke کردن که باعث بهینه شدن Nuke شد و بدین طریق کاربران توانستند Flow  DATA را تغییر بدهند.
اما من موفق  نشدم که کاری کنم که این برنامه یک Output Script مناسب و مفیدی را به کاربران بده. بعد متوجه شدم که بهتره که این برنامه را در مقوله Image Processing استفاده کنم تا اینکه بخوام خروجی Script خوبی را ازش بگیرم.
- ایده چه کسی بود که Nuke را بنویسی؟
مشوق اصلی Price Pethel بود.
- ایده های مختلف و هنری هم از هنرمندان گرفتی؟ 
به محض اینکه Nuke آماده شد و قابل استفاده بود. من بازخوردها و ایده های سازنده زیادی را از آن ها گرفتم.
 
- چه موقع این ایده ها را گرفتی؟
دقیقاً زمانی که داشتیم روی Shot های پایانی فیلم True Lies جیمز کامرون کار می کردیم.
- کمپانی DD قبل از Nuke با چه نرم افزاری کار می کرد؟
DD  از نرم افزار Flame استفاده می کرد. در واقع استفاده اصلی Nuke در پروژه ها برای کار کردن ویدئوهای 2K ای بود که Flame آن ها را کامپوزیت کرده بود. و یک نرم افزار بسیار خوب تبدیل فایل های Flame به Nuke نوشته بودیم که متوقف شد چون چند وقت بعد Flame فایل فرمت خود را عوض کرد. اگر درست خاطرم باشه برای تبدیل فایل های Flame به 2K باید دیسک ها را دوباره فرمت می کردیم و آن ها می خواستند که تا جایی که ممکن است از این پروسه پرهیز کنند. 
- دوست داریم بدونیم که از ابتدا اسمش Nuke بود؟
تا آنجایی که می دونم این اسمی بود که Phil Beffrey انتخاب کرد. کسی که اولین ورژن رو خلق کرد اما آن روزها جوکی هم بین ما رد و بدل می شد که می گفتیم اسمش باید Flame ی یا Nukeی باشد. اما از ابتدا اسمش Nuke بود. اما باید بگم که بعد از مدتی Phil به  Pixarرفت و هنوز هم آنجا کار می کند.
 
- مشخصات ورژن اول Nuke چی بود و چه کارهایی رو انجام می داد؟
من و Phil خیلی روی مشخصات مختلفی کار نکردیم. فقط یک ایده عمومی داشتیم در مورد نیازهامون و روی آن موارد کار می کردیم. نسخه اول از Fixed Buffers و Command Line استفاده می کرد اما می توانست Transform، Blur ، Color Correction ، Sharpen و خیلی چیزهای دیگر را هم انجام  دهد.
- آیا Nuke از ابتدا User interface داشت؟
User interface در نسخه دوم معرفی شد.
- چه رابطه ای با FLTK داشتی و چه شخص دیگری از FLTK استفاده می کند؟
Nuke2 از آرشیوهای Mark Overmars استفاده می کرد که برای IRIXGL نوشته شده بود. اما مجبور شدم که آن را دوباره بر مبنای  Open GLبنویسم. اما همزمان که روی Open GL کار می کردم استفاده از Linux شروع شد و ما متوجه شدیم که Open GL خیلی کند است برای اینکه به عنوان Interface اصلی استفاده بشود (دقیقاً برعکس امروز) بنابراین تصمیم گرفته شد که همه چیز دوباره بر مبنای X نوشته شود. البته تمام قسمت ها، غیر از قسمتهای 3D.
از آنجایی که همه چیز در حال تغییر بود من فکر کردم که API رو به C++ تغییر بدهم و Widget ها رو بر اساس آن درست کنم و اینجا بود که ایده FLTK شکل گرفت. Wook، که آن زمان مدیر نرم افزاری پروژه بود این اجازه را به من داد که FLTK رو به عنوان یک ابزار Open Source ارائه بدهم. Open Source بودن FLTK یک برگ برنده بود. چون Free بود و با این کار تونستیم نرم افزار را به Windows هم منتقل کنیم. من فکر می کنم که FLTK به خوبی در کمپانی های مهندسی و جلوه های ویژه استفاده شد. هر چند که امروز Qt جایش را گرفت. من فکر می کنم که FLTK خیلی معروف و خیلی استفاده می شه. Richard Stallman با من تماس گرفت که ببینه که اگر من می خواهم FLTK رو به FSF منتقل کنیم که می توانست به جای GTK استفاده بشه که من در آن زمان درگیر کارهای دیگری بودم و این فرصت را از دست دادم.
 
- آیا هنوز درگیر FLTK هستی؟
پیگیر آن هستم اما در کارهای امروزی همه از Qt استفاده می کنن. هم Nuke و هم در کارهایی که من بر روی آنها کار می کنم. FLTK زمانی که می خواست به FLTK2 تبدیل بشه به نظر من ضربه خورد و این باعث شد که Foundry نرم افزار Nuke را برمبنای Qt بنویسه اما قبل از Qt اون ها از FLTK2 استفاده می کردند. 
- آیا Nuke همیشه Scanline Based بود و از زمان خودش جلوتر بود؟
من فکر می کنم که بعضی از Operator های Phil  طوری نوشته شده بودند که روی یک line در هر زمان کار کنند. بنظر من در آن زمان نیاز به این بود که برمبنای Scanline کار کنیم تا بتوانیم خواسته های متعدد هنرمندان را هنگام کار کردن با Nuke پاسخ دهیم چون در آن زمان از حافظه محدودی برخوردار بودیم.
- آیا Nuke همیشه از Floating Point استفاده می کرد؟
به طور کلی همه Operator ها می تونستند به صورت 8bit ، 16bit و Floating point کار کنند. اما خیلی سریع  تمام Operator ها فقط Floating point کار می کردند و در  Nuke3 هر Operator ی که Floating point نبود از برنامه حذف شد.
 
- چه موقع ابزار 3D به Nuke اضافه شد؟
تنها المانی که Nuke2 می تونست به صورت 3D انجام بده Card operator بود که می تونست موقعیت دوربین و مختصات  Cardرا در فضای سه بعدی مشخص کند و تنها چیزی که بدست می آمد یک مستطیل مسطح با یک Texture ساده بود. شما اگر دو تا دوربین و دو تا Card نیاز داشتید می تونستید از operator های بیشتری استفاده کنید. با توجه به تمام این محدودیت ها هنرمندان با همین operator های صحنه های بی نظیری را خلق می کردند که این تکنیک در فیلم Titanic هم بسیار استفاده شد. من فکر می کنم که نا امیدی Jonathan از این شرایط باعث شد تا او بره روی سیستم 3D بیشتر کار کنه تا بتونه 3D نرم افزار Nuke رو به این جایی که هست برسونه.
وقتی که مشغول بازنویسی Nuke3 بودیم من به این نتیجه رسیدم که باید operator های 3D را بهینه سازی کنیم و این طور شد که Z channel را اضافه کردیم و توانستیم اطلاعات دوربین را به اشتراک بگذاریم. البته نا گفته نماند که تمام اطلاعات 3D از طرف Jonathan بود.
- آیا کانسپت  Node ی هست که به اون افتخار کنی؟
این که در نرم افزار Nuke همه چیز به خصوص Input ، Output و Viewer به عنوان Node تعریف می شوند خیلی من رو خوشحال می کنه.
- چه چیزی رو دوست داری در Nuke ببینی؟
من اعتقاد دارم که کمپانی Foundry در مسیر خوبی قرار دارد و استفاده از 3D و سخت افزار رو به خوبی داره پیشرفت می ده که البته نیاز به بازنویسی های گسترده داره اما فکر می کنم که برنامه ریزی اون ها به شکل جامع داره پیگیری می شه.
 
 
- آیا Surprise نشدی از شرایطی که Nuke الان داره و اینقدر محبوب و معروف هست؟
به طور قابل توجهی، من فکر می کنم که Foundry در تبلیغات و فروش اون خیلی موثر بوده و در همان سال اول به بازاری که دنبال اون بودن رسیدند.
- آیا طرحی برای نوشتن پلاگین جدیدی برای Nuke داری؟
فکرهایی دارم اما فعلاً چیزی برای ارائه ندارم.
- الان داری چیکار می کنی؟
الان بر روی یک نرم افزار داخلی برای Rhythm and Hues کار می کنم. باید بگم که این نرم افزار خیلی برای من قابل توجه و فرصتی هست که بتونم راه رسیدن به المان های مختلف رو تجربه کنم.
 
 
 
 


نظرات بینندگان
انتشار یافته : 8
فاطمه  | دوشنبه، 8 فروردين 1407 13:49:17
0
1
پاسخ
ممنون از مطالب اموزنده و سایت پربارتون و سپاس از تلاش شما
عاطفه  | سه‌شنبه، 10 تير 1393 06:34:15
1
1
پاسخ
از سایت خوب و پربارتان بسیار متشکرم ، از این مطلب هم بسیار استفاده کردم ، مثل همیشه گل کاشتید............
حجت  | چهارشنبه، 4 تير 1393 23:20:04
3
1
پاسخ
عالی بود.......خسته نباشین
Hamed  | چهارشنبه، 4 تير 1393 21:00:08
2
1
پاسخ
مطلب عالي و اموزنده اي بود....
فرشید  | چهارشنبه، 19 تير 1392 17:53:55
5
1
پاسخ
سپاس فراوان. من که بسیار استفاده کردم. امید که این گونه فعالیت ها ادامه داشته باشه. خسته نباشید.
سینا  | پنجشنبه، 13 تير 1392 03:52:22
6
1
پاسخ
آقا واقعا ممنون بابت مطلبتون
حمید  | چهارشنبه، 12 تير 1392 03:15:59
8
1
پاسخ
ممنون . استفاده کردم . دستتون درد نکنه.
محمد  | چهارشنبه، 12 تير 1392 00:15:44
9
1
پاسخ
بسيار خوب و مفيد ... از سايت cgphd براي اين مطالب مفيد واقعا ممنونيم .
نظر شما :