Rust GPU ، مجموعه ای از ابزارها برای توسعه سایه زنی ها در زنگ

شرکت توسعه بازی استودیوی Embark اولین نسخه آزمایشی را منتشر کرد پروژه GPU زنگ زده ، که هدف آن استفاده از زبان Rust است برای توسعه کد GPU. 

میل به استفاده از زنگ برای نوشتن برنامه برای GPU نه تنها از ویژگی های ایمنی و عملکرد بالا ناشی می شود ، بلکه همچنین نیاز به دستیابی به ابزارهای مدرن برای کار با بسته ها و ماژول ها برای بهبود کارایی فرآیند توسعه است.

شرکت توسعه دهنده پردازنده گرافیکی Rust Rust Embark Studios همچنین از Rust در موتور بازی خود استفاده می کند و در تلاش است تا تبادل کد Rust را بین CPU و GPU تسهیل کند.

با توجه به آنها، از لحاظ تاریخی ، در بازی ها ، برنامه نویسی GPU با نوشتن HLSL انجام شده است یا به میزان کمتری GLSL. اینها زبانهای برنامه نویسی ساده ای هستند که در کنار ارائه API ها طی سالها تکامل یافته اند.

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

در حالی که به طور کلی گزینه های بهتری برای هر دو زبان وجود دارد ، هیچ یک از آنها در موقعیتی نیستند که بتوانند جایگزین HLSL یا GLSL شوند.

یا به دلیل اینکه توسط ارائه دهنده مسدود شده اند یا به دلیل پشتیبانی نشدن با خط لوله گرافیکی سنتی از جمله این موارد می توان CUDA و OpenCL را نام برد. و در حالی که تلاش شده است زبان در این فضا ایجاد شود ، هیچ یک از آنها در جامعه gamedev مورد توجه قرار نگرفته اند.

GPU Rust به توسعه ایده های پروژه RLSL ادامه می دهد، که در آن تلاش برای ایجاد یک کامپایلر Rust به SPIR-V shader عمومی میانی که در API Vulkan پیشنهاد شده و در OpenGL 4.6 پشتیبانی می شود ، ایجاد شده است.

GPU Rust در مرحله فعلی توسعه ، به شما امکان می دهد سایه های گرافیکی ساده را اجرا کنید و بخش قابل توجهی از کتابخانه استاندارد اساسی Rust را جمع آوری کنید. در عین حال ، پروژه هنوز برای استفاده گسترده آماده نیست ، به عنوان مثال حلقه ها هنوز توسط سایه بان پشتیبانی نمی شوند.

در Embark ، ما از ابتدا در Rust بازی موتور بازی خود را ساخته ایم. ما تجربه قبلی در زمینه تولید نمونه اولیه RLSL را داریم و تیمی از مهندسان رندر بسیار عالی داریم که با مشکلات زبانهای سایه بان امروزی از بازی ها ، موتورهای بازی و سایر صنایع آشنا هستند. بنابراین ، ما معتقدیم که در موقعیت منحصر به فردی قرار داریم که سعی در حل این مشکل داریم.

ما می خواهیم توسعه داخلی خود را با یک زبان عالی ساده کنیم ، یک جامعه گرافیکی منبع آزاد و اکوسیستم ایجاد کنیم ، اشتراک کد بین GPU و CPU را تسهیل کنیم و از همه مهمتر - کاربران (آینده) و توسعه دهندگان دیگر خود را فعال کنیم بیشتر تجربه های جذاب و جذاب ایجاد کنید

بر اساس کد موجود در زبان Rust ، نمایشی از سایه اندازهای SPIR-V تشکیل شده است که برای نسل آنها یک باطن ویژه برای کامپایلر Rust ساخته شده است که به طور مشابه با مولد کد cranelift استفاده می شود تا برای نمایش در یک کامپایل قرار گیرد. مونتاژ وب

روش فعلی پشتیبانی از Vulkan Graphics API و نمای SPIR-V است ، اما ژنراتورها برای آینده نمایشگرهای DXIL (DirectX) و WGSL (WebGPU) برنامه ریزی شده اند. با استفاده از Cargo و crates.io ، ابزارهایی در حال تولید و انتشار بسته هایی با سایه بان در قالب SPIR-V هستند.

سرانجام ، اگر می خواهید درباره این پروژه بیشتر بدانید ، می توانید جزئیات موجود در مخزن پروژه را بررسی کنید ، پیوند این است.

در مورد کسانی که علاقه مند به دانستن کد هستند ، باید بدانند که کد تحت مجوزهای MIT و Apache 2.0 منتشر شده است و امکان دستیابی به آن وجود دارد از لینک زیر

و اینکه آنها همچنین می توانند با اسنادی که در حال حاضر برای توسعه دهندگان آماده شده است مشورت کنند تا بتوانند در Linux ، Windows و Mac کار کنند. در این لینک با راهنما مشورت کنید.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

نظر بدهید ، نظر خود را بگذارید

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   خلبان اتوماتیک dijo

    زنگ برخاست ، امیدوارم که "مقیاس کشنده" دیگری نباشد.