انویدیا در اقدامی مهم و قابل توجه، کیتهای توسعه نرمافزار (SDK) محبوب PhysX و Flow خود را به طور کامل تحت لایسنس آزاد BSD-3 متنباز کرد. اگرچه این کتابخانهها از اواخر سال ۲۰۱۸ برای جامعه توسعهدهندگان تا حدی متنباز بودند، اما هستههای کلیدی شبیهسازی مبتنی بر پردازنده گرافیکی (GPU) همچنان اختصاصی باقی مانده بودند. انتشار کد منبع این هستهها، راه را برای توسعهدهندگان بازی هموار میکند تا نسخههای سفارشی و بهینهسازی شده PhysX و Flow را در پروژههای خود ادغام کنند. از سوی دیگر، جامعه مادینگ (Modding) نیز این فرصت را غنیمت شمرده و احتمالاً به دنبال راهی برای اجرای کدهای قدیمی PhysX روی کارتهای گرافیک جدید سری RTX 50 انویدیا خواهد بود.
PhysX و Flow چه هستند و چرا اهمیت دارند؟
PhysX یک موتور فیزیک بلادرنگ (real-time) است که محاسبات پیچیده فیزیکی را با بهرهگیری از قدرت پردازش موازی، به پردازنده گرافیکی شما (GPU) منتقل میکند و در هسته خود از فناوری CUDA انویدیا قدرت میگیرد. این فناوری در تعدادی از بازیهای قدیمیتر دهه ۲۰۱۰ به کار گرفته شده بود که از نمونههای برجسته آنها میتوان به عناوینی چون Mirror’s Edge، Batman: Arkham Asylum، Metro 2033 و Borderlands 2 اشاره کرد.
نکته مهم اینجاست که اکثر این بازیها بر پایه پیادهسازی ۳۲ بیتی PhysX بنا شدهاند. با توجه به تصمیم انویدیا مبنی بر توقف پشتیبانی از CUDA ۳۲ بیتی در پردازندههای گرافیکی جدید سری Blackwell، شبیهسازیهای فیزیکی پیچیدهای که برای پردازش موازی طراحی و بهینهسازی شده بودند، مجبور به اجرا روی پردازنده مرکزی (CPU) خواهند شد که نتیجه آن افت شدید عملکرد در این بازیها خواهد بود.
فناوری Flow اما تخصصیتر است و برای قدرت بخشیدن به شبیهسازی مکانیک سیالات به کار میرود. افکتهایی مانند آتش، گاز و دود را در بازیها به لطف این فناوری شاهد هستیم.
باز شدن درهای جدید با متنباز شدن کامل
با عرضه PhysX 4.0، انویدیا کد منبع شبیهسازی سمت CPU این موتور را منتشر کرد، اما هستههای سمت GPU همچنان اختصاصی باقی ماندند. محدودیت دسترسی به فایلهای باینری، درک عملکرد داخلی سیستم و سفارشیسازی آن برای نیازهای خاص را تقریباً غیرممکن میکرد. با این حال، اکنون که دستورالعمل سری شتابدهی گرافیکی انویدیا به طور عمومی منتشر شده است، هر کسی میتواند این کتابخانههای موجود را مشاهده، مطالعه، تغییر و بر اساس آنها توسعه دهد.
جای تعجب نخواهد بود اگر جامعه مادینگ به سرعت دست به کار شده و برای فعال کردن پشتیبانی PhysX در بازیهای قدیمی روی پردازندههای گرافیکی Blackwell، یک لایه سازگاری ۳۲ بیتی به ۶۴ بیتی ایجاد کند. با دسترسی به کد منبع، از نظر فنی امکان جداسازی PhysX و Flow از CUDA و انتقال این فناوری به پلتفرمهای مستقل از سختافزار مانند OpenCL یا Vulkan نیز وجود دارد تا پشتیبانی از پردازندههای AMD و Intel نیز فراهم شود، هرچند انجام این کار بسیار چالشبرانگیزتر از بیان آن است.
آینده PhysX و تاثیرات گستردهتر
باید پذیرفت که PhysX تا حد زیادی به یک فناوری منسوخ برای بازیهای مدرن تبدیل شده و جای خود را به گزینههای جایگزین داده است؛ به عنوان مثال، موتور بازیسازی قدرتمند Unreal Engine 5 از موتور فیزیک جدید Chaos استفاده میکند. با این حال، دسترسی به هستههای GPU فناوری PhysX و کدهای شبیهسازی سایهزن (Shader) برای Flow، احتمالاً تأثیرات گستردهای فراتر از دنیای بازی خواهد داشت و در زمینههایی چون مهندسی گرافیک، رباتیک، معماری و طراحی، انیمیشن و بسیاری موارد دیگر کاربردی خواهد بود.