USD (مخفف Universal Scene Description به معنای «توصیف صحنهٔ جهانی») یک فرمت فایل است که توسط پیکسار برای تبادل صحنههای گرافیکی سهبعدی بین نرمافزارهای تولید محتوای دیجیتال توسعه داده شده است. این فرمت یک فایل متنباز و قابل توسعه است که میتواند اطلاعات مربوط به هندسهٔ سهبعدی، سایهزنی، نورپردازی، فیزیک و سایر حوزههای مرتبط با گرافیک را ذخیره کند. همچنین میتواند دادهها را از منابع مختلف ترکیب و بازنویسی کند و یک نمودار صحنهٔ واحد ایجاد کند که میتوان آن را بهصورت غیرمخرب ویرایش کرد.
USD در صنایع مختلفی مانند طراحی، معماری، انیمیشن و بازیسازی استفاده میشود و توسط بسیاری از نرمافزارها مانند بلندر، سینما فوردی، هودینی، مایا و SceneKit اپل پشتیبانی میشود. USD همچنین هستهٔ خط تولید گرافیک سهبعدی پیکسار و اساس پلتفرم Omniverse انویدیا است.
مشخصات Universal Scene Description (USD) از چندین فرمت فایل استفاده میکند:
- .usd – میتواند با کد ASCII یا باینری رمزگذاری شود
- .usda – با کد ASCII رمزگذاری شده است
- .usdc – با کد باینری رمزگذاری شده است
- .usdz – یک فایل بستهبندیشده است که به صورت آرشیو zip بدون رمزگذاری و با فشردهسازی صفر قالببندی شده است. ممکن است شامل فایلهای .usd، .usda، .usdc، .png، .jpeg، .m4a، .mp3 و .wav باشد.
بلندر (یا هر نرمافزار سهبعدی دیگری) با دادن امکان انجام بسیاری از کارها فقط با استفاده از رابط کاربری خود، زندگی را برای شما آسان میکند، اما به محض اینکه نرمافزارهای دیگری را وارد خط تولید خود کنید، مشکلات از هر طرف ظاهر میشوند. پس بیایید در مورد بزرگترین مشکلاتی که احتمالاً در حال حاضر با آنها روبرو هستید صحبت کنیم و اینکه چگونه پیکسار راهحلی برای غلبه بر آنها تا بینهایت و فراتر از آن ایجاد کرده است.
مشکل
اگر تا به حال مدلی را در Substance تکسچر کردهاید، کار خود را به Unreal وارد کردهاید، یا سعی کردهاید پروژهای را با کسی که در یک نرمافزار دیگر کار میکند به اشتراک بگذارید، احتمالاً متوجه شدهاید که چقدر این کار میتواند آزاردهنده باشد. مواجهه با انواع مختلف فایل، گردش کار مناسب برای خروجی گرفتن برای هر نرمافزار و از دست دادن اطلاعات ارزشمند در این فرآیند، میتواند باعث شود احساس کنید که دارید از روی قصد بارها و بارها سر خود را به دیوار میکوبید.
و باور کنید وقتی میگویم که این چیزی است که همهٔ هنرمندان سهبعدی در همه جا تجربه میکنند – چه به عنوان یک سازندهٔ انفرادی با خط تولید سفارشی خود کار میکنید و چه در یک استودیوی بزرگ مانند پیکسار مجبورید از محدودیتهای دقیق خط تولید پیروی کنید تا یک گردش کار مناسب را برای همهٔ ۱۲۳۲ نفر دیگری که در آنجا کار میکنند حفظ کنید. مشکل همانطور باقی میماند.
چرا این اتفاق میافتد
البته منطقی است، درست است؟ هر نرمافزار از یک نوع فایل اختصاصی استفاده میکند که برای نیازهایش کار میکند. بنابراین، برای مثال، یک فایل از بلندر طوری کدگذاری شده است که در بلندر کار کند اما در Substance نه. بدیهی است که در یک شرکت، هر هنرمند به فایلی نیاز دارد که با ابزار انتخابی خودش سازگار باشد تا ادامهٔ کار روی یک پروژه آسان و گاهی حتی ممکن شود.
به همین دلیل است که خروجی گرفتن به یک نوع فایل جهانیتر مانند FBX یا OBJ هنگام جابجایی به یک نرمافزار دیگر یا تحویل پروژه خود به شخص بعدی ضروری است. اما حتی این انواع فایل نیز محدودیتهای زیادی دارند، مانند ناتوانی در ذخیرهٔ صحیح شبیهسازیها، نورپردازی و بسیاری از جنبههای دیگر پروژههای بلندر شما.
معرفی USD
پس پاسخ این مشکل چیست؟ Universal Scene Description (USD) به اختصار! USD که برای اولین بار در سال ۲۰۱۶ توسط پیکسار به عنوان نرمافزار متنباز و خط تولید اصلی جدید آنها منتشر شد، عمدتاً راهی برای هنرمندان آنها بود تا انتقال دادهها بین یکدیگر و ابزارهایی که استفاده میکنند را آسانتر کنند.
USD از زمان انتشار، دائماً در حال تغییر و بهبود است، که برای نرمافزارهای متنباز درست مانند بلندر، که به طور مداوم بهروزرسانی و گسترش مییابد، امری رایج است.
USD چیست؟
USD چیزهای زیادی است و اگر واقعاً عمیقاً وارد آن شوم، در واقع میتواند توصیف بسیار فنی و پیچیدهای داشته باشد. اما اگر ساده بگویم، USD راهی برای برنامههایی مانند بلندر، Unreal، هودینی، Substance، مایا، Nvidia Omniverse و بسیاری دیگر است تا با یکدیگر صحبت کرده و یکدیگر را درک کنند.
در صنعت کامپیوتر در واقع یک واژهٔ فانتزی برای این وجود دارد – قابلیت همکاری. گفتنش کمی سخت است! با این حال هر چقدر هم که فانتزی به نظر برسد، در واقع آنقدرها هم که فکر میکنید پیچیده نیست. میتوانید از امروز آن را روی رایانهٔ شخصی خود یا حتی با چند دوست یا همکار در سراسر جهان شروع به استفاده کنید.
تفاوت USD
به طور سنتی، یک خط تولید چیزی بسیار یکطرفه است که در آن هر شخص فقط زمانی میتواند روی چیزی کار کند که شخص قبلی کارش تمام شده باشد. یا برای خود شما شخصاً، فقط زمانی میتوانید به مرحلهٔ بعدی در فرآیند، مانند تکسچرینگ بروید که مدلسازی کاملاً تمام شده باشد.
میتوانید این را با پختن یک کیک مقایسه کنید – همانطور که این کیک را میسازید و درست میکنید، باید هر مرحله را قبل از اینکه بتوانید مرحلهٔ بعدی را شروع کنید، تمام کنید. نمیتوانید قبل از مخلوط کردن خمیر کیک را بپزید، و نمیتوانید قبل از پختن کیکها در فر آن را بسازید. هر مرحله به تکمیل شدن مرحلهٔ قبلی وابسته است.
مهمتر از آن، هنگامی که خامه و فیلینگ را روی آن قرار دادید یا تصمیم گرفتید که اسفنج باید شکلاتی باشد، دیگر راه بازگشتی وجود ندارد. نمیتوانید کیک را از حالت پخته درآورید، طعم آن را به وانیلی تغییر دهید یا خامه را از روی آن بردارید. و این چیزی است که ما آن را گردش کار مخرب مینامیم.
با این حال، USD بیشتر شبیه لگو است. هر بلوک نشاندهندهٔ بخشی از یک صحنهٔ سهبعدی است – شخصیتها، اشیاء، محیطها، هر چیزی – و میتوانید این بلوکها را بهطور مستقل مونتاژ، جداسازی و اصلاح کنید.
در یک خط تولید سنتی، تغییر یک بلوک مستلزم تنظیم بقیهٔ ساختار است. اما با USD، هر بلوک ساختمانی را میتوان بهطور مستقل روی آن کار کرد و من میتوانم به سادگی یک بلوک را به عنوان مثال به رنگ دیگری تغییر دهم بدون اینکه نیازی به بازسازی کل مدل داشته باشم.
این یک رویکرد غیرمخرب است که امکان آزمایش و گردش کار مشارکتی را بدون گیر افتادن در محدودیتهای خط تولید فراهم میکند.
هدف USD
هدف در تمام اینها با USD ایجاد راهی برای انتقال آزادانهٔ دادهها بین برنامهها است، تا به هنرمندان و تیمها آزادی داده شود تا روی خلق کردن تمرکز کنند و نه روی خروجی گرفتن و منتظر ماندن برای اینکه یکدیگر بتوانند به کار خود ادامه دهند. اگر تیم مفهومی تصمیم بگیرد که بعداً تغییراتی ایجاد کند، هنرمندان نباید مجبور شوند دوباره شروع کنند. و نباید مشکلاتی در مورد فرمتهای فایلی که از برنامههای دیگر وارد میشوند و در نرمافزار انتخابی شما کار نمیکنند وجود داشته باشد.
در سطح خدمات، به نظر میرسد USD اینگونه باشد – یک فرمت فایل بسیار قابل تعامل که به راحتی بین نرمافزارهای مختلف قابل تبادل است. و انصافاً این چیزی است که برای اکثر کاربران بلندر خواهد بود، زیرا بسیاری از ما تمایل داریم به صورت انفرادی کار کنیم. اما USD چیزی بیش از یک نوع فایل است…
این راهی برای جمعآوری و سازماندهی هر تعداد دارایی در مجموعههای مجازی، صحنهها، شاتها و دنیاها است – استفاده از آنها از برنامهای به برنامهٔ دیگر و ویرایش غیرمخرب آنها اغلب به صورت همزمان.
نحوه کار با USD
پس بیایید نگاهی بیندازیم به اینکه چگونه میتوانیم با USD در یک گردش کار بلندر کار کنیم. USD در ابتداییترین شکل خود، از نسخهٔ ۳.۶ به بعد یک گزینهٔ خروجی در بلندر بوده است. بنابراین اگر فایلی دارید که روی آن کار میکنید و میخواهید آن را به عنوان یک فایل USD ذخیره کنید، میتوانید به File > Export > Universal Scene Description بروید و یک پنجرهٔ اعلان برای ذخیرهٔ فایل به شما میدهد.
گزینههای زیادی دارد اما موارد اصلی که باید به آنها توجه کرد عبارتند از:
- Selection Only – فقط اشیاء انتخاب شده را در خروجی خود قرار میدهد
- Animation and Hair – دادههای انیمیشن و ذرات مو را برای اشیاء شما شامل/حذف میکند
در اینجا یک مثال عالی از نحوهٔ کار USD وجود دارد. این یک فایل از کتابخانهٔ نمونهٔ USD انویدیا است که در مجموعهای از نرمافزارها مانند 3ds Max و Substance ساخته شده است. اگر این را با وارد کردن آن در بلندر باز کنید، تقریباً ۱۰۰٪ بلافاصله کار میکند!
همانطور که میبینید، شامل تمام دادهها از جمله نورها، عمق میدان، دوربین، مواد و موارد دیگر است. تنها چیزی که به درستی خروجی گرفته نمیشود، نورپردازی HDRI است که باید خودمان آن را تنظیم کنیم. اما باور اینکه این تقریباً در داخل رندر آرنولد 3DS Max یکسان به نظر میرسد و فقط با استفاده از یک نوع فایل به بلندر منتقل شده و به همان خوبی کار میکند، باورنکردنی است!
دارای سلسله مراتب، مواد و اساساً همه چیز تنظیم شده است. واقعاً خیلی باحاله! به هر حال، این نشان میدهد که USD چگونه بین برنامههای مختلف کار میکند و به عنوان یک فرمت فایل قابل تعامل عمل میکند.
یک مثال عملی USD
اما بیایید نگاهی به یک مثال عملیتر بیندازیم. برای این مثال خط تولید، از یک گردش کار معمولی استفاده میکنم که از بلندر برای مدلسازی یک شی برای یک بازی استفاده میکند.
خط تولید سنتی چیزی شبیه به این خواهد بود:
- ایجاد مدل در بلندر
- باز کردن UV مدل
- خروجی گرفتن به عنوان FBX زیرا Painter نمیتواند از فایلهای بلندر استفاده کند
- وارد کردن FBX به Substance Painter
- اضافه کردن مواد در Substance
- خروجی گرفتن تکسچرها به عنوان تصاویر
- وارد کردن FBX به موتور بازی
- تنظیم دستی تکسچرها
- ایجاد رندرها
با USD میتوانیم این فرآیند را به طور قابل توجهی ساده کنیم و یک گردش کار غیرمخرب را تا حد زیادی حفظ کنیم. خط تولید بسیار شبیه به هم باقی میماند و بلندر و Substance اجزای اصلی هستند.
اما از آنجایی که USD به طور بومی در زمان واقعی بین این برنامهها کار نمیکند (عمدتاً به این دلیل که بلندر هنوز پشتیبانی محدودی از USD دارد)، من از Nvidia Omniverse برای ایجاد آن اتصال برای ما استفاده خواهم کرد.
از طریق Omniverse میتوانم به یک شاخه سازگارتر با USD از بلندر که توسط Nvidia ساخته شده است دسترسی پیدا کنم. میتوانم کانکتور Omniverse را برای Substance Painter فعال کنم تا LifeLink را متوجه شود. و میتوانم از USD Composer برای پر کردن شکاف بین برنامهها و مشاهدهٔ محصول نهایی استفاده کنم.
با این تنظیمات، اکنون میتوانیم پروژهٔ بلندر خود را در شاخهٔ سفارشی بلندر باز کنیم. اگر سپس N را فشار دهیم و به سمت راست اینجا برویم، افزونهٔ Nucleus را دریافت میکنیم که به ما امکان میدهد این را به عنوان یک فایل USD خروجی بگیریم.
اگر سپس به USD Composer برویم و آن فایل USD را باز کنیم، نوعی پیوند زنده بین برنامهها دریافت میکنیم. اکنون میتوانم هر تغییری در مش ایجاد کنم، دوباره آن را خروجی بگیرم و آن را به طور خودکار در داخل USD Composer دریافت کنم.
حتی بهتر میشود! هنگامی که مدل را وارد کردیم، میتوانیم Substance Painter را باز کنیم، کانکتور Omniverse را فعال کنیم و به Import Mesh برویم تا به طور خودکار شی خود را از USD Composer به Substance وارد کنیم. در این مرحله، اگر در بلندر تغییراتی ایجاد کنیم، همچنان میتوانیم دوباره خروجی بگیریم و آن را در USD Composer دریافت کنیم، که به طور خودکار به Substance Painter پیوند میخورد.
با این حال، هنگامی که تکسچرها را در داخل Substance Painter اضافه کردیم، انجام این کار دوباره آن تکسچرها را حذف میکند. بنابراین هنگامی که راضی شدید، مواد خود را در Substance Painter اضافه کنید و با فعال بودن Life Link، اینها به طور خودکار در USD Composer ظاهر میشوند.
هر تغییری که ایجاد میکنید به طور خودکار صادر و در USD Composer به روز میشود. واقعاً خیلی باحاله!
به نظر من این گردش کار تقریباً حیرتانگیز است. اینکه بتوانیم در زمان واقعی در بلندر و Substance Painter تغییراتی ایجاد کنیم و همهٔ اینها به طور خودکار در طول مسیر کار کنند و در رندر نهایی منعکس شوند، چیز دیگری است.
اگر علاقهمند به امتحان کردن همه چیزهایی که Nvidia Omniverse ارائه میدهد هستید، میتوانید آن را به صورت رایگان از طریق پیوند موجود در توضیحات دانلود کنید. و اگر میخواهید دربارهٔ تمام موارد استفادهٔ فنی که USD و Omniverse با هم ارائه میدهند بیشتر بدانید، میتوانید پیوند دانلود رایگان دیگری را برای آن و همچنین پیوندی برای شرکت در جلسات روز باز USD به صورت مجازی یا حضوری در GTC در ماه مارس پیدا کنید.
من واقعاً توصیه میکنم آن را بررسی کنید زیرا این واقعاً آیندهٔ گردش کارهای سهبعدی است.
اطلاعات بیشتر دربارهٔ USD
علاوه بر این مثال سرگرمکننده، USD چیزهای بیشتری برای ارائه دارد. و اگر از قابلیتهای آن به خوبی استفاده کنید، به عنوان یک هنرمند بسیار کارآمدتر خواهید شد. پس چه کارهای دیگری میتواند انجام دهد؟
خب، علاوه بر این واقعیت که یک فرمت فایل جهانی زندگی شما را بسیار آسانتر میکند، قطعاً آینده است. از آگوست ۲۰۲۳، USD به یک سازمان غیرانتفاعی رسمی به نام اتحاد USD باز (AO USD) به اختصار تبدیل شده است – با پیکسار، اپل، ادوبی، اتودسک و انویدیا به عنوان اعضای مؤسس آن.
من فکر میکنم این واقعاً نشان میدهد که این شرکتها چقدر سرمایهگذاری کردهاند و چگونه واقعاً این را به عنوان آیندهٔ یک فرمت فایل قابل تعامل میبینند – که همه باید بتوانند به راحتی از آن استفاده کنند.
USD علاوه بر اینکه یک فرمت فایل است، تقریباً همه چیز را ذخیره میکند – از نورها و دوربینها گرفته تا حافظههای پنهان شبیهسازی و دادههای صحنه – در یک ساختار لایهمانند به نام “prims” (مخفف primitives). این شامل تمام دادهها برای توصیف صحنهها و داراییهای پیچیده در قالبی است که توسط طیف گستردهای از برنامهها قابل خواندن است.
اکنون با دانستن این موضوع، نام “Universal Scene Description” در واقع بسیار منطقی است!
اگر با مجموعههای بلندر آشنا هستید، USD به طور مشابه کار میکند. میتوانید هر چیزی را در داخل چندین مجموعهٔ تودرتو قرار دهید، با این مزیت اضافه که USD همهٔ این لایهها را به عنوان نمونه در نظر میگیرد. بنابراین میتواند تمام دادهها را به سرعت و به روشی بهینه بارگیری و بخواند.
این به طور مشابه با نمونهسازی مجموعهها در بلندر کار میکند، که خوب است زیرا نمونهها نسبت به اشیاء تکراری واقعی به محاسبات کمتری نیاز دارند. همچنین بسیار شبیه به پیشکامپوزیت کردن در After Effects یا ترکیب کردن در Nuke است – شما اساساً چیزها را در داخل گروهها/لایههای تودرتو گروهبندی میکنید، که باعث میشود کار با فایل برای رایانه آسانتر و سریعتر شود.
یک مثال عالی از این بهینهسازی، جدیدترین پروژهٔ نمونهٔ USD انویدیا به نام “کارگاه داوینچی” است. با استفاده از برنامهٔ USD Composer آنها (که برای مشاهدهٔ پروژههای USD با نورپردازی بیدرنگ عالی است)، میتوانم این کتابخانهٔ عظیم ۶۷ گیگابایتی از داراییها، تکسچرها و نورها را با میلیونها چندضلعی با نزدیک به ۱۲۰ FPS بدون هیچ گونه تاخیر یا مشکلی پخش کنم. این به دلیل نحوهٔ بارگیری کارآمد USD در فایلها و تکسچرها به روشی بسیار بهینه امکانپذیر است.
به طور مشابه، برای انیمیشنهایی که قبلاً به عنوان فایلهای Alembic خروجی گرفته میشدند، حافظهٔ پنهان USD اکنون بسیار سریعتر است. فایلهای Alembic معمولاً بسیار بزرگ، بسیار غیراستاندارد و به آرامی توسط رایانه شما خوانده میشوند – معمولاً منجر به پخش ناهموار میشود. با USD، دستیابی به یک FPS ثابت اصلاً مشکلی نیست و اندازهٔ فایل بسیار کوچکتر است.
مزایای بیشتر
یکی دیگر از ویژگیهای بسیار جالب این است که میتوانید به راحتی از خارج از فایل به لایههای داخل پروژهٔ USD خود دسترسی پیدا کنید. به عنوان مثال، اگر یک لایهٔ اولیه حاوی دادههایی باشد که یک کره در داخل یک فایل USD سبز است، با تغییر سادهٔ آن رنگ به قرمز در یک ویرایشگر سازگار با USD مانند USD Composer، میتوانیم رنگ کره را بدون باز کردن فایل در بلندر تغییر دهیم! این فوقالعاده قدرتمند است.
اگرچه این بدیهی است یک مثال اساسی است، اما پتانسیل را نشان میدهد. یکی دیگر از مزایای عمده این است که USD همچنان به شما امکان میدهد فقط روی یک لایه از یک فایل پیچیده در یک نرمافزار خاص کار کنید. بنابراین حتی اگر فایل شما حاوی یک پروژهٔ کامل با دوربینها، نورها و غیره باشد، همچنان میتوانید فقط یک قطعه از آن – برای مثال یک مدل واحد – را در داخل Substance Painter باز کنید و فقط روی آن قسمت از پروژه کار کنید بدون اینکه بر چیز دیگری تأثیر بگذارد.
این در صورتی هم صدق میکند که چند نفر روی یک فایل کار میکنند – یکی دیگر از نقاط قوت اصلی USD. ده نفر میتوانند روی یک فایل کار کنند، بنابراین تغییرات ایجاد شده توسط هنرمند شماره یک بلافاصله برای هنرمند شماره دو قابل مشاهده است و به آنها امکان میدهد کار خود را بر این اساس تطبیق دهند. اینکه بتوانید از راه دور با مردم همکاری کنید فوقالعاده قدرتمند است.
آیندهٔ خطوط تولید سهبعدی
میتوان با اطمینان گفت که USD بسیار بیشتر از یک فرمت فایل است. این یک پلتفرم و اکوسیستم فناوری جامع است که در مأموریت خود واقعاً با بلندر همسو است: آزادی برای خلق کردن بدون محدودیت.
USD هنوز در حال توسعه است. این رویا واقعی است – یک فرمت فایل نرمافزاری جهانی که توسط هر نرمافزاری در صنعت قابل استفاده باشد، که توسط چندین هنرمند در زمان واقعی قابل ویرایش باشد.
همهٔ ما باید از پیکسار برای هموار کردن راه با این توسعهٔ باورنکردنی و از شرکتهایی مانند Nvidia و Apple برای کمک به سهم خود سپاسگزار باشیم.